EflUniquePtr<Ecore_IMF_Context> InputMethodContextEfl::createIMFContext(Evas* canvas) { const char* defaultContextID = ecore_imf_context_default_id_get(); if (!defaultContextID) return nullptr; EflUniquePtr<Ecore_IMF_Context> imfContext(ecore_imf_context_add(defaultContextID)); if (!imfContext) return nullptr; Ecore_Evas* ecoreEvas = ecore_evas_ecore_evas_get(canvas); ecore_imf_context_client_window_set(imfContext.get(), reinterpret_cast<void*>(ecore_evas_window_get(ecoreEvas))); ecore_imf_context_client_canvas_set(imfContext.get(), canvas); return imfContext; }
void imcontrolapi_bt (void *data, Evas_Object *obj, void *event_info) { const char *ctx_id = ecore_imf_context_default_id_get (); if (ctx_id != NULL) { imf_context = ecore_imf_context_add (ctx_id); } else { printf ("Cannot create imf context\n"); return; } struct appdata *ad = (struct appdata *)data; Evas_Object *gl = NULL; gl = _create_imcontrolapi_list (ad->naviframe); Elm_Object_Item *navi_it = elm_naviframe_item_push (ad->naviframe, _("IM Control"), NULL, NULL, gl, NULL); Evas_Object *back_btn = elm_object_item_part_content_get (navi_it, "prev_btn"); evas_object_smart_callback_add (back_btn, "clicked", _nf_back_event, ad); }