static Evas_Object * _key_event_label = NULL;
static Evas_Object * _preedit_event_label = NULL;
static Evas_Object * _commit_event_label = NULL;
-static Ecore_Event_Handler *_preedit_handler = NULL;
-static Ecore_Event_Handler *_commit_handler = NULL;
static void _input_panel_event_callback (void *data, Ecore_IMF_Context *ctx, int value)
{
}
}
-static Eina_Bool _ecore_imf_event_changed_cb (void *data, int type, void *event)
+static void _ecore_imf_event_changed_cb (void *data, Ecore_IMF_Context *ctx, void *event)
{
int len;
static char str [100];
snprintf (str, sizeof (str), "entry 2 get preedit string: %s", preedit_string);
elm_object_text_set (_preedit_event_label, str);
}
-
- return ECORE_CALLBACK_RENEW;
}
-static Eina_Bool _ecore_imf_event_commit_cb (void *data, int type, void *event)
+static void _ecore_imf_event_commit_cb (void *data, Ecore_IMF_Context *ctx, void *event)
{
static char str [100];
- Ecore_IMF_Event_Commit *ev = (Ecore_IMF_Event_Commit *) event;
+ char *commit_str = (char *)event;
if (elm_object_focus_get (_entry1) == EINA_TRUE) {
- snprintf (str, sizeof (str), "entry 1 get commit string: %s", (char *)(ev->str));
+ snprintf (str, sizeof (str), "entry 1 get commit string: %s", commit_str);
elm_object_text_set (_commit_event_label, str);
} else if (elm_object_focus_get (_entry2) == EINA_TRUE) {
- snprintf (str, sizeof (str), "entry 2 get commit string: %s", (char *)(ev->str));
+ snprintf (str, sizeof (str), "entry 2 get commit string: %s", commit_str);
elm_object_text_set (_commit_event_label, str);
}
- return ECORE_CALLBACK_RENEW;
}
void isf_entry_event_demo_bt (void *data, Evas_Object *obj, void *event_info)
evas_object_size_hint_align_set (bx, EVAS_HINT_FILL, 0.0);
evas_object_show (bx);
- _preedit_handler = ecore_event_handler_add (ECORE_IMF_EVENT_PREEDIT_CHANGED, _ecore_imf_event_changed_cb, NULL);
- _commit_handler = ecore_event_handler_add (ECORE_IMF_EVENT_COMMIT, _ecore_imf_event_commit_cb, NULL);
-
/* Entry 1 */
_entry1 = elm_entry_add (bx);
elm_entry_entry_set (_entry1, "ENTRY 1");
elm_box_pack_end (bx, _entry1);
ic = (Ecore_IMF_Context *)elm_entry_imf_context_get (_entry1);
- if (ic != NULL)
+ if (ic != NULL) {
+ ecore_imf_context_event_callback_add(ic, ECORE_IMF_CALLBACK_COMMIT, _ecore_imf_event_commit_cb, NULL);
+ ecore_imf_context_event_callback_add(ic, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _ecore_imf_event_changed_cb, NULL);
ecore_imf_context_input_panel_event_callback_add (ic, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback, NULL);
+ }
/* Entry 2 */
_entry2 = elm_entry_add (bx);
elm_box_pack_end (bx, _entry2);
ic = (Ecore_IMF_Context *)elm_entry_imf_context_get (_entry2);
- if (ic != NULL)
+ if (ic != NULL) {
+ ecore_imf_context_event_callback_add(ic, ECORE_IMF_CALLBACK_COMMIT, _ecore_imf_event_commit_cb, NULL);
+ ecore_imf_context_event_callback_add(ic, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _ecore_imf_event_changed_cb, NULL);
ecore_imf_context_input_panel_event_callback_add (ic, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback, NULL);
+ }
/* key event */
_key_event_label = create_button (bx, "KEY EVENT");
static Evas_Object *_set_focus_button1 = NULL;
static Evas_Object *_set_focus_button2 = NULL;
static Evas_Object *_ise_show_button = NULL;
-static Ecore_Event_Handler *_preedit_handler = NULL;
-static Ecore_Event_Handler *_commit_handler = NULL;
static int focus_label_idx = 1;
extern void isf_entry_event_demo_bt (void *data, Evas_Object *obj, void *event_info);
}
}
-static Eina_Bool _ecore_imf_event_changed_cb (void *data, int type, void *event)
+static void _ecore_imf_event_changed_cb (void *data, Ecore_IMF_Context *ctx, void *event)
{
static char str [100];
ecore_imf_context_preedit_string_get (_imf_context[focus_label_idx-1], &preedit_string, &cursor_pos);
if (preedit_string == NULL)
- return ECORE_CALLBACK_CANCEL;
+ return;
snprintf (str, sizeof (str), "label %d get preedit string: %s", focus_label_idx, preedit_string);
if (_preedit_event_label)
elm_object_text_set (_preedit_event_label, str);
-
- return ECORE_CALLBACK_CANCEL;
}
-static Eina_Bool _ecore_imf_event_commit_cb (void *data, int type, void *event)
+static void _ecore_imf_event_commit_cb (void *data, Ecore_IMF_Context *ctx, void *event)
{
static char str [100];
- Ecore_IMF_Event_Commit *ev = (Ecore_IMF_Event_Commit *) event;
+ char *commit_str = (char *)event;
- snprintf (str, sizeof (str), "label %d get commit string: %s", focus_label_idx, (char *)(ev->str));
+ snprintf (str, sizeof (str), "label %d get commit string: %s", focus_label_idx, commit_str);
elm_object_text_set (_commit_event_label, str);
- return ECORE_CALLBACK_CANCEL;
}
static Eina_Bool _nf_back_event_cb (void *data, Elm_Object_Item *it)
}
}
- if (_preedit_handler != NULL) {
- ecore_event_handler_del (_preedit_handler);
- _preedit_handler = NULL;
- }
-
- if (_commit_handler != NULL) {
- ecore_event_handler_del (_commit_handler);
- _commit_handler = NULL;
- }
-
return EINA_TRUE;
}
const char *ctx_id = ecore_imf_context_default_id_get ();
- /* register preedit (composing) event handler */
- _preedit_handler = ecore_event_handler_add (ECORE_IMF_EVENT_PREEDIT_CHANGED, _ecore_imf_event_changed_cb, NULL);
- /* register commit event handler */
- _commit_handler = ecore_event_handler_add (ECORE_IMF_EVENT_COMMIT, _ecore_imf_event_commit_cb, NULL);
-
/* create label1 */
_label1 = elm_label_add (bx);
elm_object_text_set (_label1, "LABEL 1");
_imf_context[0] = ecore_imf_context_add (ctx_id);
if (_imf_context[0]) {
ecore_imf_context_client_canvas_set (_imf_context[0], evas_object_evas_get (_label1));
+ ecore_imf_context_event_callback_add(_imf_context[0], ECORE_IMF_CALLBACK_COMMIT, _ecore_imf_event_commit_cb, NULL);
+ ecore_imf_context_event_callback_add(_imf_context[0], ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _ecore_imf_event_changed_cb, NULL);
+
ecore_imf_context_focus_in (_imf_context[0]);
}
/* create input context for label2 */
_imf_context[1] = ecore_imf_context_add (ctx_id);
if (_imf_context[1]) {
- ecore_imf_context_client_window_set (_imf_context[1], (void *)ecore_win);
ecore_imf_context_client_canvas_set (_imf_context[1], evas_object_evas_get (_label2));
+
+ ecore_imf_context_event_callback_add(_imf_context[1], ECORE_IMF_CALLBACK_COMMIT, _ecore_imf_event_commit_cb, NULL);
+ ecore_imf_context_event_callback_add(_imf_context[1], ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _ecore_imf_event_changed_cb, NULL);
}
_key_event_label = create_button (bx, "KEY EVENT");