all repos — openbox @ d8d2fd7148c46eb4acba9d647adaddfa906c0652

openbox fork - make it a bit more like ryudo

plugins/keyboard/tree.h (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef __plugin_keyboard_tree_h
#define __plugin_keyboard_tree_h

#include "../../kernel/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