make interactive actions a type and not special cases.
[mikachu/openbox.git] / openbox / keytree.h
1 #ifndef __plugin_keyboard_tree_h
2 #define __plugin_keyboard_tree_h
3
4 #include "action.h"
5
6 #include <glib.h>
7
8 typedef struct KeyBindingTree {
9     guint state;
10     guint key;
11     GList *keylist;
12     GSList *actions; /* list of Action pointers */
13
14     /* the next binding in the tree at the same level */
15     struct KeyBindingTree *next_sibling; 
16     /* the first child of this binding (next binding in a chained sequence).*/
17     struct KeyBindingTree *first_child;
18 } KeyBindingTree;
19
20 void tree_destroy(KeyBindingTree *tree);
21 KeyBindingTree *tree_build(GList *keylist);
22 void tree_assimilate(KeyBindingTree *node);
23 KeyBindingTree *tree_find(KeyBindingTree *search, gboolean *conflict);
24
25 #endif