efl/src/modules/ecore_imf/scim/scim_module.cpp

105 lines
3.9 KiB
C++

#include <stdio.h>
#include "scim_imcontext.h"
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
static const Ecore_IMF_Context_Info isf_imf_info = {
"scim", /* ID */
"SCIM immodule for Ecore", /* Description */
"*", /* Default locales */
NULL, /* Canvas type */
0 /* Canvas required */
};
static Ecore_IMF_Context_Class isf_imf_class = {
isf_imf_context_add, /* add */
isf_imf_context_del, /* del */
isf_imf_context_client_window_set, /* client_window_set */
isf_imf_context_client_canvas_set, /* client_canvas_set */
isf_imf_context_input_panel_show, /* input_panel_show, - show */
isf_imf_context_input_panel_hide, /* input_panel_hide, - hide */
isf_imf_context_preedit_string_get, /* get_preedit_string */
isf_imf_context_focus_in, /* focus_in */
isf_imf_context_focus_out, /* focus_out */
isf_imf_context_reset, /* reset */
isf_imf_context_cursor_position_set, /* cursor_position_set */
isf_imf_context_use_preedit_set, /* use_preedit_set */
isf_imf_context_input_mode_set, /* input_mode_set */
isf_imf_context_filter_event, /* filter_event */
isf_imf_context_preedit_string_with_attributes_get, /* preedit_string_with_attribute_get */
isf_imf_context_prediction_allow_set, /* prediction_allow_set */
isf_imf_context_autocapital_type_set, /* autocapital_type_set */
NULL, /* control panel show */
NULL, /* control panel hide */
NULL, /* input_panel_layout_set */
NULL, /* isf_imf_context_input_panel_layout_get, */
NULL, /* isf_imf_context_input_panel_language_set, */
NULL, /* isf_imf_context_input_panel_language_get, */
isf_imf_context_cursor_location_set, /* cursor_location_set */
NULL, /* input_panel_imdata_set */
NULL, /* input_panel_imdata_get */
NULL, /* input_panel_return_key_type_set */
NULL, /* input_panel_return_key_disabled_set */
NULL, /* input_panel_caps_lock_mode_set */
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
static Ecore_IMF_Context *imf_module_create (void);
static Ecore_IMF_Context *imf_module_exit (void);
static Eina_Bool imf_module_init (void)
{
ecore_imf_module_register (&isf_imf_info, imf_module_create, imf_module_exit);
return EINA_TRUE;
}
static void imf_module_shutdown (void)
{
isf_imf_context_shutdown ();
}
static Ecore_IMF_Context *imf_module_create (void)
{
Ecore_IMF_Context *ctx = NULL;
EcoreIMFContextISF *ctxd = NULL;
ctxd = isf_imf_context_new ();
if (!ctxd)
{
printf ("isf_imf_context_new () failed!!!\n");
return NULL;
}
ctx = ecore_imf_context_new (&isf_imf_class);
if (!ctx)
{
delete ctxd;
return NULL;
}
ecore_imf_context_data_set (ctx, ctxd);
return ctx;
}
static Ecore_IMF_Context *imf_module_exit (void)
{
return NULL;
}
EINA_MODULE_INIT(imf_module_init);
EINA_MODULE_SHUTDOWN(imf_module_shutdown);
#ifdef __cplusplus
}
#endif /* __cplusplus */