all repos — openbox @ 4bcd03b2d0904e2b5443a2383b66055422240255

openbox fork - make it a bit more like ryudo

plugins/keyboard/keyaction.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
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef __plugin_keyboard_action_h
#define __plugin_keyboard_action_h

#include "../../kernel/action.h"

typedef enum {
    DataType_Bool,
    DataType_Int,
    DataType_Uint,
    DataType_String
} KeyActionDataType;

typedef union {
    gboolean b;
    int i;
    guint u;
    char *s;
} KeyActionData;

typedef struct {
    Action action;
    KeyActionDataType type[2];
    KeyActionData data[2];
} KeyAction;

void keyaction_set_none(KeyAction *a, guint index);
void keyaction_set_bool(KeyAction *a, guint index, gboolean bool);
void keyaction_set_int(KeyAction *a, guint index, int i);
void keyaction_set_uint(KeyAction *a, guint index, guint uint);
void keyaction_set_string(KeyAction *a, guint index, char *string);

void keyaction_free(KeyAction *a);

void keyaction_do(KeyAction *a, Client *c);

#endif