summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorRobert Brady <robert@suse.co.uk>2000-11-12 22:59:39 +0000
committerRobert Brady <rbrady@src.gnome.org>2000-11-12 22:59:39 +0000
commit87f494aaa12d270d23d691be5fca2e16836710f0 (patch)
tree44d40cfd30dec14bb046b6f0bdfb846a810fb5f1 /modules
parentb17f1a964afd56fc9e58074cbfe8c83ee4befd07 (diff)
downloadgtk+-87f494aaa12d270d23d691be5fca2e16836710f0.tar.gz
A vietnamese VIQR-based input method.
Sun Nov 12 22:52:51 2000 Robert Brady <robert@suse.co.uk> * modules/input/imviqr.c: A vietnamese VIQR-based input method. * modules/input/imthai-broken.c: A Thai input method for use if Thai keys are really generating Latin1 keysyms. * modules/input/Makefile.am: Build these.
Diffstat (limited to 'modules')
-rw-r--r--modules/input/Makefile.am8
-rw-r--r--modules/input/imthai-broken.c213
-rw-r--r--modules/input/imviqr.c279
3 files changed, 499 insertions, 1 deletions
diff --git a/modules/input/Makefile.am b/modules/input/Makefile.am
index d3809cdbf9..e2785a3785 100644
--- a/modules/input/Makefile.am
+++ b/modules/input/Makefile.am
@@ -32,11 +32,17 @@ LDADDS = @STRIP_BEGIN@ \
@STRIP_END@
moduledir = $(libdir)/gtk+/gtk-2.0/$(GTK_VERSION)/immodules
-module_LTLIBRARIES = im-cyrillic-translit.la im-xim.la
+module_LTLIBRARIES = im-cyrillic-translit.la im-xim.la im-viqr.la im-thai-broken.la
im_cyrillic_translit_la_LDFLAGS = -rpath $(libdir) -export-dynamic -avoid-version -module
im_cyrillic_translit_la_SOURCES = imcyrillic-translit.c
+im_thai_broken_la_LDFLAGS = -rpath $(libdir) -export-dynamic -avoid-version -module
+im_thai_broken_la_SOURCES = imthai-broken.c
+
+im_viqr_la_LDFLAGS = -rpath $(libdir) -export-dynamic -avoid-version -module
+im_viqr_la_SOURCES = imviqr.c
+
im_xim_la_LDFLAGS = -rpath $(libdir) -export-dynamic -avoid-version -module
im_xim_la_SOURCES = gtkimcontextxim.c imxim.c
diff --git a/modules/input/imthai-broken.c b/modules/input/imthai-broken.c
new file mode 100644
index 0000000000..9974800669
--- /dev/null
+++ b/modules/input/imthai-broken.c
@@ -0,0 +1,213 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ * Copyright (C) 2000 SuSE Linux Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Original author: Owen Taylor <otaylor@redhat.com>
+ *
+ * Modified for Thai (Broken) - Robert Brady <robert@suse.co.uk>
+ *
+ */
+
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include "gtk/gtkintl.h"
+#include "gtk/gtkimcontextsimple.h"
+#include "gtk/gtkimmodule.h"
+
+GType type_thai_broken = 0;
+
+static void thai_broken_class_init (GtkIMContextSimpleClass *class);
+static void thai_broken_init (GtkIMContextSimple *im_context);
+
+static void
+thai_broken_register_type (GTypeModule *module)
+{
+ static const GTypeInfo object_info =
+ {
+ sizeof (GtkIMContextSimpleClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) thai_broken_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GtkIMContextSimple),
+ 0,
+ (GtkObjectInitFunc) thai_broken_init,
+ };
+
+ type_thai_broken =
+ g_type_module_register_type (module,
+ GTK_TYPE_IM_CONTEXT_SIMPLE,
+ "GtkIMContextThaiBroken",
+ &object_info, 0);
+}
+
+static guint16 thai_broken_compose_seqs[] = {
+ 0xa0, 0, 0, 0, 0, 0x0e00,
+ 0xa1, 0, 0, 0, 0, 0x0e01,
+ 0xa2, 0, 0, 0, 0, 0x0e02,
+ 0xa3, 0, 0, 0, 0, 0x0e03,
+ 0xa4, 0, 0, 0, 0, 0x0e04,
+ 0xa5, 0, 0, 0, 0, 0x0e05,
+ 0xa6, 0, 0, 0, 0, 0x0e06,
+ 0xa7, 0, 0, 0, 0, 0x0e07,
+ 0xa8, 0, 0, 0, 0, 0x0e08,
+ 0xa9, 0, 0, 0, 0, 0x0e09,
+ 0xaa, 0, 0, 0, 0, 0x0e0a,
+ 0xab, 0, 0, 0, 0, 0x0e0b,
+ 0xac, 0, 0, 0, 0, 0x0e0c,
+ 0xad, 0, 0, 0, 0, 0x0e0d,
+ 0xae, 0, 0, 0, 0, 0x0e0e,
+ 0xaf, 0, 0, 0, 0, 0x0e0f,
+ 0xb0, 0, 0, 0, 0, 0x0e10,
+ 0xb1, 0, 0, 0, 0, 0x0e11,
+ 0xb2, 0, 0, 0, 0, 0x0e12,
+ 0xb3, 0, 0, 0, 0, 0x0e13,
+ 0xb4, 0, 0, 0, 0, 0x0e14,
+ 0xb5, 0, 0, 0, 0, 0x0e15,
+ 0xb6, 0, 0, 0, 0, 0x0e16,
+ 0xb7, 0, 0, 0, 0, 0x0e17,
+ 0xb8, 0, 0, 0, 0, 0x0e18,
+ 0xb9, 0, 0, 0, 0, 0x0e19,
+ 0xba, 0, 0, 0, 0, 0x0e1a,
+ 0xbb, 0, 0, 0, 0, 0x0e1b,
+ 0xbc, 0, 0, 0, 0, 0x0e1c,
+ 0xbd, 0, 0, 0, 0, 0x0e1d,
+ 0xbe, 0, 0, 0, 0, 0x0e1e,
+ 0xbf, 0, 0, 0, 0, 0x0e1f,
+ 0xc0, 0, 0, 0, 0, 0x0e20,
+ 0xc1, 0, 0, 0, 0, 0x0e21,
+ 0xc2, 0, 0, 0, 0, 0x0e22,
+ 0xc3, 0, 0, 0, 0, 0x0e23,
+ 0xc4, 0, 0, 0, 0, 0x0e24,
+ 0xc5, 0, 0, 0, 0, 0x0e25,
+ 0xc6, 0, 0, 0, 0, 0x0e26,
+ 0xc7, 0, 0, 0, 0, 0x0e27,
+ 0xc8, 0, 0, 0, 0, 0x0e28,
+ 0xc9, 0, 0, 0, 0, 0x0e29,
+ 0xca, 0, 0, 0, 0, 0x0e2a,
+ 0xcb, 0, 0, 0, 0, 0x0e2b,
+ 0xcc, 0, 0, 0, 0, 0x0e2c,
+ 0xcd, 0, 0, 0, 0, 0x0e2d,
+ 0xce, 0, 0, 0, 0, 0x0e2e,
+ 0xcf, 0, 0, 0, 0, 0x0e2f,
+ 0xd0, 0, 0, 0, 0, 0x0e30,
+ 0xd1, 0, 0, 0, 0, 0x0e31,
+ 0xd2, 0, 0, 0, 0, 0x0e32,
+ 0xd3, 0, 0, 0, 0, 0x0e33,
+ 0xd4, 0, 0, 0, 0, 0x0e34,
+ 0xd5, 0, 0, 0, 0, 0x0e35,
+ 0xd6, 0, 0, 0, 0, 0x0e36,
+ 0xd7, 0, 0, 0, 0, 0x0e37,
+ 0xd8, 0, 0, 0, 0, 0x0e38,
+ 0xd9, 0, 0, 0, 0, 0x0e39,
+ 0xda, 0, 0, 0, 0, 0x0e3a,
+ 0xdb, 0, 0, 0, 0, 0x0e3b,
+ 0xdc, 0, 0, 0, 0, 0x0e3c,
+ 0xdd, 0, 0, 0, 0, 0x0e3d,
+ 0xde, 0, 0, 0, 0, 0x0e3e,
+ 0xdf, 0, 0, 0, 0, 0x0e3f,
+ 0xe0, 0, 0, 0, 0, 0x0e40,
+ 0xe1, 0, 0, 0, 0, 0x0e41,
+ 0xe2, 0, 0, 0, 0, 0x0e42,
+ 0xe3, 0, 0, 0, 0, 0x0e43,
+ 0xe4, 0, 0, 0, 0, 0x0e44,
+ 0xe5, 0, 0, 0, 0, 0x0e45,
+ 0xe6, 0, 0, 0, 0, 0x0e46,
+ 0xe7, 0, 0, 0, 0, 0x0e47,
+ 0xe8, 0, 0, 0, 0, 0x0e48,
+ 0xe9, 0, 0, 0, 0, 0x0e49,
+ 0xea, 0, 0, 0, 0, 0x0e4a,
+ 0xeb, 0, 0, 0, 0, 0x0e4b,
+ 0xec, 0, 0, 0, 0, 0x0e4c,
+ 0xed, 0, 0, 0, 0, 0x0e4d,
+ 0xee, 0, 0, 0, 0, 0x0e4e,
+ 0xef, 0, 0, 0, 0, 0x0e4f,
+ 0xf0, 0, 0, 0, 0, 0x0e50,
+ 0xf1, 0, 0, 0, 0, 0x0e51,
+ 0xf2, 0, 0, 0, 0, 0x0e52,
+ 0xf3, 0, 0, 0, 0, 0x0e53,
+ 0xf4, 0, 0, 0, 0, 0x0e54,
+ 0xf5, 0, 0, 0, 0, 0x0e55,
+ 0xf6, 0, 0, 0, 0, 0x0e56,
+ 0xf7, 0, 0, 0, 0, 0x0e57,
+ 0xf8, 0, 0, 0, 0, 0x0e58,
+ 0xf9, 0, 0, 0, 0, 0x0e59,
+ 0xfa, 0, 0, 0, 0, 0x0e5a,
+ 0xfb, 0, 0, 0, 0, 0x0e5b,
+ 0xfc, 0, 0, 0, 0, 0x0e5c,
+ 0xfd, 0, 0, 0, 0, 0x0e5d,
+ 0xfe, 0, 0, 0, 0, 0x0e5e,
+ 0xff, 0, 0, 0, 0, 0x0e5f,
+};
+
+static void
+thai_broken_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+thai_broken_init (GtkIMContextSimple *im_context)
+{
+ gtk_im_context_simple_add_table (im_context,
+ thai_broken_compose_seqs,
+ 4,
+ G_N_ELEMENTS (thai_broken_compose_seqs) / (4 + 2));
+}
+
+static const GtkIMContextInfo thai_broken_info = {
+ "thai_broken", /* ID */
+ N_("Thai (Broken)"), /* Human readable name */
+ "gtk+", /* Translation domain */
+ GTK_LOCALEDIR, /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+ "" /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+ &thai_broken_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+ thai_broken_register_type (module);
+}
+
+void
+im_module_exit (void)
+{
+}
+
+void
+im_module_list (const GtkIMContextInfo ***contexts,
+ int *n_contexts)
+{
+ *contexts = info_list;
+ *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+ if (strcmp (context_id, "thai_broken") == 0)
+ return GTK_IM_CONTEXT (gtk_type_new (type_thai_broken));
+ else
+ return NULL;
+}
diff --git a/modules/input/imviqr.c b/modules/input/imviqr.c
new file mode 100644
index 0000000000..8113df4c1e
--- /dev/null
+++ b/modules/input/imviqr.c
@@ -0,0 +1,279 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ * Copyright (C) 2000 SuSE Linux Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Original author: Owen Taylor <otaylor@redhat.com>
+ *
+ * Modified for VIQR - Robert Brady <robert@suse.co.uk>
+ *
+ */
+
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include "gtk/gtkintl.h"
+#include "gtk/gtkimcontextsimple.h"
+#include "gtk/gtkimmodule.h"
+
+GType type_viqr_translit = 0;
+
+static void viqr_class_init (GtkIMContextSimpleClass *class);
+static void viqr_init (GtkIMContextSimple *im_context);
+
+static void
+viqr_register_type (GTypeModule *module)
+{
+ static const GTypeInfo object_info =
+ {
+ sizeof (GtkIMContextSimpleClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) viqr_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GtkIMContextSimple),
+ 0,
+ (GtkObjectInitFunc) viqr_init,
+ };
+
+ type_viqr_translit =
+ g_type_module_register_type (module,
+ GTK_TYPE_IM_CONTEXT_SIMPLE,
+ "GtkIMContextViqr",
+ &object_info, 0);
+}
+
+static guint16 viqr_compose_seqs[] = {
+ GDK_A, 0, 0, 0, 0, 'A',
+ GDK_A, GDK_apostrophe, 0, 0, 0, 0xc1,
+ GDK_A, GDK_parenleft, 0, 0, 0, 0x102,
+ GDK_A, GDK_parenleft, GDK_apostrophe, 0, 0, 0x1eae,
+ GDK_A, GDK_parenleft, GDK_period, 0, 0, 0x1eb6,
+ GDK_A, GDK_parenleft, GDK_question, 0, 0, 0x1eb2,
+ GDK_A, GDK_parenleft, GDK_grave, 0, 0, 0x1eb0,
+ GDK_A, GDK_parenleft, GDK_asciitilde, 0, 0, 0x1eb4,
+ GDK_A, GDK_period, 0, 0, 0, 0x1ea0,
+ GDK_A, GDK_question, 0, 0, 0, 0x1ea2,
+ GDK_A, GDK_asciicircum, 0, 0, 0, 0xc2,
+ GDK_A, GDK_asciicircum, GDK_apostrophe, 0, 0, 0x1ea4,
+ GDK_A, GDK_asciicircum, GDK_period, 0, 0, 0x1eac,
+ GDK_A, GDK_asciicircum, GDK_question, 0, 0, 0x1ea8,
+ GDK_A, GDK_asciicircum, GDK_grave, 0, 0, 0x1ea6,
+ GDK_A, GDK_asciicircum, GDK_asciitilde, 0, 0, 0x1eaa,
+ GDK_A, GDK_grave, 0, 0, 0, 0xc0,
+ GDK_A, GDK_asciitilde, 0, 0, 0, 0xc3,
+ GDK_D, 0, 0, 0, 0, 'D',
+ GDK_D, GDK_D, 0, 0, 0, 0x110,
+ GDK_D, GDK_d, 0, 0, 0, 0x110,
+ GDK_E, 0, 0, 0, 0, 'E',
+ GDK_E, GDK_apostrophe, 0, 0, 0, 0xc9,
+ GDK_E, GDK_period, 0, 0, 0, 0x1eb8,
+ GDK_E, GDK_question, 0, 0, 0, 0x1eba,
+ GDK_E, GDK_asciicircum, 0, 0, 0, 0xca,
+ GDK_E, GDK_asciicircum, GDK_apostrophe, 0, 0, 0x1ebe,
+ GDK_E, GDK_asciicircum, GDK_period, 0, 0, 0x1ec6,
+ GDK_E, GDK_asciicircum, GDK_question, 0, 0, 0x1ec2,
+ GDK_E, GDK_asciicircum, GDK_grave, 0, 0, 0x1ec0,
+ GDK_E, GDK_asciicircum, GDK_asciitilde, 0, 0, 0x1ec4,
+ GDK_E, GDK_grave, 0, 0, 0, 0xc8,
+ GDK_E, GDK_asciitilde, 0, 0, 0, 0x1ebc,
+ GDK_I, 0, 0, 0, 0, 'I',
+ GDK_I, GDK_apostrophe, 0, 0, 0, 0xcd,
+ GDK_I, GDK_period, 0, 0, 0, 0x1eca,
+ GDK_I, GDK_question, 0, 0, 0, 0x1ec8,
+ GDK_I, GDK_grave, 0, 0, 0, 0xcc,
+ GDK_I, GDK_asciitilde, 0, 0, 0, 0x128,
+ GDK_O, 0, 0, 0, 0, 'O',
+ GDK_O, GDK_apostrophe, 0, 0, 0, 0xD3,
+ GDK_O, GDK_plus, 0, 0, 0, 0x1a0,
+ GDK_O, GDK_plus, GDK_apostrophe, 0, 0, 0x1eda,
+ GDK_O, GDK_plus, GDK_period, 0, 0, 0x1ee2,
+ GDK_O, GDK_plus, GDK_question, 0, 0, 0x1ede,
+ GDK_O, GDK_plus, GDK_grave, 0, 0, 0x1edc,
+ GDK_O, GDK_plus, GDK_asciitilde, 0, 0, 0x1ee0,
+ GDK_O, GDK_period, 0, 0, 0, 0x1ecc,
+ GDK_O, GDK_question, 0, 0, 0, 0x1ece,
+ GDK_O, GDK_asciicircum, 0, 0, 0, 0xd4,
+ GDK_O, GDK_asciicircum, GDK_apostrophe, 0, 0, 0x1ed0,
+ GDK_O, GDK_asciicircum, GDK_period, 0, 0, 0x1ed8,
+ GDK_O, GDK_asciicircum, GDK_question, 0, 0, 0x1ed4,
+ GDK_O, GDK_asciicircum, GDK_grave, 0, 0, 0x1ed2,
+ GDK_O, GDK_asciicircum, GDK_asciitilde, 0, 0, 0x1ed6,
+ GDK_O, GDK_grave, 0, 0, 0, 0xD2,
+ GDK_O, GDK_asciitilde, 0, 0, 0, 0xD5,
+ GDK_U, 0, 0, 0, 0, 'U',
+ GDK_U, GDK_apostrophe, 0, 0, 0, 0xDA,
+ GDK_U, GDK_plus, 0, 0, 0, 0x1af,
+ GDK_U, GDK_plus, GDK_apostrophe, 0, 0, 0x1ee8,
+ GDK_U, GDK_plus, GDK_period, 0, 0, 0x1ef0,
+ GDK_U, GDK_plus, GDK_question, 0, 0, 0x1eec,
+ GDK_U, GDK_plus, GDK_grave, 0, 0, 0x1eea,
+ GDK_U, GDK_plus, GDK_asciitilde, 0, 0, 0x1eee,
+ GDK_U, GDK_period, 0, 0, 0, 0x1ee4,
+ GDK_U, GDK_question, 0, 0, 0, 0x1ee6,
+ GDK_U, GDK_grave, 0, 0, 0, 0xd9,
+ GDK_U, GDK_asciitilde, 0, 0, 0, 0x168,
+ GDK_Y, 0, 0, 0, 0, 'Y',
+ GDK_Y, GDK_apostrophe, 0, 0, 0, 0xdd,
+ GDK_Y, GDK_period, 0, 0, 0, 0x1ef4,
+ GDK_Y, GDK_question, 0, 0, 0, 0x1ef6,
+ GDK_Y, GDK_grave, 0, 0, 0, 0x1ef2,
+ GDK_Y, GDK_asciitilde, 0, 0, 0, 0x1ef8,
+ /* Do we need anything else here? */
+ GDK_backslash, 0, 0, 0, 0, 0,
+ GDK_backslash, GDK_apostrophe, 0, 0, 0, '\'',
+ GDK_backslash, GDK_parenleft, 0, 0, 0, '(',
+ GDK_backslash, GDK_plus, 0, 0, 0, '+',
+ GDK_backslash, GDK_period, 0, 0, 0, '.',
+ GDK_backslash, GDK_question, 0, 0, 0, '?',
+ GDK_backslash, GDK_D, 0, 0, 0, 'D',
+ GDK_backslash, GDK_backslash, 0, 0, 0, '\\',
+ GDK_backslash, GDK_asciicircum, 0, 0, 0, '^',
+ GDK_backslash, GDK_grave, 0, 0, 0, '`',
+ GDK_backslash, GDK_d, 0, 0, 0, 'd',
+ GDK_backslash, GDK_asciitilde, 0, 0, 0, '~',
+ GDK_a, 0, 0, 0, 0, 'a',
+ GDK_a, GDK_apostrophe, 0, 0, 0, 0xe1,
+ GDK_a, GDK_parenleft, 0, 0, 0, 0x103,
+ GDK_a, GDK_parenleft, GDK_apostrophe, 0, 0, 0x1eaf,
+ GDK_a, GDK_parenleft, GDK_period, 0, 0, 0x1eb7,
+ GDK_a, GDK_parenleft, GDK_question, 0, 0, 0x1eb3,
+ GDK_a, GDK_parenleft, GDK_grave, 0, 0, 0x1eb1,
+ GDK_a, GDK_parenleft, GDK_asciitilde, 0, 0, 0x1eb5,
+ GDK_a, GDK_period, 0, 0, 0, 0x1ea1,
+ GDK_a, GDK_question, 0, 0, 0, 0x1ea3,
+ GDK_a, GDK_asciicircum, 0, 0, 0, 0xe2,
+ GDK_a, GDK_asciicircum, GDK_apostrophe, 0, 0, 0x1ea5,
+ GDK_a, GDK_asciicircum, GDK_period, 0, 0, 0x1ead,
+ GDK_a, GDK_asciicircum, GDK_question, 0, 0, 0x1ea9,
+ GDK_a, GDK_asciicircum, GDK_grave, 0, 0, 0x1ea7,
+ GDK_a, GDK_asciicircum, GDK_asciitilde, 0, 0, 0x1eab,
+ GDK_a, GDK_grave, 0, 0, 0, 0xe0,
+ GDK_a, GDK_asciitilde, 0, 0, 0, 0xe3,
+ GDK_d, 0, 0, 0, 0, 'd',
+ GDK_d, GDK_d, 0, 0, 0, 0x111,
+ GDK_e, 0, 0, 0, 0, 'e',
+ GDK_e, GDK_apostrophe, 0, 0, 0, 0xe9,
+ GDK_e, GDK_period, 0, 0, 0, 0x1eb9,
+ GDK_e, GDK_question, 0, 0, 0, 0x1ebb,
+ GDK_e, GDK_asciicircum, 0, 0, 0, 0xea,
+ GDK_e, GDK_asciicircum, GDK_apostrophe, 0, 0, 0x1ebf,
+ GDK_e, GDK_asciicircum, GDK_period, 0, 0, 0x1ec7,
+ GDK_e, GDK_asciicircum, GDK_question, 0, 0, 0x1ec3,
+ GDK_e, GDK_asciicircum, GDK_grave, 0, 0, 0x1ec1,
+ GDK_e, GDK_asciicircum, GDK_asciitilde, 0, 0, 0x1ec5,
+ GDK_e, GDK_grave, 0, 0, 0, 0xe8,
+ GDK_e, GDK_asciitilde, 0, 0, 0, 0x1ebd,
+ GDK_i, 0, 0, 0, 0, 'i',
+ GDK_i, GDK_apostrophe, 0, 0, 0, 0xed,
+ GDK_i, GDK_period, 0, 0, 0, 0x1ecb,
+ GDK_i, GDK_question, 0, 0, 0, 0x1ec9,
+ GDK_i, GDK_grave, 0, 0, 0, 0xec,
+ GDK_i, GDK_asciitilde, 0, 0, 0, 0x129,
+ GDK_o, 0, 0, 0, 0, 'o',
+ GDK_o, GDK_apostrophe, 0, 0, 0, 0xF3,
+ GDK_o, GDK_plus, 0, 0, 0, 0x1a1,
+ GDK_o, GDK_plus, GDK_apostrophe, 0, 0, 0x1edb,
+ GDK_o, GDK_plus, GDK_period, 0, 0, 0x1ee3,
+ GDK_o, GDK_plus, GDK_question, 0, 0, 0x1edf,
+ GDK_o, GDK_plus, GDK_grave, 0, 0, 0x1edd,
+ GDK_o, GDK_plus, GDK_asciitilde, 0, 0, 0x1ee1,
+ GDK_o, GDK_period, 0, 0, 0, 0x1ecd,
+ GDK_o, GDK_question, 0, 0, 0, 0x1ecf,
+ GDK_o, GDK_asciicircum, 0, 0, 0, 0xf4,
+ GDK_o, GDK_asciicircum, GDK_apostrophe, 0, 0, 0x1ed1,
+ GDK_o, GDK_asciicircum, GDK_period, 0, 0, 0x1ed9,
+ GDK_o, GDK_asciicircum, GDK_question, 0, 0, 0x1ed5,
+ GDK_o, GDK_asciicircum, GDK_grave, 0, 0, 0x1ed3,
+ GDK_o, GDK_asciicircum, GDK_asciitilde, 0, 0, 0x1ed7,
+ GDK_o, GDK_grave, 0, 0, 0, 0xF2,
+ GDK_o, GDK_asciitilde, 0, 0, 0, 0xF5,
+ GDK_u, 0, 0, 0, 0, 'u',
+ GDK_u, GDK_apostrophe, 0, 0, 0, 0xFA,
+ GDK_u, GDK_plus, 0, 0, 0, 0x1b0,
+ GDK_u, GDK_plus, GDK_apostrophe, 0, 0, 0x1ee9,
+ GDK_u, GDK_plus, GDK_period, 0, 0, 0x1ef1,
+ GDK_u, GDK_plus, GDK_question, 0, 0, 0x1eed,
+ GDK_u, GDK_plus, GDK_grave, 0, 0, 0x1eeb,
+ GDK_u, GDK_plus, GDK_asciitilde, 0, 0, 0x1eef,
+ GDK_u, GDK_period, 0, 0, 0, 0x1ee5,
+ GDK_u, GDK_question, 0, 0, 0, 0x1ee7,
+ GDK_u, GDK_grave, 0, 0, 0, 0xf9,
+ GDK_u, GDK_asciitilde, 0, 0, 0, 0x169,
+ GDK_y, 0, 0, 0, 0, 'y',
+ GDK_y, GDK_apostrophe, 0, 0, 0, 0xfd,
+ GDK_y, GDK_period, 0, 0, 0, 0x1ef5,
+ GDK_y, GDK_question, 0, 0, 0, 0x1ef7,
+ GDK_y, GDK_grave, 0, 0, 0, 0x1ef3,
+ GDK_y, GDK_asciitilde, 0, 0, 0, 0x1ef9,
+};
+
+static void
+viqr_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+viqr_init (GtkIMContextSimple *im_context)
+{
+ gtk_im_context_simple_add_table (im_context,
+ viqr_compose_seqs,
+ 4,
+ G_N_ELEMENTS (viqr_compose_seqs) / (4 + 2));
+}
+
+static const GtkIMContextInfo viqr_info = {
+ "viqr", /* ID */
+ N_("Vietnamese (VIQR)"), /* Human readable name */
+ "gtk+", /* Translation domain */
+ GTK_LOCALEDIR, /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+ "vi" /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+ &viqr_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+ viqr_register_type (module);
+}
+
+void
+im_module_exit (void)
+{
+}
+
+void
+im_module_list (const GtkIMContextInfo ***contexts,
+ int *n_contexts)
+{
+ *contexts = info_list;
+ *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+ if (strcmp (context_id, "viqr") == 0)
+ return GTK_IM_CONTEXT (gtk_type_new (type_viqr_translit));
+ else
+ return NULL;
+}