summaryrefslogtreecommitdiff
path: root/legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h
diff options
context:
space:
mode:
authorJihoon Kim <imfine98@gmail.com>2012-01-18 04:38:04 +0000
committerCarsten Haitzler <raster@rasterman.com>2012-01-18 04:38:04 +0000
commitc652e4e78a89999aaa76769aac8d7f600368ab50 (patch)
tree59c15627a774d61447816b2c4ffa9487941f943e /legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h
parent537bc81acbdef82c74b2887ef3becf90c48c8483 (diff)
From: Jihoon Kim <imfine98@gmail.com>
Long time ago, in http://www.mail-archive.com/enlightenment-devel@lists.sourceforge.net/msg32795.html mail thread and IRC, I talked with about problem of asynchronous event API such as ecore_imf_context_commit_event_add, ecore_imf_context_preedit_changed_event_add, so on. In short, The problem is that key event and text_set APIs are processed immediately, but commit event and preedit changed event is processed asynchronously because those APIs add each event to ecore event queue. To fix these problems, I've decided to create synchronous event APIs such as ecore_imf_context_event_callback_add, del and call. For considering compatibility, sync and async event callback functions are used in xim and scim immodule. SVN revision: 67290
Diffstat (limited to 'legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h')
-rw-r--r--legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h b/legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h
index 07a5b0937a..d9dae80339 100644
--- a/legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h
+++ b/legacy/ecore/src/lib/ecore_imf/ecore_imf_private.h
@@ -35,6 +35,7 @@ extern int _ecore_imf_log_dom;
35#define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_imf_log_dom, __VA_ARGS__) 35#define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_imf_log_dom, __VA_ARGS__)
36 36
37typedef struct _Ecore_IMF_Module Ecore_IMF_Module; 37typedef struct _Ecore_IMF_Module Ecore_IMF_Module;
38typedef struct _Ecore_IMF_Func_Node Ecore_IMF_Func_Node;
38 39
39struct _Ecore_IMF_Context 40struct _Ecore_IMF_Context
40{ 41{
@@ -47,6 +48,7 @@ struct _Ecore_IMF_Context
47 void *client_canvas; 48 void *client_canvas;
48 Eina_Bool (*retrieve_surrounding_func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos); 49 Eina_Bool (*retrieve_surrounding_func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
49 void *retrieve_surrounding_data; 50 void *retrieve_surrounding_data;
51 Eina_List *callbacks;
50 Ecore_IMF_Autocapital_Type autocapital_type; 52 Ecore_IMF_Autocapital_Type autocapital_type;
51 Ecore_IMF_Input_Panel_Layout input_panel_layout; 53 Ecore_IMF_Input_Panel_Layout input_panel_layout;
52 Ecore_IMF_Input_Panel_Lang input_panel_lang; 54 Ecore_IMF_Input_Panel_Lang input_panel_lang;
@@ -61,6 +63,13 @@ struct _Ecore_IMF_Module
61 Ecore_IMF_Context *(*exit)(void); 63 Ecore_IMF_Context *(*exit)(void);
62}; 64};
63 65
66struct _Ecore_IMF_Func_Node
67{
68 void (*func) ();
69 const void *data;
70 Ecore_IMF_Callback_Type type;
71};
72
64void ecore_imf_module_init(void); 73void ecore_imf_module_init(void);
65void ecore_imf_module_shutdown(void); 74void ecore_imf_module_shutdown(void);
66Eina_List *ecore_imf_module_available_get(void); 75Eina_List *ecore_imf_module_available_get(void);