Mercurial > kinput2.yaz
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/Xatoklib.h Mon Mar 08 04:44:30 2010 +0900 @@ -0,0 +1,282 @@ +/* + * Copyright 1999 Justsystem Corporation, Japan. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Justsystem Corporation + * not be used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. Justsystem + * Corporation makes no representations about the suitability of this + * software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * Author: Atsushi Irisawa + */ + +#ifndef _xatoklib_h_ +#define _xatoklib_h_ + +#include <atok_typ.h> +#include <atokce.h> +#include <atok12net.h> +#include <key_def.h> + +/* #include <stdio.h> /* for BUFSIZ? */ +#ifdef BUFSIZ +#undef BUFSIZ +#endif +#define BUFSIZ 1024 + +/* #define CAND_PAGE */ +#ifdef CAND_PAGE +#undef CAND_PAGE +#endif + +#define CAND_ROWS (9) +#define CAND_COLS (1) +#include "WStr.h" + +typedef struct { + int length; + int size; + wchar *string; + int offset; +} _XatokSegment; + +typedef enum { + OP_NONE = 0, + OP_NEXT, + OP_PREV, + OP_FIRST, + OP_LAST, + OP_SELECT, + OP_CANCEL, + OP_SPEC +} _opType; + +typedef struct _menuItem MenuItem; +typedef struct _menu MenuAux; +typedef struct _menuItem { + WORD key; + int mode; + _opType op; + MenuAux *child; + char *numStr; + char *itemStr; +} menuItem; + +typedef struct _menu { + int mode; + int cur; + int (*startProc)(); + int (*defaultProc)(); + int (*endProc)(); + int (*stringProc) (); + char *str; + MenuAux *parent; + menuItem *items; + int nitems; +} menuAux; + +typedef enum { + M_NOKEYCONV = 0, /* $B%-!<%9%k!<(B */ + M_KEYCONV = (1L<<0), /* $BJQ49Cf(B */ + M_AUX = (1L<<1), /* AUX WINDOW $BC18lEPO?(B */ + M_CAND = (1L<<2), /* $B8uJdI=<(Cf(B */ + M_SYSLINE = (1L<<3), /* $B%7%9%F%`9T(B */ + M_WDEL = (1L<<4) /* $BC18l:o=|(B */ +} opMode; + +typedef enum { + W_WORD = (1L<<0), /* $BC18l(B */ + W_YOMI = (1L<<1), /* $B$h$_F~NOCf(B */ + W_HINSHI = (1L<<2), /* $BIJ;lA*BrCf(B */ + W_YORN = (1L<<3), /* $B=hM}3NG'(B */ + W_RESULT = (1L<<4) /* $B7k2LI=<((B */ +} wordMode; + +typedef enum { + M_TOP, /* AUX $B%H%C%W%a%K%e!<(B */ + M_WORDREG, /* $BC18lEPO?(B */ + M_CODE, /* AUX CODE $B%a%K%e!<(B */ + M_CODESJ, /* $B%3!<%IF~NO(B SJIS */ + M_CODEEUC, /* $B%3!<%IF~NO(B EUC */ + M_CODEJIS, /* $B%3!<%IF~NO(B JIS */ + M_CODEKUTEN, /* $B%3!<%IF~NO6hE@(B */ + M_KIGOU, /* AUX $B5-9fF~NO%a%K%e!<(B */ + M_NKIGOU, /* 10 */ + M_SKIGOU, + M_DICUTIL, /* AUX $B<-=q%a%K%e!<(B */ + M_WORD, /* AUX $BC18lEPO?(B */ + M_WORDR, + M_WORDD +} menuMode; + +typedef struct { + WCHAR name[64]; + int length; + WORD modeKANDSP; /* IME_PRV_SETKANDSP 1 - 4 + 1 : $BJ?2>L>(B + 2 : $BA43Q%+%?%+%J(B + 3 : $BA43QL5JQ49(B + 4 : $BH>3Q%+%?%+%J(B + 5 : $BH>3QL5JQ49(B + */ + WORD modeHEN; /* IME_PRV_SETHENMODE + 0 : $BO"J8@a(B + 1 : $BJ#J8@a(B + 2 : $B<+F0(B + */ + WORD modeGAKU; /* IME_PRV_GAKMODE + 0 : $B3X=,(BOFF + 1 : $B3X=,(BON + 2 : $B%a%b%j!<3X=,(B + */ + WORD modeKOTE; /* IME_SETKOTEMODE + 0 : $B8GDjF~NO2r=|(B + 1 : $B$R$i$,$J8GDj(B + 2 : $BA43Q%+%?%+%J8GDj(B + 3 : $BA43QL5JQ498GDj(B + 4 : $BH>3Q%+%?%+%J8GDj(B + 5 : $BH>3QL5JQ498GDj(B + */ + WORD modeOKURI; /* IME_PRV_SETOKURIMODE + 0 : $BK\B'(B + 1 : $BAw$k(B + 2 : $B>J$/(B + 3 : $BA4$F(B + */ + WORD modeROT; /* IME_PRV_SETROTMODEF + 1 : $B4A;zF~NO(B + 2 : $BH>3QF~NO(B + 3 : $B%3!<%IF~NO(B + 4 : $B5-9fF~NO(B + */ + /*int changes;*/ +} _XatokMode; + +#define WORD_HYOKI_MAX 64 +#define WORD_YOMI_MAX 32 + +/* #define NBR_OF_PART (3) */ +#define ATOK_NSEG (3) + +typedef struct { + /* $B%5!<%P$H$N@\B3>pJs(B */ + int sock; /* $B%5!<%P(B */ + int clntid; /* $B%;%C%7%g%s(B */ + int ctxtid; /* ID */ + /* $B%;%0%a%s%H$N4IM}(B */ + _XatokSegment segments[ATOK_NSEG+3]; /* $BL$3NDjJ8;zNs$N%;%0%a%s%H(B */ + int nbr_of_seg; /* $B;HMQ$7$F$$$k%;%0%a%s%H?t(B */ + int cur_seg; /* $B8=:_$N%;%0%a%s%H(B */ + int offset; + + /* $B8=:_$NF~NO%b!<%I$N4IM}(B */ + _XatokMode mode; /* $B%b!<%II=<(J8;zNs(B */ + opMode convStatus; /* M_XXXX $B$r;2>H(B */ + opMode oldStatus; /* M_XXXX $B$r;2>H(B */ + int candStatus; /* 0 : + 1 : $B8uJdI=<(3+;O(B + 2 : $B8uJdI=<(Cf(B + */ + menuAux *menuAux; + menuAux *curAux; + int menuStatus; + + wchar wbuf[BUFSIZ*4]; /* $B3NDjJ8;zNsMQ$N%P%C%U%!(B */ + char wrbuf[BUFSIZ*4]; /* $B3NDjJ8;zNsFI$_MQ$N%P%C%U%!(B */ + int wlen; /* $B3NDjJ8;zNs$ND9$5(B */ + + /* $BJQ49CfJ8;zNsI=<(MQ%G!<%?NN0h(B */ + wchar echoStr[BUFSIZ*2]; /* $BJQ49CfMQJ8;zNs(B */ + int echoLen; /* $BJQ49CfJ8;zNs$ND9$5(B */ + int revPos; /* $BH?E>$r3+;O$9$k%]%8%7%g%s(B */ + int revLen; /* $BH?E>J8;zNs$ND9$5(B */ + + /* AUX $B%&%#%s%I%&$NI=<(J8;zNs$N%G!<%?NN0h(B */ + wchar aux_echoStr[BUFSIZ*2]; + int aux_echoLen; + int aux_revPos; + int aux_revLen; /* $BH?E>J8;zNs$ND9$5(B */ + int aux_isopened; + + /* + * $BC18lEPO?$N$?$a$N%G!<%?(B + * $BC18l(B $BFI$_!"I=5-!"IJ;l>pJs!"IJ;lAm?t!"<-=q>pJs(B + */ + int wordStatus; + wchar word_str[66+1]; + wchar word_yomi[66+1]; + int word_strLen; + int word_yomiLen; + wordMode word_mode; /* 0 : $BI=5-F~NOCf(B + 1 : $BFI$_F~NOCf(B + 2 : $BIJ;lA*BrCf(B + 3 : $B<-=qA*BrCf(B + */ + int word_hinshi; + int hinsiNum; + ATOKDEHINSTR *hinsiPtr; + int dicNum; + char **dicPtr; + + /* $B8uJdJ8;zNs$NNN0h(B */ + int kohoNum; /* $B8uJd$N?t(B */ + int kohoNum2; + int kohoPos; /* $BA*Br$5$l$F$$$k8uJdHV9f(B */ + int kohoSize; /* $B8uJd%G!<%?MQ%P%C%U%!%5%$%:(B */ + int kohoStrLen; /* $B<hF@$7$F$$$k8uJdJ8;zNs?t(B */ + WCHAR *kohoStrPtr; /* $B8uJdJ8;zNs(B */ + BYTE *kohoLenPtr; /* $B3F8uJdJ8;zNs$ND9$5(B */ + BYTE *kohoSfxPtr; /* ???? */ + int kohoCurPage; /* $B8=:_I=<($7$F$$$k%Z!<%8(B */ + int kohoPageNbr; /* $BA4%Z!<%8?t(B */ + int kohoMax; + + wchar sysLineStr[BUFSIZ]; + WORD *sysAttrPtr; + int sysLineLen; + int sysLineSize; + DWORD guide_openEventIndex; + DWORD guide_closeEventIndex; + DWORD guide_OpenIndex; + + /* $B%5!<%P$H$NDL?.%P%C%U%!(B */ + AtokReqPacket NETrqst; /* $B%j%/%(%9%HMQ$NNN0h(B */ + AtokRsltPacket NETrslt; /* $BJQ497k2LMQ$NNN0h(B */ + +} _XatokRec, *_XatokRecPtr; + + +typedef enum { + XKEY_START = (1L<<0), /* $BJQ49%-!<(B */ + XKEY_END = (1L<<1), /* $BJQ49=*N;(B */ + XKEY_FIX = (1L<<2), /* $B3NDj(B */ + XKEY_LEFT = (1L<<3), /* $B:8(B */ + XKEY_RIGHT = (1L<<4), /* $B1&(B */ + XKEY_UP = (1L<<5), /* $B>e(B */ + XKEY_DOWN = (1L<<6), /* $B2<(B */ + XKEY_FIRST = (1L<<7), /* $B@hF,(B */ + XKEY_LAST = (1L<<8), /* $B:G8e(B */ + XKEY_PREVP = (1L<<9), /* $BA0%Z!<%8(B */ + XKEY_NEXTP = (1L<<10), /* $B<!%Z!<%8(B */ + XKEY_CAND = (1L<<11), /* $B8uJd(B */ + XKEY_SELECTED = (1L<<12), /* $BA*Br(B */ + XKEY_CANCEL = (1L<<13), /* $B%-%c%s%;%k(B */ + XKEY_START_SELECTION= (1L<<14), /* $B8uJdI=<((B*/ + XKEY_DICT = (1L<<15), /* $B<-=q(B */ +} XKEY_TYPE; + + +#define SetIsKakuteI(stat) ((stat) |= 1) +#define SetIsMode(stat) ((stat) |= 2) +#define IsKakutei(stat) ((stat) & 1) +#define IsMode(stat) ((stat) & 2) + +extern menuAux *getMenuInstance(); +extern menuAux *auxMenuCopy(); + +#endif /* !_xatoklib_h_ */