comparison include/Xatoklib.h @ 0:92745d501b9a

initial import from kinput2-v3.1
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 08 Mar 2010 04:44:30 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:92745d501b9a
1 /*
2 * Copyright 1999 Justsystem Corporation, Japan.
3 *
4 * Permission to use, copy, modify, and distribute this software and its
5 * documentation for any purpose and without fee is hereby granted,
6 * provided that the above copyright notice appear in all copies and that
7 * both that copyright notice and this permission notice appear in
8 * supporting documentation, and that the name of Justsystem Corporation
9 * not be used in advertising or publicity pertaining to distribution
10 * of the software without specific, written prior permission. Justsystem
11 * Corporation makes no representations about the suitability of this
12 * software for any purpose. It is provided "as is" without express
13 * or implied warranty.
14 *
15 * Author: Atsushi Irisawa
16 */
17
18 #ifndef _xatoklib_h_
19 #define _xatoklib_h_
20
21 #include <atok_typ.h>
22 #include <atokce.h>
23 #include <atok12net.h>
24 #include <key_def.h>
25
26 /* #include <stdio.h> /* for BUFSIZ? */
27 #ifdef BUFSIZ
28 #undef BUFSIZ
29 #endif
30 #define BUFSIZ 1024
31
32 /* #define CAND_PAGE */
33 #ifdef CAND_PAGE
34 #undef CAND_PAGE
35 #endif
36
37 #define CAND_ROWS (9)
38 #define CAND_COLS (1)
39 #include "WStr.h"
40
41 typedef struct {
42 int length;
43 int size;
44 wchar *string;
45 int offset;
46 } _XatokSegment;
47
48 typedef enum {
49 OP_NONE = 0,
50 OP_NEXT,
51 OP_PREV,
52 OP_FIRST,
53 OP_LAST,
54 OP_SELECT,
55 OP_CANCEL,
56 OP_SPEC
57 } _opType;
58
59 typedef struct _menuItem MenuItem;
60 typedef struct _menu MenuAux;
61 typedef struct _menuItem {
62 WORD key;
63 int mode;
64 _opType op;
65 MenuAux *child;
66 char *numStr;
67 char *itemStr;
68 } menuItem;
69
70 typedef struct _menu {
71 int mode;
72 int cur;
73 int (*startProc)();
74 int (*defaultProc)();
75 int (*endProc)();
76 int (*stringProc) ();
77 char *str;
78 MenuAux *parent;
79 menuItem *items;
80 int nitems;
81 } menuAux;
82
83 typedef enum {
84 M_NOKEYCONV = 0, /* $B%-!<%9%k!<(B */
85 M_KEYCONV = (1L<<0), /* $BJQ49Cf(B */
86 M_AUX = (1L<<1), /* AUX WINDOW $BC18lEPO?(B */
87 M_CAND = (1L<<2), /* $B8uJdI=<(Cf(B */
88 M_SYSLINE = (1L<<3), /* $B%7%9%F%`9T(B */
89 M_WDEL = (1L<<4) /* $BC18l:o=|(B */
90 } opMode;
91
92 typedef enum {
93 W_WORD = (1L<<0), /* $BC18l(B */
94 W_YOMI = (1L<<1), /* $B$h$_F~NOCf(B */
95 W_HINSHI = (1L<<2), /* $BIJ;lA*BrCf(B */
96 W_YORN = (1L<<3), /* $B=hM}3NG'(B */
97 W_RESULT = (1L<<4) /* $B7k2LI=<((B */
98 } wordMode;
99
100 typedef enum {
101 M_TOP, /* AUX $B%H%C%W%a%K%e!<(B */
102 M_WORDREG, /* $BC18lEPO?(B */
103 M_CODE, /* AUX CODE $B%a%K%e!<(B */
104 M_CODESJ, /* $B%3!<%IF~NO(B SJIS */
105 M_CODEEUC, /* $B%3!<%IF~NO(B EUC */
106 M_CODEJIS, /* $B%3!<%IF~NO(B JIS */
107 M_CODEKUTEN, /* $B%3!<%IF~NO6hE@(B */
108 M_KIGOU, /* AUX $B5-9fF~NO%a%K%e!<(B */
109 M_NKIGOU, /* 10 */
110 M_SKIGOU,
111 M_DICUTIL, /* AUX $B<-=q%a%K%e!<(B */
112 M_WORD, /* AUX $BC18lEPO?(B */
113 M_WORDR,
114 M_WORDD
115 } menuMode;
116
117 typedef struct {
118 WCHAR name[64];
119 int length;
120 WORD modeKANDSP; /* IME_PRV_SETKANDSP 1 - 4
121 1 : $BJ?2>L>(B
122 2 : $BA43Q%+%?%+%J(B
123 3 : $BA43QL5JQ49(B
124 4 : $BH>3Q%+%?%+%J(B
125 5 : $BH>3QL5JQ49(B
126 */
127 WORD modeHEN; /* IME_PRV_SETHENMODE
128 0 : $BO"J8@a(B
129 1 : $BJ#J8@a(B
130 2 : $B<+F0(B
131 */
132 WORD modeGAKU; /* IME_PRV_GAKMODE
133 0 : $B3X=,(BOFF
134 1 : $B3X=,(BON
135 2 : $B%a%b%j!<3X=,(B
136 */
137 WORD modeKOTE; /* IME_SETKOTEMODE
138 0 : $B8GDjF~NO2r=|(B
139 1 : $B$R$i$,$J8GDj(B
140 2 : $BA43Q%+%?%+%J8GDj(B
141 3 : $BA43QL5JQ498GDj(B
142 4 : $BH>3Q%+%?%+%J8GDj(B
143 5 : $BH>3QL5JQ498GDj(B
144 */
145 WORD modeOKURI; /* IME_PRV_SETOKURIMODE
146 0 : $BK\B'(B
147 1 : $BAw$k(B
148 2 : $B>J$/(B
149 3 : $BA4$F(B
150 */
151 WORD modeROT; /* IME_PRV_SETROTMODEF
152 1 : $B4A;zF~NO(B
153 2 : $BH>3QF~NO(B
154 3 : $B%3!<%IF~NO(B
155 4 : $B5-9fF~NO(B
156 */
157 /*int changes;*/
158 } _XatokMode;
159
160 #define WORD_HYOKI_MAX 64
161 #define WORD_YOMI_MAX 32
162
163 /* #define NBR_OF_PART (3) */
164 #define ATOK_NSEG (3)
165
166 typedef struct {
167 /* $B%5!<%P$H$N@\B3>pJs(B */
168 int sock; /* $B%5!<%P(B */
169 int clntid; /* $B%;%C%7%g%s(B */
170 int ctxtid; /* ID */
171 /* $B%;%0%a%s%H$N4IM}(B */
172 _XatokSegment segments[ATOK_NSEG+3]; /* $BL$3NDjJ8;zNs$N%;%0%a%s%H(B */
173 int nbr_of_seg; /* $B;HMQ$7$F$$$k%;%0%a%s%H?t(B */
174 int cur_seg; /* $B8=:_$N%;%0%a%s%H(B */
175 int offset;
176
177 /* $B8=:_$NF~NO%b!<%I$N4IM}(B */
178 _XatokMode mode; /* $B%b!<%II=<(J8;zNs(B */
179 opMode convStatus; /* M_XXXX $B$r;2>H(B */
180 opMode oldStatus; /* M_XXXX $B$r;2>H(B */
181 int candStatus; /* 0 :
182 1 : $B8uJdI=<(3+;O(B
183 2 : $B8uJdI=<(Cf(B
184 */
185 menuAux *menuAux;
186 menuAux *curAux;
187 int menuStatus;
188
189 wchar wbuf[BUFSIZ*4]; /* $B3NDjJ8;zNsMQ$N%P%C%U%!(B */
190 char wrbuf[BUFSIZ*4]; /* $B3NDjJ8;zNsFI$_MQ$N%P%C%U%!(B */
191 int wlen; /* $B3NDjJ8;zNs$ND9$5(B */
192
193 /* $BJQ49CfJ8;zNsI=<(MQ%G!<%?NN0h(B */
194 wchar echoStr[BUFSIZ*2]; /* $BJQ49CfMQJ8;zNs(B */
195 int echoLen; /* $BJQ49CfJ8;zNs$ND9$5(B */
196 int revPos; /* $BH?E>$r3+;O$9$k%]%8%7%g%s(B */
197 int revLen; /* $BH?E>J8;zNs$ND9$5(B */
198
199 /* AUX $B%&%#%s%I%&$NI=<(J8;zNs$N%G!<%?NN0h(B */
200 wchar aux_echoStr[BUFSIZ*2];
201 int aux_echoLen;
202 int aux_revPos;
203 int aux_revLen; /* $BH?E>J8;zNs$ND9$5(B */
204 int aux_isopened;
205
206 /*
207 * $BC18lEPO?$N$?$a$N%G!<%?(B
208 * $BC18l(B $BFI$_!"I=5-!"IJ;l>pJs!"IJ;lAm?t!"<-=q>pJs(B
209 */
210 int wordStatus;
211 wchar word_str[66+1];
212 wchar word_yomi[66+1];
213 int word_strLen;
214 int word_yomiLen;
215 wordMode word_mode; /* 0 : $BI=5-F~NOCf(B
216 1 : $BFI$_F~NOCf(B
217 2 : $BIJ;lA*BrCf(B
218 3 : $B<-=qA*BrCf(B
219 */
220 int word_hinshi;
221 int hinsiNum;
222 ATOKDEHINSTR *hinsiPtr;
223 int dicNum;
224 char **dicPtr;
225
226 /* $B8uJdJ8;zNs$NNN0h(B */
227 int kohoNum; /* $B8uJd$N?t(B */
228 int kohoNum2;
229 int kohoPos; /* $BA*Br$5$l$F$$$k8uJdHV9f(B */
230 int kohoSize; /* $B8uJd%G!<%?MQ%P%C%U%!%5%$%:(B */
231 int kohoStrLen; /* $B<hF@$7$F$$$k8uJdJ8;zNs?t(B */
232 WCHAR *kohoStrPtr; /* $B8uJdJ8;zNs(B */
233 BYTE *kohoLenPtr; /* $B3F8uJdJ8;zNs$ND9$5(B */
234 BYTE *kohoSfxPtr; /* ???? */
235 int kohoCurPage; /* $B8=:_I=<($7$F$$$k%Z!<%8(B */
236 int kohoPageNbr; /* $BA4%Z!<%8?t(B */
237 int kohoMax;
238
239 wchar sysLineStr[BUFSIZ];
240 WORD *sysAttrPtr;
241 int sysLineLen;
242 int sysLineSize;
243 DWORD guide_openEventIndex;
244 DWORD guide_closeEventIndex;
245 DWORD guide_OpenIndex;
246
247 /* $B%5!<%P$H$NDL?.%P%C%U%!(B */
248 AtokReqPacket NETrqst; /* $B%j%/%(%9%HMQ$NNN0h(B */
249 AtokRsltPacket NETrslt; /* $BJQ497k2LMQ$NNN0h(B */
250
251 } _XatokRec, *_XatokRecPtr;
252
253
254 typedef enum {
255 XKEY_START = (1L<<0), /* $BJQ49%-!<(B */
256 XKEY_END = (1L<<1), /* $BJQ49=*N;(B */
257 XKEY_FIX = (1L<<2), /* $B3NDj(B */
258 XKEY_LEFT = (1L<<3), /* $B:8(B */
259 XKEY_RIGHT = (1L<<4), /* $B1&(B */
260 XKEY_UP = (1L<<5), /* $B>e(B */
261 XKEY_DOWN = (1L<<6), /* $B2<(B */
262 XKEY_FIRST = (1L<<7), /* $B@hF,(B */
263 XKEY_LAST = (1L<<8), /* $B:G8e(B */
264 XKEY_PREVP = (1L<<9), /* $BA0%Z!<%8(B */
265 XKEY_NEXTP = (1L<<10), /* $B<!%Z!<%8(B */
266 XKEY_CAND = (1L<<11), /* $B8uJd(B */
267 XKEY_SELECTED = (1L<<12), /* $BA*Br(B */
268 XKEY_CANCEL = (1L<<13), /* $B%-%c%s%;%k(B */
269 XKEY_START_SELECTION= (1L<<14), /* $B8uJdI=<((B*/
270 XKEY_DICT = (1L<<15), /* $B<-=q(B */
271 } XKEY_TYPE;
272
273
274 #define SetIsKakuteI(stat) ((stat) |= 1)
275 #define SetIsMode(stat) ((stat) |= 2)
276 #define IsKakutei(stat) ((stat) & 1)
277 #define IsMode(stat) ((stat) & 2)
278
279 extern menuAux *getMenuInstance();
280 extern menuAux *auxMenuCopy();
281
282 #endif /* !_xatoklib_h_ */