d2302341598265bccd57d4c27e3b557801ab846f
[framework/uifw/e17.git] / src / bin / e_bindings.h
1 #ifdef E_TYPEDEFS
2
3 typedef enum _E_Binding_Context
4 {
5    E_BINDING_CONTEXT_NONE,
6    E_BINDING_CONTEXT_UNKNOWN,
7    E_BINDING_CONTEXT_BORDER,
8    E_BINDING_CONTEXT_ZONE,
9    E_BINDING_CONTEXT_CONTAINER,
10    E_BINDING_CONTEXT_MANAGER,
11    E_BINDING_CONTEXT_MENU,
12    E_BINDING_CONTEXT_WINLIST,
13    E_BINDING_CONTEXT_POPUP,
14    E_BINDING_CONTEXT_ANY
15 } E_Binding_Context;
16
17 /* why do we do this? config stored bindings must be fixed. x's modifier masks
18  * may change from time to time, xserver to xserver - so we can't do a
19  * simple match without translating to fixed values
20  */
21 typedef enum _E_Binding_Modifier
22 {
23    E_BINDING_MODIFIER_NONE = 0,
24    E_BINDING_MODIFIER_SHIFT = (1 << 0),
25    E_BINDING_MODIFIER_CTRL = (1 << 1),
26    E_BINDING_MODIFIER_ALT = (1 << 2),
27    E_BINDING_MODIFIER_WIN = (1 << 3)
28 } E_Binding_Modifier;
29
30 typedef struct _E_Binding_Mouse  E_Binding_Mouse;
31 typedef struct _E_Binding_Key    E_Binding_Key;
32 typedef struct _E_Binding_Edge   E_Binding_Edge;
33 typedef struct _E_Binding_Signal E_Binding_Signal;
34 typedef struct _E_Binding_Wheel  E_Binding_Wheel;
35 typedef struct _E_Binding_Acpi   E_Binding_Acpi;
36
37 #else
38 #ifndef E_BINDINGS_H
39 #define E_BINDINGS_H
40
41 struct _E_Binding_Mouse
42 {
43    E_Binding_Context ctxt;
44    int button;
45    E_Binding_Modifier mod;
46    unsigned char any_mod : 1;
47    const char *action;
48    const char *params;
49 };
50
51 struct _E_Binding_Key
52 {
53    E_Binding_Context ctxt;
54    const char *key;
55    E_Binding_Modifier mod;
56    unsigned char any_mod : 1;
57    const char *action;
58    const char *params;
59 };
60
61 struct _E_Binding_Edge
62 {
63    E_Binding_Context ctxt;
64    E_Zone_Edge edge;
65    E_Binding_Modifier mod;
66    unsigned char any_mod : 1;
67    const char *action;
68    const char *params;
69
70    float delay;
71    Ecore_Timer *timer;
72 };
73
74 struct _E_Binding_Signal
75 {
76    E_Binding_Context ctxt;
77    const char *sig;
78    const char *src;
79    E_Binding_Modifier mod;
80    unsigned char any_mod : 1;
81    const char *action;
82    const char *params;
83 };
84
85 struct _E_Binding_Wheel
86 {
87    E_Binding_Context ctxt;
88    int direction;
89    int z;
90    E_Binding_Modifier mod;
91    unsigned char any_mod : 1;
92    const char *action;
93    const char *params;
94 };
95
96 struct _E_Binding_Acpi 
97 {
98    E_Binding_Context ctxt;
99    int type, status;
100    const char *action, *params;
101 };
102
103 EINTERN int         e_bindings_init(void);
104 EINTERN int         e_bindings_shutdown(void);
105
106 EAPI void        e_bindings_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
107 EAPI void        e_bindings_mouse_del(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
108 EAPI void        e_bindings_mouse_grab(E_Binding_Context ctxt, Ecore_X_Window win);
109 EAPI void        e_bindings_mouse_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
110 EAPI E_Action   *e_bindings_mouse_down_find(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev, E_Binding_Mouse **bind_ret);
111 EAPI E_Action   *e_bindings_mouse_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev);
112 EAPI E_Action   *e_bindings_mouse_up_find(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev, E_Binding_Mouse **bind_ret);
113 EAPI E_Action   *e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev);
114
115 EAPI void        e_bindings_key_add(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
116 EAPI void        e_bindings_key_del(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
117 EAPI E_Binding_Key *e_bindings_key_get(const char *action);
118 EAPI E_Binding_Key *e_bindings_key_find(const char *key, E_Binding_Modifier mod, int any_mod);
119 EAPI void        e_bindings_key_grab(E_Binding_Context ctxt, Ecore_X_Window win);
120 EAPI void        e_bindings_key_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
121 EAPI E_Action   *e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev);
122 EAPI E_Action   *e_bindings_key_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev);
123
124 EAPI void        e_bindings_edge_add(E_Binding_Context ctxt, E_Zone_Edge edge, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay);
125 EAPI E_Binding_Edge *e_bindings_edge_get(const char *action, E_Zone_Edge edge, Eina_Bool click);
126 EAPI void        e_bindings_edge_del(E_Binding_Context ctxt, E_Zone_Edge edge, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay);
127 EAPI E_Action   *e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
128 EAPI E_Action   *e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
129 EAPI E_Action   *e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
130 EAPI E_Action   *e_bindings_edge_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
131
132 EAPI void        e_bindings_signal_add(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
133 EAPI void        e_bindings_signal_del(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
134 EAPI E_Action   *e_bindings_signal_find(E_Binding_Context ctxt, E_Object *obj, const char *sig, const char *src, E_Binding_Signal **bind_ret);
135 EAPI E_Action   *e_bindings_signal_handle(E_Binding_Context ctxt, E_Object *obj, const char *sig, const char *src);
136                                          
137 EAPI void        e_bindings_wheel_add(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
138 EAPI void        e_bindings_wheel_del(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
139 EAPI void        e_bindings_wheel_grab(E_Binding_Context ctxt, Ecore_X_Window win);
140 EAPI void        e_bindings_wheel_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
141 EAPI E_Action   *e_bindings_wheel_find(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Wheel *ev, E_Binding_Wheel **bind_ret);
142 EAPI E_Action   *e_bindings_wheel_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Wheel *ev);
143
144 EAPI void e_bindings_acpi_add(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
145 EAPI void e_bindings_acpi_del(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
146 EAPI E_Action *e_bindings_acpi_find(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi *ev, E_Binding_Acpi **bind_ret);
147 EAPI E_Action *e_bindings_acpi_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi *ev);
148
149 #endif
150 #endif