1 /*
2  * $Id: typedef.h,v 1.2 2001/06/14 18:16:11 ura Exp $
3  */
4 
5 /*
6  * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
7  * This file is part of FreeWnn.
8  *
9  * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
10  *
11  * Author: OMRON SOFTWARE Co., Ltd. <freewnn@rd.kyoto.omronsoft.co.jp>
12  *
13  * This program is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation; either version 2, or (at your option)
16  * any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with GNU Emacs; see the file COPYING.  If not, write to the
25  * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26  *
27  * Commentary:
28  *
29  * Change log:
30  *
31  * Last modified date: 8,Feb.1999
32  *
33  * Code:
34  *
35  */
36 
37 /*
38  * X11R5 Input Method Test Program
39  * typedef.h v 1.0   Fri Mar 22 11:26:47 JST 1991
40  */
41 
42 /*
43  *      Author: Takashi Inoue    OMRON Corporation
44  *                               takashi@ari.ncl.omron.co.jp
45  */
46 
47 #include <sys/types.h>
48 #include <X11/Xlib.h>
49 #include <X11/Xlocale.h>
50 #include "Xi18nint.h"
51 
52 typedef unsigned long FLAG;
53 
54 typedef struct _testwin
55 {                               /* Test window */
56   Window win;                   /* test WINdow */
57   Window name;                  /* Name window of test window */
58 }
59 TESTWIN;
60 
61 typedef struct _resource
62 {                               /* RESOURCE name/class structure */
63   char *name;                   /* resource NAME */
64   char *class;                  /* resource CLASS */
65 }
66 RESOURCE;
67 
68 typedef struct _preedit
69 {                               /* PREEDIT attribution structure */
70   XRectangle area;              /* preedit-AREA */
71   XRectangle needed;            /* preedit-areaNEEDED */
72   XPoint spot;                  /* preedit-SPOTlocation */
73   Colormap cmap;                /* preedit-ColorMAP */
74   u_long fg;                    /* preedit-ForeGround */
75   u_long bg;                    /* preedit-BackGround */
76   Pixmap bgpm;                  /* preedit-BG/ PixMap */
77   XFontSet fset;                /* preedit-FontSET */
78   int lspc;                     /* preedit-LineSPaCe */
79   Cursor cursor;                /* preedit-CURSOR */
80 }
81 PREEDIT;
82 
83 typedef struct _status
84 {                               /* STATUS attribution structure */
85   XRectangle area;              /* status-AREA */
86   XRectangle needed;            /* status-areaNEEDED */
87   Colormap cmap;                /* status-ColorMAP */
88   u_long fg;                    /* status-ForeGround */
89   u_long bg;                    /* status-BackGround */
90   Pixmap bgpm;                  /* status-BG/ PixMap */
91   XFontSet fset;                /* status-FontSET */
92   Cursor cursor;                /* status-CURSOR */
93 }
94 STATUS;
95 
96 typedef struct _valuable
97 {                               /* verify VALUABLE table structure */
98   char *vname;                  /* Valuable NAME */
99   FLAG mode;                    /* decimal or hex or string */
100 #ifdef SYSV
101   caddr_t sval;                 /* Set VALuable */
102   caddr_t gval;                 /* Get VALuable */
103 #else
104   void *sval;                   /* Set VALuable */
105   void *gval;                   /* Get VALuable */
106 #endif
107 }
108 VALUABLE;
109 
110 typedef struct _cricmf
111 {                               /* CReate IC Mode Function structure */
112   FLAG mode;                    /* on or over or off or root */
113     XIC (*fmust) ();            /* Function name for create ic (MUST)  */
114     XIC (*fmay) ();             /* Function name for create ic (MAY) */
115 }
116 CRICMF;
117 
118 typedef struct _seticmf
119 {                               /* SET IC Mode Function structure */
120   Window *mwin;                 /* Menu Window id */
121   char *mname;                  /* Menu NAME */
122     FLAG (*func) ();            /* FUNCtion name for set */
123   FLAG flag;                    /* error FLAG */
124 }
125 SETICMF;
126 
127 typedef struct _callback
128 {                               /* CALLBACK structure */
129   XIMCallback start;            /* START callback */
130   XIMCallback done;             /* DONE callback */
131   XIMCallback draw;             /* DRAW callback */
132   XIMCallback caret;            /* CARET callback */
133 }
134 CALLBACK;
135 
136 typedef union _string
137 {                               /* STRING union */
138   char *multi_byte;
139   wchar_t *wide_char;
140 }
141 STRING;
142