82f3996cde5e7cc75344ce1d68058d7e12d3f46e
[profile/ivi/ecore.git] / src / lib / ecore_imf / ecore_imf_private.h
1 #ifndef _ECORE_IMF_PRIVATE_H
2 #define _ECORE_IMF_PRIVATE_H
3
4 #define ECORE_MAGIC_CONTEXT 0x56c1b39a
5
6 #ifdef ECORE_IMF_DEFAULT_LOG_COLOR
7 #undef ECORE_IMF_DEFAULT_LOG_COLOR
8 #endif
9 #define ECORE_IMF_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
10
11 extern int _ecore_imf_log_dom;
12 #ifdef ERR
13 # undef ERR
14 #endif
15 #define ERR(...) EINA_LOG_DOM_ERR(_ecore_imf_log_dom, __VA_ARGS__)
16
17 #ifdef DBG
18 # undef DBG
19 #endif
20 #define DBG(...) EINA_LOG_DOM_DBG(_ecore_imf_log_dom, __VA_ARGS__)
21
22 #ifdef INF
23 # undef INF
24 #endif
25 #define INF(...) EINA_LOG_DOM_INFO(_ecore_imf_log_dom, __VA_ARGS__)
26
27 #ifdef WRN
28 # undef WRN
29 #endif
30 #define WRN(...) EINA_LOG_DOM_WARN(_ecore_imf_log_dom, __VA_ARGS__)
31
32 #ifdef CRIT
33 # undef CRIT
34 #endif
35 #define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_imf_log_dom, __VA_ARGS__)
36
37 typedef struct _Ecore_IMF_Module Ecore_IMF_Module;
38
39 struct _Ecore_IMF_Context
40 {
41    ECORE_MAGIC;
42    const Ecore_IMF_Module        *module;
43    const Ecore_IMF_Context_Class *klass;
44    void                          *data;
45    int                            input_mode;
46    void                          *window;
47    void                          *client_canvas;
48    Ecore_IMF_Input_Panel_Layout   input_panel_layout;
49    Ecore_IMF_Input_Panel_Lang     input_panel_lang;
50    int                            use_effect;
51    int                            input_panel_x;
52    int                            input_panel_y;
53    Ecore_IMF_Input_Panel_Orient   input_panel_orient;
54    Eina_Bool                    (*retrieve_surrounding_func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
55    void                          *retrieve_surrounding_data;
56    Eina_List                     *callbacks;
57    Eina_List                     *disabled_key_list;
58    Eina_List                     *private_key_list;
59 };
60
61 struct _Ecore_IMF_Module
62 {
63    const Ecore_IMF_Context_Info *info;
64    Ecore_IMF_Context            *(*create)(void);
65    Ecore_IMF_Context            *(*exit)(void);
66 };
67
68 void               ecore_imf_module_init(void);
69 void               ecore_imf_module_shutdown(void);
70 Eina_List         *ecore_imf_module_available_get(void);
71 Ecore_IMF_Module  *ecore_imf_module_get(const char *ctx_id);
72 Ecore_IMF_Context *ecore_imf_module_context_create(const char *ctx_id);
73 Eina_List         *ecore_imf_module_context_ids_get(void);
74 Eina_List         *ecore_imf_module_context_ids_by_canvas_type_get(const char *canvas_type);
75
76 #endif