summaryrefslogtreecommitdiff
path: root/openbox/keytree.h
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/keytree.h')
-rw-r--r--openbox/keytree.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/openbox/keytree.h b/openbox/keytree.h
new file mode 100644
index 00000000..0c61e478
--- /dev/null
+++ b/openbox/keytree.h
@@ -0,0 +1,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