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;
}
Пример #2
0
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);
}