e_input: move kbd structure to e_comp_input_intern.h
[platform/upstream/enlightenment.git] / src / bin / e_comp_input_intern.h
1 #ifndef E_COMP_INPUT_INTERN_H
2 #define E_COMP_INPUT_INTERN_H
3
4 #include "e_intern.h"
5 #include <xkbcommon/xkbcommon.h>
6
7 typedef struct _E_Comp_Input_Key_Data E_Comp_Input_Key_Data;
8
9 struct _E_Comp_Input_Key_Data
10 {
11    struct
12      {
13         struct xkb_keymap *keymap;
14         struct xkb_context *context;
15         struct xkb_state *state;
16         int fd;
17         size_t size;
18         char *area;
19      } xkb;
20
21    struct
22      {
23         Eina_List *resources;
24         Eina_List *focused;
25         Eina_Bool enabled : 1;
26         xkb_mod_index_t mod_shift, mod_caps;
27         xkb_mod_index_t mod_ctrl, mod_alt;
28         xkb_mod_index_t mod_super;
29         xkb_mod_mask_t mod_depressed, mod_latched, mod_locked;
30         xkb_layout_index_t mod_group;
31         struct wl_array keys;
32         struct wl_array routed_keys;
33         struct wl_resource *focus;
34         int mod_changed;
35         atomic_int repeat_delay;
36         atomic_int repeat_rate;
37         unsigned int num_devices;
38      } kbd;
39 };
40
41 extern EINTERN E_Comp_Input_Key_Data *e_comp_input_key;
42
43 EINTERN void e_comp_input_init(void);
44 EINTERN void e_comp_input_shutdown(void);
45
46 #endif /* E_COMP_INPUT_INTERN_H */