diff Xwnmo/test/keyev.c @ 0:bbc77ca4def5

initial import
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Thu, 13 Dec 2007 04:30:14 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Xwnmo/test/keyev.c	Thu Dec 13 04:30:14 2007 +0900
@@ -0,0 +1,119 @@
+/*
+ * $Id: keyev.c,v 1.2 2001/06/14 18:16:11 ura Exp $
+ */
+
+/*
+ * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
+ * This file is part of FreeWnn.
+ * 
+ * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
+ *
+ * Author: OMRON SOFTWARE Co., Ltd. <freewnn@rd.kyoto.omronsoft.co.jp>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Emacs; see the file COPYING.  If not, write to the
+ * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Commentary:
+ *
+ * Change log:
+ *
+ * Last modified date: 8,Feb.1999
+ *
+ * Code:
+ *
+ */
+
+/*
+ * X11R5 Input Method Test Program
+ * keyev.c v 1.0   Thu Mar  7 19:30:17 JST 1991
+ */
+
+/*
+ *      Author: Takashi Inoue    OMRON Corporation
+ *                               takashi@ari.ncl.omron.co.jp
+ */
+
+#include "exvalue.h"
+#include "func.h"
+
+/* *INDENT-OFF* */
+FLAG
+keyev (ic, mode)                /* transaction of KEY EVent */
+    XIC ic;
+    FLAG mode;
+/* *INDENT-ON* */
+{
+  int cnt;
+  FLAG res;
+  FLAG funend;
+
+  XEvent event;
+
+  for (;;)
+    {
+      XNextEvent (dpy, &event);
+      switch (event.type)
+        {
+        case Expose:
+          dstrwin ();
+          break;
+        case KeyPress:
+          if (fltev (&event) == NG)
+            xlstr (ic, &event);
+          break;
+        case ButtonPress:
+          if (event.xbutton.window == strmode)
+            {
+              XClearWindow (dpy, strmode);
+              if (strflag == MB)
+                {
+                  strflag = WC;
+                  XDrawString (dpy, strmode, gc, MSTR_XY, "Mode: WC", strlen ("Mode: WC"));
+                }
+              else if (strflag == WC)
+                {
+                  strflag = MB;
+                  XDrawString (dpy, strmode, gc, MSTR_XY, "Mode: MB", strlen ("Mode: MB"));
+                }
+              XFlush (dpy);
+            }
+          else
+            {
+              funend = NG;
+              for (cnt = 0; (ftbl[cnt].mname != NULL) && (funend != OK); cnt++)
+                {
+                  if (event.xbutton.window == *ftbl[cnt].mwin)
+                    {
+                      if (ftbl[cnt].flag == CHMOD)
+                        {
+                          XClearArea (dpy, window1.win, 0, 0, 0, 0, True);
+                          return (MENU);
+                        }
+                      else
+                        {
+                          cwcolor (*ftbl[cnt].mwin, pixel[cmflag][0]);
+                          res = (*ftbl[cnt].func) (ic, mode);
+                          cwcolor (*ftbl[cnt].mwin, pixel[cmflag][1]);
+                          if (res == COMP)
+                            funend = OK;
+                          else
+                            return (res);
+                        }
+                    }
+                }
+              break;
+            }
+        }
+    }
+}