2 * GTK+ MiM input module
9 #include <gtk/gtkimcontext.h>
10 #include <gtk/gtkimmodule.h>
11 #include <gdk/gdkkeysyms.h>
14 #include "im-extra-intl.h"
19 mim_filter_keypress(GtkIMContext *context,
22 if (event->type == GDK_KEY_RELEASE)
29 mim_set_client_window(GtkIMContext *context,
33 /*TODO: create new client window */
34 //mim_mui_create_window();
39 mim_reset(GtkIMContext *context)
44 mim_class_init(GtkIMContextClass *clazz)
46 clazz->filter_keypress = mim_filter_keypress;
47 clazz->reset = mim_reset;
48 clazz->set_client_window = mim_set_client_window;
52 mim_init(GtkIMContext *im_context)
57 mim_register_type(GTypeModule *module)
59 static const GTypeInfo object_info =
61 sizeof(GtkIMContextClass),
63 (GBaseFinalizeFunc) NULL,
64 (GClassInitFunc) mim_class_init,
65 NULL, /* class_finalize */
66 NULL, /* class_data */
69 (GInstanceInitFunc) mim_init,
72 type_mim = g_type_module_register_type(module,
74 "GtkIMContextYiddishNoah",
80 GtkIMContextInfo mim_info =
83 N_("MiM"), /* Human readable name */
84 GETTEXT_PACKAGE, /* Translation domain */
85 LOCALEDIR, /* Dir for bindtextdomain */
86 "zh_CN", /* Languages for which this module is the default */
90 GtkIMContextInfo *info_list[] =
96 im_module_init(GTypeModule *module)
98 g_debug("mim-immodule imported!");
99 mim_register_type(module);
100 /*TODO: Mask off the accelerators, except the CTRL (need for CTRL
107 g_debug("mim-immodule released!");
111 im_module_list(const GtkIMContextInfo ***contexts,
114 *contexts = info_list;
115 *n_contexts = G_N_ELEMENTS(info_list);
119 im_module_create(const gchar *context_id)
121 if (strcmp(context_id, "mim") == 0)
122 return GTK_IM_CONTEXT(g_object_new(type_mim, NULL));