5 #include <Ecore_IMF_Input_Panel_Key.h>
12 # ifdef EFL_ECORE_IMF_BUILD
14 # define EAPI __declspec(dllexport)
17 # endif /* ! DLL_EXPORT */
19 # define EAPI __declspec(dllimport)
20 # endif /* ! EFL_ECORE_IMF_BUILD */
24 # define EAPI __attribute__ ((visibility("default")))
48 * @brief The file that provides the ISF IMCONTROL Structures and APIs
50 * @ingroup Ecore_IMF_Context_IMControl_Group
57 /* ecore_imf_context_input_panel_event_callback_add() flag */
60 ECORE_IMF_INPUT_PANEL_STATE_EVENT, /**< Input Panel STATE Event */
61 ECORE_IMF_INPUT_PANEL_MODE_EVENT, /**< Input Panel MODE Event */
62 ECORE_IMF_INPUT_PANEL_LANGUAGE_EVENT, /**< Input Panel LANGUAGE Event */
63 ECORE_IMF_INPUT_PANEL_SHIFT_MODE_EVENT, /**< Input Panel SHIFT MODE */
64 ECORE_IMF_INPUT_PANEL_PREEDIT_MODE_EVENT, /**< Input Panel PREEDIT MODE */
65 ECORE_IMF_INPUT_PANEL_COMPLETION_MODE_EVENT, /**< Input Panel COMPLETION MODE */
66 ECORE_IMF_INPUT_PANEL_CUSTOM_INPUT_MODE_EVENT, /**< Input Panel CUSTOM INPUT MODE */
68 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_01, /**< Input Panel PRIVATE CONTEXT */
69 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_02, /**< Input Panel PRIVATE CONTEXT */
70 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_03, /**< Input Panel PRIVATE CONTEXT */
71 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_04, /**< Input Panel PRIVATE CONTEXT */
72 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_05, /**< Input Panel PRIVATE CONTEXT */
73 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_06, /**< Input Panel PRIVATE CONTEXT */
74 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_07, /**< Input Panel PRIVATE CONTEXT */
75 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_08, /**< Input Panel PRIVATE CONTEXT */
76 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_09, /**< Input Panel PRIVATE CONTEXT */
77 ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_10, /**< Input Panel PRIVATE CONTEXT */
78 ECORE_IMF_INPUT_PANEL_EVENT_INVALID
79 } Ecore_IMF_Input_Panel_Event;
83 ECORE_IMF_INPUT_PANEL_STATE_SHOW, /**< Show Input panel */
84 ECORE_IMF_INPUT_PANEL_STATE_HIDE, /**< Hide Input panel */
85 ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW, /**< Input panel will be shown */
86 ECORE_IMF_INPUT_PANEL_STATE_WILL_HIDE, /**< Input panel will be hidden */
87 ECORE_IMF_INPUT_PANEL_STATE_INVALID
88 } Ecore_IMF_Input_Panel_State;
92 ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL, /**< Default 4x4 layout */
93 ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBER, /**< Number layout */
94 ECORE_IMF_INPUT_PANEL_LAYOUT_EMAIL, /**< Email layout */
95 ECORE_IMF_INPUT_PANEL_LAYOUT_URL, /**< URL layout */
96 ECORE_IMF_INPUT_PANEL_LAYOUT_PHONENUMBER, /**< Phone Number layout */
97 ECORE_IMF_INPUT_PANEL_LAYOUT_IP, /**< IP layout */
98 ECORE_IMF_INPUT_PANEL_LAYOUT_MONTH, /**< Month layout */
99 ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY, /**< Number Only layout */
100 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_1 = 100, /* Reserved for future use */
101 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_2,
102 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_3,
103 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_4,
104 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_5,
105 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_6,
106 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_7,
107 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_8,
108 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_9,
109 ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_10,
110 ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID
111 } Ecore_IMF_Input_Panel_Layout;
115 ECORE_IMF_INPUT_PANEL_LANG_AUTOMATIC, /**< Automatic */
116 ECORE_IMF_INPUT_PANEL_LANG_ALPHABET /**< Alphabet */
117 } Ecore_IMF_Input_Panel_Lang;
121 ECORE_IMF_KEYBOARD_LANG_NATIVE, /**< Native */
122 ECORE_IMF_KEYBOARD_LANG_ALPHABET /**< Alphabet */
123 } Ecore_IMF_Keyboard_Lang;
127 ECORE_IMF_AUTOCORRECTION_DEFAULT,
128 ECORE_IMF_AUTOCORRECTION_NO,
129 ECORE_IMF_AUTOCORRECTION_YES,
130 ECORE_IMF_AUTOCORRECTION_INVALID
131 } Ecore_IMF_Autocorrection;
135 ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF, /**< Off */
136 ECORE_IMF_INPUT_PANEL_CAPS_MODE_ON, /**< On */
137 ECORE_IMF_INPUT_PANEL_CAPS_MODE_LOCK, /**< Lock */
138 } Ecore_IMF_Input_Panel_Caps_Mode;
142 ECORE_IMF_INPUT_PANEL_ORIENT_NONE,
143 ECORE_IMF_INPUT_PANEL_ORIENT_90_CW, /* Clockwise */
144 ECORE_IMF_INPUT_PANEL_ORIENT_180,
145 ECORE_IMF_INPUT_PANEL_ORIENT_90_CCW /* CounterClockwise */
146 } Ecore_IMF_Input_Panel_Orient;
160 char data[128]; // label or image path
165 /* Events sent by the Input Method */
166 typedef struct _Ecore_IMF_Event_Preedit_Start Ecore_IMF_Event_Preedit_Start;
167 typedef struct _Ecore_IMF_Event_Preedit_End Ecore_IMF_Event_Preedit_End;
168 typedef struct _Ecore_IMF_Event_Preedit_Changed Ecore_IMF_Event_Preedit_Changed;
169 typedef struct _Ecore_IMF_Event_Commit Ecore_IMF_Event_Commit;
170 typedef struct _Ecore_IMF_Event_Delete_Surrounding Ecore_IMF_Event_Delete_Surrounding;
172 /* Events to filter */
173 typedef struct _Ecore_IMF_Event_Mouse_Down Ecore_IMF_Event_Mouse_Down;
174 typedef struct _Ecore_IMF_Event_Mouse_Up Ecore_IMF_Event_Mouse_Up;
175 typedef struct _Ecore_IMF_Event_Mouse_In Ecore_IMF_Event_Mouse_In;
176 typedef struct _Ecore_IMF_Event_Mouse_Out Ecore_IMF_Event_Mouse_Out;
177 typedef struct _Ecore_IMF_Event_Mouse_Move Ecore_IMF_Event_Mouse_Move;
178 typedef struct _Ecore_IMF_Event_Mouse_Wheel Ecore_IMF_Event_Mouse_Wheel;
179 typedef struct _Ecore_IMF_Event_Key_Down Ecore_IMF_Event_Key_Down;
180 typedef struct _Ecore_IMF_Event_Key_Up Ecore_IMF_Event_Key_Up;
181 typedef union _Ecore_IMF_Event Ecore_IMF_Event;
183 typedef struct _Ecore_IMF_Context Ecore_IMF_Context; /**< An Input Method Context */
184 typedef struct _Ecore_IMF_Context_Class Ecore_IMF_Context_Class; /**< An Input Method Context class */
185 typedef struct _Ecore_IMF_Context_Info Ecore_IMF_Context_Info; /**< An Input Method Context info */
187 EAPI extern int ECORE_IMF_EVENT_PREEDIT_START;
188 EAPI extern int ECORE_IMF_EVENT_PREEDIT_END;
189 EAPI extern int ECORE_IMF_EVENT_PREEDIT_CHANGED;
190 EAPI extern int ECORE_IMF_EVENT_COMMIT;
191 EAPI extern int ECORE_IMF_EVENT_DELETE_SURROUNDING;
195 ECORE_IMF_EVENT_MOUSE_DOWN,
196 ECORE_IMF_EVENT_MOUSE_UP,
197 ECORE_IMF_EVENT_MOUSE_IN,
198 ECORE_IMF_EVENT_MOUSE_OUT,
199 ECORE_IMF_EVENT_MOUSE_MOVE,
200 ECORE_IMF_EVENT_MOUSE_WHEEL,
201 ECORE_IMF_EVENT_KEY_DOWN,
202 ECORE_IMF_EVENT_KEY_UP
203 } Ecore_IMF_Event_Type;
207 ECORE_IMF_KEYBOARD_MODIFIER_NONE = 0, /**< No active modifiers */
208 ECORE_IMF_KEYBOARD_MODIFIER_CTRL = 1 << 0, /**< "Control" is pressed */
209 ECORE_IMF_KEYBOARD_MODIFIER_ALT = 1 << 1, /**< "Alt" is pressed */
210 ECORE_IMF_KEYBOARD_MODIFIER_SHIFT = 1 << 2, /**< "Shift" is pressed */
211 ECORE_IMF_KEYBOARD_MODIFIER_WIN = 1 << 3 /**< "Win" (between "Ctrl" and "Alt") is pressed */
212 } Ecore_IMF_Keyboard_Modifiers;
216 ECORE_IMF_KEYBOARD_LOCK_NONE = 0, /**< No locks are active */
217 ECORE_IMF_KEYBOARD_LOCK_NUM = 1 << 0, /**< "Num" lock is active */
218 ECORE_IMF_KEYBOARD_LOCK_CAPS = 1 << 1, /**< "Caps" lock is active */
219 ECORE_IMF_KEYBOARD_LOCK_SCROLL = 1 << 2 /**< "Scroll" lock is active */
220 } Ecore_IMF_Keyboard_Locks;
224 ECORE_IMF_MOUSE_NONE = 0, /**< A single click */
225 ECORE_IMF_MOUSE_DOUBLE_CLICK = 1 << 0, /**< A double click */
226 ECORE_IMF_MOUSE_TRIPLE_CLICK = 1 << 1 /**< A triple click */
227 } Ecore_IMF_Mouse_Flags;
231 ECORE_IMF_INPUT_MODE_ALPHA = 1 << 0,
232 ECORE_IMF_INPUT_MODE_NUMERIC = 1 << 1,
233 ECORE_IMF_INPUT_MODE_SPECIAL = 1 << 2,
234 ECORE_IMF_INPUT_MODE_HEXA = 1 << 3,
235 ECORE_IMF_INPUT_MODE_TELE = 1 << 4,
236 ECORE_IMF_INPUT_MODE_FULL = (ECORE_IMF_INPUT_MODE_ALPHA | ECORE_IMF_INPUT_MODE_NUMERIC | ECORE_IMF_INPUT_MODE_SPECIAL),
237 ECORE_IMF_INPUT_MODE_INVISIBLE = 1 << 29,
238 ECORE_IMF_INPUT_MODE_AUTOCAP = 1 << 30
239 } Ecore_IMF_Input_Mode;
241 struct _Ecore_IMF_Event_Preedit_Start
243 Ecore_IMF_Context *ctx;
246 struct _Ecore_IMF_Event_Preedit_End
248 Ecore_IMF_Context *ctx;
251 struct _Ecore_IMF_Event_Preedit_Changed
253 Ecore_IMF_Context *ctx;
256 struct _Ecore_IMF_Event_Commit
258 Ecore_IMF_Context *ctx;
262 struct _Ecore_IMF_Event_Delete_Surrounding
264 Ecore_IMF_Context *ctx;
269 struct _Ecore_IMF_Event_Mouse_Down
271 int button; /**< The button which has been pressed */
278 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
279 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
280 Ecore_IMF_Mouse_Flags flags; /**< The flags corresponding the mouse click (single, double or triple click) */
281 unsigned int timestamp; /**< The timestamp when the event occured */
284 struct _Ecore_IMF_Event_Mouse_Up
286 int button; /**< The button which has been pressed */
293 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
294 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
295 Ecore_IMF_Mouse_Flags flags; /**< The flags corresponding the mouse click (single, double or triple click) */
296 unsigned int timestamp; /**< The timestamp when the event occured */
299 struct _Ecore_IMF_Event_Mouse_In
308 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
309 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
310 unsigned int timestamp; /**< The timestamp when the event occured */
313 struct _Ecore_IMF_Event_Mouse_Out
322 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
323 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
324 unsigned int timestamp; /**< The timestamp when the event occured */
327 struct _Ecore_IMF_Event_Mouse_Move
338 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
339 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
340 unsigned int timestamp; /**< The timestamp when the event occured */
343 struct _Ecore_IMF_Event_Mouse_Wheel
345 int direction; /* 0 = default up/down wheel */
346 int z; /* ...,-2,-1 = down, 1,2,... = up */
353 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
354 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
355 unsigned int timestamp; /**< The timestamp when the event occured */
358 struct _Ecore_IMF_Event_Key_Down
360 const char *keyname; /**< The string name of the key pressed */
361 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
362 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
363 const char *key; /**< The logical key : (eg shift+1 == exclamation) */
364 const char *string; /**< A UTF8 string if this keystroke has produced a visible string to be ADDED */
365 const char *compose; /**< A UTF8 string if this keystroke has modified a string in the middle of being composed - this string replaces the previous one */
366 unsigned int timestamp; /**< The timestamp when the event occured */
369 struct _Ecore_IMF_Event_Key_Up
371 const char *keyname; /**< The string name of the key pressed */
372 Ecore_IMF_Keyboard_Modifiers modifiers; /**< The keyboard modifiers active when the event has been emitted */
373 Ecore_IMF_Keyboard_Locks locks; /**< The keyboard locks active when the event has been emitted */
374 const char *key; /**< The logical key : (eg shift+1 == exclamation) */
375 const char *string; /**< A UTF8 string if this keystroke has produced a visible string to be ADDED */
376 const char *compose; /**< A UTF8 string if this keystroke has modified a string in the middle of being composed - this string replaces the previous one */
377 unsigned int timestamp; /**< The timestamp when the event occured */
380 union _Ecore_IMF_Event
382 Ecore_IMF_Event_Mouse_Down mouse_down;
383 Ecore_IMF_Event_Mouse_Up mouse_up;
384 Ecore_IMF_Event_Mouse_In mouse_in;
385 Ecore_IMF_Event_Mouse_Out mouse_out;
386 Ecore_IMF_Event_Mouse_Move mouse_move;
387 Ecore_IMF_Event_Mouse_Wheel mouse_wheel;
388 Ecore_IMF_Event_Key_Down key_down;
389 Ecore_IMF_Event_Key_Up key_up;
394 ECORE_IMF_PREEDIT_TYPE_NONE = 0,
395 ECORE_IMF_PREEDIT_TYPE_SUB1 = 1,
396 ECORE_IMF_PREEDIT_TYPE_SUB2 = 2,
397 ECORE_IMF_PREEDIT_TYPE_SUB3 = 3
398 } Ecore_IMF_Preedit_Type;
400 typedef struct _Ecore_IMF_Preedit_Attr Ecore_IMF_Preedit_Attr;
402 struct _Ecore_IMF_Preedit_Attr
404 Ecore_IMF_Preedit_Type preedit_type;
405 unsigned int start_index;
406 unsigned int end_index;
409 struct _Ecore_IMF_Context_Class
411 void (*add) (Ecore_IMF_Context *ctx);
412 void (*del) (Ecore_IMF_Context *ctx);
413 void (*client_window_set) (Ecore_IMF_Context *ctx, void *window);
414 void (*client_canvas_set) (Ecore_IMF_Context *ctx, void *canvas);
415 void (*show) (Ecore_IMF_Context *ctx);
416 void (*hide) (Ecore_IMF_Context *ctx);
417 void (*preedit_string_get) (Ecore_IMF_Context *ctx, char **str, int *cursor_pos);
418 void (*focus_in) (Ecore_IMF_Context *ctx);
419 void (*focus_out) (Ecore_IMF_Context *ctx);
420 void (*reset) (Ecore_IMF_Context *ctx);
421 void (*cursor_position_set) (Ecore_IMF_Context *ctx, int cursor_pos);
422 void (*use_preedit_set) (Ecore_IMF_Context *ctx, Eina_Bool use_preedit);
423 void (*input_mode_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
424 Eina_Bool (*filter_event) (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
426 /* Input Panel Control APIs */
427 void (*control_panel_show) (Ecore_IMF_Context *ctx);
428 void (*control_panel_hide) (Ecore_IMF_Context *ctx);
430 void (*input_panel_layout_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout);
431 Ecore_IMF_Input_Panel_Layout (*input_panel_layout_get) (Ecore_IMF_Context *ctx);
433 void (*input_panel_language_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang);
434 Ecore_IMF_Input_Panel_Lang (*input_panel_language_get) (Ecore_IMF_Context *ctx);
436 void (*input_panel_imdata_set) (Ecore_IMF_Context *ctx, const char* data, int len);
437 void (*input_panel_imdata_get) (Ecore_IMF_Context *ctx, char* data, int *len);
439 void (*input_panel_use_effect_set) (Ecore_IMF_Context *ctx, Eina_Bool use_effect);
440 void (*input_panel_orient_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Orient orientation);
442 void (*input_panel_move) (Ecore_IMF_Context *ctx, int x, int y);
443 void (*input_panel_geometry_get) (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
444 void (*input_panel_private_key_set) (Ecore_IMF_Context *ctx, int layout_index, int key_index, const char *img_path, const char* label, const char* value);
445 void (*input_panel_key_disabled_set) (Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
447 void (*input_panel_reset) (Ecore_IMF_Context *ctx); /* Same as reset to default property*/
448 Ecore_IMF_Input_Panel_State (*input_panel_state_get) (Ecore_IMF_Context *ctx);
451 void (*input_panel_event_callback_add) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallBackFunc) (void *data, Ecore_IMF_Context *ctx, int value), void *data);
452 void (*input_panel_event_callback_del) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value));
454 /* ISF related APIs */
455 int (*ise_get_ise_language) (Ecore_IMF_Context *ctx, const char* input_panel_name, char*** langlist);
456 int (*ise_set_isf_language) (Ecore_IMF_Context *ctx, const char* lang);
457 int (*ise_get_active_isename) (Ecore_IMF_Context *ctx, char* name); /**< will be deprecated */
458 int (*ise_set_active_ise_by_name) (Ecore_IMF_Context *ctx, const char* name); /**< will be deprecated */
459 int (*ise_set_active_ise_by_uuid) (Ecore_IMF_Context *ctx, const char* uuid); /**< will be deprecated */
460 int (*ise_get_iselist) (Ecore_IMF_Context *ctx, char*** iselist); /**< will be deprecated */
461 void (*input_panel_caps_mode_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Caps_Mode mode);
463 void (*preedit_string_with_attributes_get) (Ecore_IMF_Context *ctx, char **str, Eina_List **attrs, int *cursor_pos);
466 struct _Ecore_IMF_Context_Info
468 const char *id; /* ID */
469 const char *description; /* Human readable description */
470 const char *default_locales; /* Languages for which this context is the default, separated by : */
471 const char *canvas_type; /* The canvas type used by the input method. Eg.: evas */
472 int canvas_required; /* Whether the canvas usage is required for this input method */
475 EAPI int ecore_imf_init(void);
476 EAPI int ecore_imf_shutdown(void);
478 EAPI void ecore_imf_module_register(const Ecore_IMF_Context_Info *info, Ecore_IMF_Context *(*imf_module_create)(void), Ecore_IMF_Context *(*imf_module_exit)(void));
480 EAPI Eina_List *ecore_imf_context_available_ids_get(void);
481 EAPI Eina_List *ecore_imf_context_available_ids_by_canvas_type_get(const char *canvas_type);
482 EAPI const char *ecore_imf_context_default_id_get(void);
483 EAPI const char *ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type);
484 EAPI const Ecore_IMF_Context_Info *ecore_imf_context_info_by_id_get(const char *id);
486 EAPI Ecore_IMF_Context *ecore_imf_context_add(const char *id);
487 EAPI const Ecore_IMF_Context_Info *ecore_imf_context_info_get(Ecore_IMF_Context *ctx);
488 EAPI void ecore_imf_context_del(Ecore_IMF_Context *ctx);
489 EAPI void ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window);
490 EAPI void* ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx);
491 EAPI void ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas);
492 EAPI void* ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx);
493 EINA_DEPRECATED EAPI void ecore_imf_context_show(Ecore_IMF_Context *ctx);
494 EINA_DEPRECATED EAPI void ecore_imf_context_hide(Ecore_IMF_Context *ctx);
495 EAPI void ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cursor_pos);
496 EAPI void ecore_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, char **str, Eina_List **attrs, int *cursor_pos);
497 EAPI void ecore_imf_context_focus_in(Ecore_IMF_Context *ctx);
498 EAPI void ecore_imf_context_focus_out(Ecore_IMF_Context *ctx);
499 EAPI void ecore_imf_context_reset(Ecore_IMF_Context *ctx);
500 EAPI void ecore_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos);
501 EAPI void ecore_imf_context_use_preedit_set(Ecore_IMF_Context *ctx, Eina_Bool use_preedit);
502 EAPI void ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos), const void *data);
503 EINA_DEPRECATED EAPI void ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
504 EINA_DEPRECATED EAPI Ecore_IMF_Input_Mode ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx);
505 EAPI Eina_Bool ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
507 /* plugin specific functions */
508 EAPI Ecore_IMF_Context *ecore_imf_context_new(const Ecore_IMF_Context_Class *ctxc);
509 EAPI void ecore_imf_context_data_set(Ecore_IMF_Context *ctx, void *data);
510 EAPI void *ecore_imf_context_data_get(Ecore_IMF_Context *ctx);
511 EAPI Eina_Bool ecore_imf_context_surrounding_get(Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
512 EAPI void ecore_imf_context_preedit_start_event_add(Ecore_IMF_Context *ctx);
513 EAPI void ecore_imf_context_preedit_end_event_add(Ecore_IMF_Context *ctx);
514 EAPI void ecore_imf_context_preedit_changed_event_add(Ecore_IMF_Context *ctx);
515 EAPI void ecore_imf_context_commit_event_add(Ecore_IMF_Context *ctx, const char *str);
516 EAPI void ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offset, int n_chars);
519 * Show the current active ISE with given state.
520 * To use this API application should include Ecore_IMF.h header file.
521 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
522 * @param ctx context used to map real loaded APIs
523 * @ingroup Ecore_IMF_Context_IMControl_Group
525 * #include <Ecore_IMF.h>
527 * static void entry_application(appdata * ad)
530 * en = elm_entry_add(ad->win_main);
531 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
534 * // show input panel window
535 * ecore_imf_context_input_panel_show (imf_context);
541 EAPI void ecore_imf_context_input_panel_show(Ecore_IMF_Context *ctx);
544 * Hide the current active ISE.
545 * To use this API application should include Ecore_IMF.h header file.
546 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
547 * @param ctx context used to map real loaded APIs
548 * @ingroup Ecore_IMF_Context_IMControl_Group
550 * #include <Ecore_IMF.h>
552 * static void button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
554 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(obj);
558 * ecore_imf_context_input_panel_hide (imf_context);
562 * static void entry_application(appdata * ad)
565 * en = elm_entry_add(ad->win_main);
566 * evas_object_smart_callback_add(en, "clicked", button_clicked_cb, NULL);
571 EAPI void ecore_imf_context_input_panel_hide(Ecore_IMF_Context *ctx);
574 * Show control panel.
575 * @param ctx context used to map real loaded APIs
576 * @ingroup Ecore_IMF_Context_IMControl_Group
578 * ISE control panel shows ISE list and provides setup of each ISE
580 EAPI void ecore_imf_context_control_panel_show (Ecore_IMF_Context *ctx);
583 * Hide control panel.
584 * @param ctx context used to map real loaded APIs
585 * @ingroup Ecore_IMF_Context_IMControl_Group
587 * ISE control panel shows ISE list and provides setup of each ISE
589 EAPI void ecore_imf_context_control_panel_hide (Ecore_IMF_Context *ctx);
592 * Set ISE Language before show ISE.
593 * @param ctx context used to map real loaded APIs
594 * @param lang see Ecore_IMF_Input_Panel_Lang
595 * @ingroup Ecore_IMF_Context_IMControl_Group
596 * THIS API IS NOT SUPPORTED NOW
598 EAPI void ecore_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang);
601 * Get ISE Language of current active ISE.
602 * @param ctx context used to map real loaded APIs
603 * @return Ecore_IMF_Input_Panel_Lang
604 * @ingroup Ecore_IMF_Context_IMControl_Group
605 * THIS API IS NOT SUPPORTED NOW
607 EAPI Ecore_IMF_Input_Panel_Lang ecore_imf_context_input_panel_language_get (Ecore_IMF_Context *ctx);
610 * Set keyboard language.
611 * @param ctx context used to map real loaded APIs
612 * @param lang see Ecore_IMF_Input_Panel_Lang
613 * @ingroup Ecore_IMF_Context_IMControl_Group
614 * THIS API IS NOT SUPPORTED NOW
616 EAPI void ecore_imf_context_keyboard_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Keyboard_Lang lang);
619 * Get keyboard language.
620 * @param ctx context used to map real loaded APIs
621 * @return Ecore_IMF_Input_Panel_Lang
622 * @ingroup Ecore_IMF_Context_IMControl_Group
623 * THIS API IS NOT SUPPORTED NOW
625 EAPI Ecore_IMF_Keyboard_Lang ecore_imf_context_keyboard_language_get (Ecore_IMF_Context *ctx);
628 * Get ISE Language of given ISE. -- Not supported for now --
629 * @ingroup Ecore_IMF_Context_IMControl_Group
631 EAPI int ecore_imf_context_ise_get_ise_language (Ecore_IMF_Context *ctx, const char* ise_name, char ***langlist);
634 * Set ISF Language. -- Not supported for now --
635 * @ingroup Ecore_IMF_Context_IMControl_Group
637 EAPI void ecore_imf_context_ise_set_isf_language (Ecore_IMF_Context *ctx, const char* lang);
640 * Set ISE Specific data before show ISE.
641 * To use this API application should include Ecore_IMF.h header file.
642 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
643 * @param ctx context used to map real loaded APIs
644 * @param data data pointer
645 * @param len data length
646 * @ingroup Ecore_IMF_Context_IMControl_Group
648 * this API is used by applications to deliver specific data to ISE.
649 * the data format MUST be negotiated by both application and ISE negotiate.
652 * #include <Ecore_IMF.h>
654 * static void create_entry(struct appdata *ad)
656 * char *im_data="application sample imdata";
659 * en = elm_entry_add(ad->layout_main);
660 * elm_layout_content_set(ad->layout_main, "entry", en);
662 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
666 * ecore_imf_context_input_panel_imdata_set (imf_context, im_data, strlen(im_data)+1);
671 EAPI void ecore_imf_context_input_panel_imdata_set (Ecore_IMF_Context *ctx, const char * data, int len);
674 * Get ISE Specific data of current active ISE.
675 * To use this API application should include Ecore_IMF.h header file.
676 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
677 * @param ctx context used to map real loaded APIs
678 * @param data data pointer
679 * @param len data length
680 * @ingroup Ecore_IMF_Context_IMControl_Group
682 * #include <Ecore_IMF.h>
684 * static void create_entry(struct appdata *ad)
687 * char *im_data = (char*) malloc (len);
689 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(ad->entry);
693 * ecore_imf_context_input_panel_imdata_get (imf_context, im_data, &len);
700 EAPI void ecore_imf_context_input_panel_imdata_get (Ecore_IMF_Context *ctx, char *data, int *len);
703 * Set ISE whether animation effect is shown or not.
704 * To use this API application should include Ecore_IMF.h header file.
705 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
706 * @param ctx context used to map real loaded APIs
707 * @param use_effect whether animation effect is shown or not
708 * @ingroup Ecore_IMF_Context_IMControl_Group
710 * this API is used by applications to deliver specific data to ISE.
711 * the data format MUST be negotiated by both application and ISE negotiate.
714 * #include <Ecore_IMF.h>
716 * static void create_entry(struct appdata *ad)
720 * en = elm_entry_add(ad->layout_main);
721 * elm_layout_content_set(ad->layout_main, "entry", en);
723 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
727 * ecore_imf_context_input_panel_use_effect_set (imf_context, EINA_FALSE); // turn off the animation effect when input panel is appeared.
732 EAPI void ecore_imf_context_input_panel_use_effect_set (Ecore_IMF_Context *ctx, Eina_Bool use_effect);
735 * Get whether ISE supports animation effect or not when it is shown or hidden.
736 * To use this API application should include Ecore_IMF.h header file.
737 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
738 * @param ctx context used to map real loaded APIs
739 * @param use_effect whether animation effect is shown or not
740 * @ingroup Ecore_IMF_Context_IMControl_Group
742 * this API is used by applications to deliver specific data to ISE.
743 * the data format MUST be negotiated by both application and ISE negotiate.
746 * #include <Ecore_IMF.h>
748 * static Eina_Bool get_effect_info(struct appdata *ad)
750 * Eina_Bool use_effect = EINA_TRUE;
752 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(ad->entry);
756 * use_effect = ecore_imf_context_input_panel_use_effect_get (imf_context);
763 EAPI Eina_Bool ecore_imf_context_input_panel_use_effect_get (Ecore_IMF_Context *ctx);
766 * Get ISE position of current active ISE.
767 * To use this API application should include Ecore_IMF.h header file.
768 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
769 * @param ctx context used to map real loaded APIs
770 * @param x top-left x co-ordinate of rectangle;
771 * @param y top-left y co-ordinate of rectangle;
772 * @param w width of rectangle ;
773 * @param h height of rectangle;
774 * @ingroup Ecore_IMF_Context_IMControl_Group
776 * #include <Ecore_IMF.h>
778 * int get_geometry(struct appdata *ad)
780 * Ecore_IMF_Context *imf_context = NULL;
782 * imf_context = elm_entry_imf_context_get (ad->entry);
785 * ecore_imf_context_input_panel_geometry_get (imf_context, &x, &y, &w, &h);
786 * //here application can get window size rect
787 * printf ("x=%d \n", x);
788 * printf ("y=%d \n", y);
789 * printf ("width=%d \n", w);
790 * printf ("height=%d \n", h);
794 EAPI void ecore_imf_context_input_panel_geometry_get (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
797 * Set ISE private key before show ISE.
798 * To use this API application should include Ecore_IMF.h header file.
799 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
800 * Since the second parameter of this API requires a layout index, so before using this API application has to set a specific layout and that layout index
801 * should be passed in the 2nd argument of this API(see sample code).
802 * @param ctx context used to map real loaded APIs
803 * @param layout_index index of layout page to be set
804 * @param key_index index of key to be set
805 * @param label text label to be appeared on private key
806 * @param value value of key, If NULL it will use original value of key
807 * @ingroup Ecore_IMF_Context_IMControl_Group
810 * #include <Ecore_IMF.h>
812 * static void create_entry(struct appdata *ad)
816 * en = elm_entry_add(ad->layout_main);
818 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
822 * ecore_imf_context_input_panel_private_key_set (imf_context, layout, 0, NULL, "www", -1, "www");
827 EAPI void ecore_imf_context_input_panel_private_key_set (Ecore_IMF_Context *ctx, int layout_index, int key_index, const char *img_path, const char* label, int key_value, const char* key_string);
829 EAPI Eina_List *ecore_imf_context_input_panel_private_key_list_get (Ecore_IMF_Context *ctx);
832 * Set ISE Layout before show ISE.
833 * To use this API application should include Ecore_IMF.h header file.
834 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
835 * @param ctx context used to map real loaded APIs
836 * @param layout see ECORE_IMF_INPUT_PANEL_LAYOUT
837 * @ingroup Ecore_IMF_Context_IMControl_Group
839 * #include <Ecore_IMF.h>
841 * static void create_entry(struct appdata *ad)
843 * en = elm_entry_add(ad->layout_main);
844 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
848 * ecore_imf_context_input_panel_layout_set (imf_context, ECORE_IMF_INPUT_PANEL_LAYOUT_EMAIL);
853 EAPI void ecore_imf_context_input_panel_layout_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout);
856 * Get ISE Layout of current active ISE.
857 * To use this API application should include Ecore_IMF.h header file.
858 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
859 * @param ctx context used to map real loaded APIs
860 * @return layout see ECORE_IMF_INPUT_PANEL_LAYOUT
861 * @ingroup Ecore_IMF_Context_IMControl_Group
863 * #include <Ecore_IMF.h>
865 * static void layout_get(struct appdata *ad)
867 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(ad->entry);
871 * layout = ecore_imf_context_input_panel_layout_get (imf_context);
876 EAPI Ecore_IMF_Input_Panel_Layout ecore_imf_context_input_panel_layout_get (Ecore_IMF_Context *ctx);
879 * Reset ISE Context including its Style.
880 * To use this API application should include Ecore_IMF.h header file.
881 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
882 * This is special function that should be called before calling any ecore_imf_context_set*** APIs to restore all default properties of ISE.
883 * @ingroup Ecore_IMF_Context_IMControl_Group
885 * NOTE: This API MUST be called before calling ecore_imf_context_input_panel_show().
887 EAPI void ecore_imf_context_input_panel_reset (Ecore_IMF_Context *ctx); /* Same as reset to default property*/
890 * Set ISE screen orientation.
891 * To use this API application should include Ecore_IMF.h header file.
892 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
893 * To show the keypad in landscape mode application should first call this API with 2nd parameter as 90 or 270.
894 * After then only application should call ecore_imf_context_input_panel_show() function.
895 * @ingroup Ecore_IMF_Context_IMControl_Group
897 * #include <Ecore_IMF.h>
899 * static void create_entry(struct appdata *ad)
901 * en = elm_entry_add(ad->layout_main);
902 * elm_layout_content_set(ad->layout_main, "entry", en);
904 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
905 * int degree = 90; // the degree value can be either 90/270 for landscape mode and normal portrait mode 0/360.
909 * // the orient value can be
910 * // ECORE_IMF_INPUT_PANEL_ORIENT_NONE,
911 * // ECORE_IMF_INPUT_PANEL_ORIENT_90_CW // Clockwise
912 * // ECORE_IMF_INPUT_PANEL_ORIENT_180,
913 * // ECORE_IMF_INPUT_PANEL_ORIENT_90_CCW // CounterClockwise
914 * ecore_imf_context_input_panel_orient_set(imf_context, ECORE_IMF_INPUT_PANEL_ORIENT_90_CW);
918 EAPI void ecore_imf_context_input_panel_orient_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Orient orientation);
921 * Get Input panel orientation.
922 * To use this API application should include Ecore_IMF.h header file.
923 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
924 * To show the keypad in landscape mode application should first call this API with 2nd parameter as 90 or 270.
925 * After then only application should call ecore_imf_context_input_panel_show() function.
926 * @ingroup Ecore_IMF_Context_IMControl_Group
928 * #include <Ecore_IMF.h>
930 * void get_orient (struct appdata *ad)
932 * Ecore_IMF_Input_Panel_Orient orient;
933 * ad->entry = elm_entry_add(ad->layout_main);
934 * elm_entry_input_panel_layout_set(ad->entry, ELM_INPUT_PANEL_LAYOUT_URL);
935 * imf_context = elm_entry_imf_context_get (ad->entry);
938 * orient = ecore_imf_context_input_panel_orient_get (imf_context);
943 * case ECORE_IMF_INPUT_PANEL_ORIENT_NONE:
944 * printf("0 degree\n");
946 * case ECORE_IMF_INPUT_PANEL_ORIENT_90_CW:
947 * printf("90 degree clockwise\n");
949 * case ECORE_IMF_INPUT_PANEL_ORIENT_180:
950 * printf("90 degree clockwise\n");
952 * case ECORE_IMF_INPUT_PANEL_ORIENT_90_CCW:
953 * printf("90 degree counter-clockwise\n");
959 EAPI Ecore_IMF_Input_Panel_Orient ecore_imf_context_input_panel_orient_get (Ecore_IMF_Context *ctx);
962 * Get name of current active ISE.
963 * To use this API application should include Ecore_IMF.h header file.
964 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
965 * @param ctx context used to map real loaded APIs
966 * @param name ISE name to be got
967 * @ingroup Ecore_IMF_Context_IMControl_Group
969 * #include <Ecore_IMF.h>
971 * static void create_entry(struct appdata *ad)
974 * char *isename = (char*) malloc (len);
975 * memset(isename, '\0', sizeof(isename));
977 * Ecore_IMF_Context *imf_context = NULL;
978 * imf_context = elm_entry_imf_context_get(obj);
982 * ecore_imf_context_ise_get_active_isename (imf_context, isename);
983 * printf("get isename=[%s]\n", isename);
988 EAPI void ecore_imf_context_ise_get_active_isename (Ecore_IMF_Context *ctx, char* name);
991 * Set ISE by its name.
992 * To use this API application should include Ecore_IMF.h header file.
993 * Before calling this API, every application should call ecore_imf_init() to initialize the ecore_imf shared library.
994 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
995 * @param ctx context used to map real loaded APIs
996 * @param name ISE name to be set
997 * @ingroup Ecore_IMF_Context_IMControl_Group
999 * #include <Ecore_IMF.h>
1001 * static void create_entry(struct appdata *ad)
1005 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(obj);
1009 * ecore_imf_context_ise_set_active_ise_by_name (imf_context, "Input Pad");
1012 * //do imf related things
1014 * ecore_imf_shutdown();
1016 * //do imf irrelated things
1020 EAPI void ecore_imf_context_ise_set_active_ise_by_name (Ecore_IMF_Context *ctx, const char* name);
1023 * Set ISE by its uuid.
1024 * To use this API application should include Ecore_IMF.h header file.
1025 * Before calling this API, every application should call ecore_imf_init() to initialize the ecore_imf shared library.
1026 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
1027 * @param ctx context used to map real loaded APIs
1028 * @param uuid ISE uuid to be set
1029 * @ingroup Ecore_IMF_Context_IMControl_Group
1031 * #include <Ecore_IMF.h>
1033 * static void create_entry(struct appdata *ad)
1035 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(obj);
1039 * ecore_imf_context_ise_set_active_ise_by_uuid (imf_context, "ff110940-b8f0-4062-9ff6-a84f4f3575c0");
1040 * ecore_imf_context_input_panel_show (imf_context);
1045 EAPI void ecore_imf_context_ise_set_active_ise_by_uuid (Ecore_IMF_Context *ctx, const char* uuid);
1049 * To use this API application should include Ecore_IMF.h header file.
1050 * Before calling this API, every application should call ecore_imf_init() to initialize the ecore_imf shared library.
1051 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
1052 * @param ctx context used to map real loaded APIs
1053 * @param iselist pointer to the list to be got.
1054 * @return int ise counter of iselist
1055 * @ingroup Ecore_IMF_Context_IMControl_Group
1057 * #include <Ecore_IMF.h>
1059 * static void create_entry(struct appdata *ad)
1063 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(obj);
1069 * count = ecore_imf_context_input_panel_get_iselist(imf_context, &iselist);
1070 * printf("get_iselist : count[%d] ", count);
1071 * for (i=0;i<count;i++)
1072 * printf("[%d:%s] ", i, iselist[i]);
1075 * //do imf related things
1077 * ecore_imf_shutdown();
1079 * //do imf irrelated things
1083 EAPI int ecore_imf_context_ise_get_iselist (Ecore_IMF_Context *ctx, char*** iselist);
1086 * Get state of current active ISE.
1087 * To use this API application should include Ecore_IMF.h header file.
1088 * Before calling this API, every application should call ecore_imf_init() to initialize the ecore_imf shared library.
1089 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
1090 * @param ctx context used to map real loaded APIs
1091 * @param state see ISE_STATE
1092 * @ingroup Ecore_IMF_Context_IMControl_Group
1094 * #include <Ecore_IMF.h>
1096 * static void input_panel_state_get(struct appdata *ad)
1098 * Ecore_IMF_Input_Panel_State state;
1100 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(ad->entry);
1104 * state = ecore_imf_context_input_panel_state_get (imf_context);
1105 * //here u can see what the current state is
1106 * printf("the current state of ISE is %d", state);
1111 EAPI Ecore_IMF_Input_Panel_State ecore_imf_context_input_panel_state_get (Ecore_IMF_Context *ctx);
1114 * Application can register a callback function which will be called if there is change in ise state,language,mode etc.
1115 * To use this API application should include Ecore_IMF.h header file.
1116 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
1117 * @param ctx context used to map real loaded APIs.
1118 * @param pEventCallback the callback function to be called
1119 * @param data application-ISE specific data.
1120 * @return an integer unique to callabck registered.
1121 * @ingroup Ecore_IMF_Context_IMControl_Group
1123 * #include <Ecore_IMF.h>
1125 * void _input_panel_event_callback(void *data, Ecore_IMF_Context *ctx, int value)
1127 * if(value == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
1128 * // ISE state has changed to ECORE_IMF_INPUT_PANEL_STATE_SHOW status
1129 * } else if(value == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
1130 * // ISE state has changed to ECORE_IMF_INPUT_PANEL_STATE_HIDE status
1132 * printf("value: %d\n", value);
1135 * static void create_entry(struct appdata *ad)
1138 * en = elm_entry_add(ad->layout_main);
1139 * elm_layout_content_set(ad->layout_main, "entry", en);
1141 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
1145 * ecore_imf_context_input_panel_event_callback_add (imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback, data);
1149 * In order to deregister the callback function registered application should follow the below step.
1150 * ecore_imf_context_input_panel_event_callback_del (imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _ise_event_callback);
1152 EAPI void ecore_imf_context_input_panel_event_callback_add (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
1154 EAPI void ecore_imf_context_input_panel_event_callback_del (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value));
1157 * Set the key to be disabled.
1158 * To use this API application should include Ecore_IMF.h header file.
1159 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
1160 * Since the second parameter of this API requires a layout index, so before using this API application has to set a specific layout and that layout index
1161 * should be passed in the 2nd argument of this API(see sample code).
1162 * @param ctx context used to map real loaded APIs
1163 * @param layout_index index of layout page to be set
1164 * @param key_index index of key to be set
1165 * @param disabled The state
1166 * @ingroup Ecore_IMF_Context_IMControl_Group
1168 * #include <Ecore_IMF.h>
1170 * static void create_entry(struct appdata *ad)
1173 * en = elm_entry_add(ad->layout_main);
1174 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
1178 * ecore_imf_context_input_panel_key_disabled_set (imf_context, layout, ECORE_IMF_INPUT_PANEL_KEY_SPACE, EINA_TRUE);
1183 EAPI void ecore_imf_context_input_panel_key_disabled_set (Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
1185 EAPI Eina_List *ecore_imf_context_input_panel_key_disabled_list_get (Ecore_IMF_Context *ctx);
1188 * Move the soft keyboard to the new position.
1189 * To use this API application should include Ecore_IMF.h header file.
1190 * The first parameter i.e Ecore_IMF_Context *ctx is used to map the ecore_imf API into real implemented API which is inside ISF.
1191 * Since the second parameter of this API requires a layout index, so before using this API application has to set a specific layout and that layout index
1192 * should be passed in the 2nd argument of this API(see sample code).
1193 * @param ctx context used to map real loaded APIs
1194 * @param x X position to move the virtual keyboard to
1195 * @param y Y position to move the virtual keyboard to
1196 * @ingroup Ecore_IMF_Context_IMControl_Group
1198 * #include <Ecore_IMF.h>
1200 * static void create_entry(struct appdata *ad)
1202 * Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(obj);
1206 * ecore_imf_context_input_panel_move (imf_context, 0, 400);
1211 EAPI void ecore_imf_context_input_panel_move (Ecore_IMF_Context *ctx, int x, int y);
1213 EAPI void ecore_imf_context_input_panel_caps_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Caps_Mode mode);
1215 /* The following entry points must be exported by each input method module
1219 * int imf_module_init (const Ecore_IMF_Context_Info **info);
1220 * void imf_module_exit (void);
1221 * Ecore_IMF_Context *imf_module_create (void);
1230 /* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/