summaryrefslogtreecommitdiff
path: root/openbox/keytree.h
blob: 0c61e478354c7bdcfd4167885763329be6f13e01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef __plugin_keyboard_tree_h
#define __plugin_keyboard_tree_h

#include "action.h"

#include <glib.h>

typedef struct KeyBindingTree {
    guint state;
    guint key;
    GList *keylist;
    GSList *actions; /* list of Action pointers */

    /* the next binding in the tree at the same level */
    struct KeyBindingTree *next_sibling; 
    /* the first child of this binding (next binding in a chained sequence).*/
    struct KeyBindingTree *first_child;
} KeyBindingTree;

void tree_destroy(KeyBindingTree *tree);
KeyBindingTree *tree_build(GList *keylist);
void tree_assimilate(KeyBindingTree *node);
KeyBindingTree *tree_find(KeyBindingTree *search, gboolean *conflict);

#endif