Mercurial > kinput2.yaz
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_ */ |