]> Pileus Git - ~andy/gtk/blob - modules/input/imime.c
7bb5758bba9823cf7e1fb7d09d51fec9936ecc5e
[~andy/gtk] / modules / input / imime.c
1 /*
2  * gtkimmoduleime
3  * Copyright (C) 2003 Takuro Ashie
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * $Id$
19  */
20
21 #include "config.h"
22 #include <string.h>
23
24 #include "gtk/gtkintl.h"
25 #include "gtk/gtkimmodule.h"
26 #include "gtkimcontextime.h"
27
28 static const GtkIMContextInfo ime_info = {
29   "ime",
30   "Windows IME",
31   "gtk+",
32   "",
33   "ja:ko:zh",
34 };
35
36 static const GtkIMContextInfo *info_list[] = {
37   &ime_info,
38 };
39
40 #ifndef INCLUDE_IM_ime
41 #define MODULE_ENTRY(type,function) G_MODULE_EXPORT type im_module_ ## function
42 #else
43 #define MODULE_ENTRY(type, function) type _gtk_immodule_ime_ ## function
44 #endif
45
46 MODULE_ENTRY (void, init) (GTypeModule * module)
47 {
48   gtk_im_context_ime_register_type (module);
49 }
50
51 MODULE_ENTRY (void, exit) (void)
52 {
53 }
54
55 MODULE_ENTRY (void, list) (const GtkIMContextInfo *** contexts, int *n_contexts)
56 {
57   *contexts = info_list;
58   *n_contexts = G_N_ELEMENTS (info_list);
59 }
60
61 MODULE_ENTRY (GtkIMContext *, create) (const gchar * context_id)
62 {
63   g_return_val_if_fail (context_id, NULL);
64
65   if (!strcmp (context_id, "ime"))
66     return g_object_new (GTK_TYPE_IM_CONTEXT_IME, NULL);
67   else
68     return NULL;
69 }