typedef struct _E_Keyrouter_Grab_Request E_Keyrouter_Grab_Request;
typedef struct _E_Keyrouter_Ungrab_Request E_Keyrouter_Ungrab_Request;
-typedef struct _E_Keyrouter_Info E_Keyrouter_Info;
typedef struct _E_Keyrouter_Tizen_HWKey E_Keyrouter_Tizen_HWKey;
typedef struct _E_Keyrouter_Registered_Window_Info E_Keyrouter_Registered_Window_Info;
unsigned char delete_me : 1;
};
-struct _E_Keyrouter_Info
-{
- void *(*keygrab_list_get)(void);
- int (*max_keycode_get)(void);
-};
-
struct _E_Keyrouter_Registered_Window_Info
{
struct wl_resource *surface;
Eina_List *keys;
};
-struct _E_Keyrouter_Key_List_Node
-{
- struct wl_resource *surface;
- struct wl_client *wc;
- Eina_Bool focused;
- E_Keyrouter_Client_Status status;
-};
-
struct _E_Keyrouter_Tizen_HWKey
{
char *name;
};
extern E_API E_KeyrouterPtr krt;
-extern E_API E_Keyrouter_Info e_keyrouter;
extern EINTERN int E_KEYROUTER_EVENT_KEY_LONG;
extern EINTERN int E_KEYROUTER_EVENT_KEY_COMPOSITION_PRESS;
typedef struct _E_Keyrouter_Key_List_Node* E_Keyrouter_Key_List_NodePtr;
typedef struct _E_Keyrouter_Grabbed_Key E_Keyrouter_Grabbed_Key;
typedef struct _E_Keyrouter_Event_Data E_Keyrouter_Event_Data;
+typedef struct _E_Keyrouter_Info E_Keyrouter_Info;
typedef struct _E_Keyrouter_Intercept_Hook E_Keyrouter_Intercept_Hook;
+typedef enum _E_Keyrouter_Client_Status
+{
+ E_KRT_CSTAT_DEAD = 0,
+ E_KRT_CSTAT_ALIVE,
+ E_KRT_CSTAT_UNGRAB
+} E_Keyrouter_Client_Status;
+
typedef enum _E_Keyrouter_Intercept_Hook_Point
{
E_KEYROUTER_INTERCEPT_HOOK_BEFORE_KEYROUTING,
void *data;
};
+struct _E_Keyrouter_Key_List_Node
+{
+ struct wl_resource *surface;
+ struct wl_client *wc;
+ Eina_Bool focused;
+ E_Keyrouter_Client_Status status;
+};
+
+struct _E_Keyrouter_Info
+{
+ void *(*keygrab_list_get)(void);
+ int (*max_keycode_get)(void);
+};
+
+extern E_API E_Keyrouter_Info e_keyrouter;
+
E_API E_Keyrouter_Intercept_Hook *e_keyrouter_intercept_hook_add(E_Keyrouter_Intercept_Hook_Point hookpoint, E_Keyrouter_Intercept_Hook_Cb func, const void *data);
E_API void e_keyrouter_intercept_hook_del(E_Keyrouter_Intercept_Hook *ch);
E_API Eina_Bool e_keyrouter_intercept_hook_call(E_Keyrouter_Intercept_Hook_Point hookpoint, int type, Ecore_Event_Key *event);