Mercurial > kinput2.yaz
diff lib/Xatoklib/sysline.c @ 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/lib/Xatoklib/sysline.c Mon Mar 08 04:44:30 2010 +0900 @@ -0,0 +1,191 @@ +/* + * 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 lint +static char rcsid[] = "$Id: sysline.c,v 1.2 1999/08/24 09:01:10 ishisone Exp $" ; +#endif /* !lint */ + +#include <stdio.h> +#include <X11/IntrinsicP.h> +#include <X11/StringDefs.h> +#include <X11/Xmu/Atoms.h> +#include <X11/keysym.h> +#include <InputConv.h> + +#include <Xatoklib.h> + +/* Page */ +/* + * [$B4X?tL>(B] + * auxSyslineCtrl( ) + * [$BI=Bj(B] + * $B%G!<%?$NAw?.(B + * [$B8F=P7A<0(B] + * int auxSyslineCtrl( _XatokRecPtr acomm, int isdecision ) + * + * [$B0z?t(B] + * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B + * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B + * int : isdecision : i : $B3NDj%G!<%?%U%i%0(B + * + * + * [$BJV$jCM(B] + * 0 : AUX $B%&%#%s%I%&7QB3(B + * 1 : AUX $B%&%#%s%I%&=*N;(B + * + * [$B;HMQ4X?t(B] + * $B$J$7(B + * [$B5!G=(B] + * SYSLINE$B%G!<%?$N%U%i%0$,(B ATOK12CE $B%(%s%8%s$G@_Dj$5$l$F$$$k>l9g$K(B + * $B%7%9%F%`9T$r?75,$K3+$/!"%7%9%F%`9T$NJ8;zNs$rJQ99$9$k!"(B + * $B%7%9%F%`9T$rJD$8$k$J$I$N!"I=<($r$I$N$h$&$K9T$J$&$+$rH=CG$9$k(B + * $B%U%!%s%/%7%g%s$G$"$j!"I=<($r4IM}$7$F$$$k%b%8%e!<%k$h$j(B + * $B8F$S=P$5$l$k!#(B + */ +int auxSyslineCtrl(acomm, isdecision) +_XatokRecPtr acomm; +int isdecision; /* $B3NDjJ8;z$,$"$k$+$J$$$+!)(B */ +{ + int status = 0 ; + +#ifdef ATOK_DEBUG + printf( "GUIDE isdecision %d\n", isdecision ) ; + printf( "GUIDE VAL %d\n", acomm->guide_OpenIndex ) ; + printf( "GUIDE CLOSE VAL %d\n", acomm->guide_closeEventIndex ) ; + printf( "GUIDE OPEN VAL %d\n", acomm->guide_openEventIndex ) ; +#endif + if ( acomm->guide_openEventIndex & CEGUIDEINDX_ERROR ) { + /* printf( "CEGUIDEINDX_ERROR\n" ) ; */ + acomm->convStatus |= M_SYSLINE ; + if ( acomm->aux_isopened ) { + acomm->menuStatus = ICAuxChange ; + } + else { + acomm->menuStatus = ICAuxStart ; + } + acomm->aux_isopened = 1 ; + } + else if ( acomm->guide_OpenIndex & CEGUIDEINDX_CODE ) { + /* printf( "CEGUIDEINDX_CODE\n" ) ; */ + acomm->convStatus |= M_SYSLINE ; + if ( acomm->aux_isopened ) { + acomm->menuStatus = ICAuxChange ; + } + else { + acomm->menuStatus = ICAuxStart ; + } + acomm->aux_isopened = 1 ; + } + else if ( acomm->guide_OpenIndex & CEGUIDEINDX_KIGOU ) { + /* printf( "CEGUIDEINDX_CODE\n" ) ; */ + acomm->convStatus |= M_SYSLINE ; + if ( acomm->aux_isopened ) { + acomm->menuStatus = ICAuxChange ; + } + else { + acomm->menuStatus = ICAuxStart ; + } + acomm->aux_isopened = 1 ; + status = isdecision ; + } + else { + /* printf( "SYSLINE OTHER\n" ) ; */ + + acomm->convStatus ^= M_SYSLINE ; /* 0616 */ + acomm->aux_isopened = 0 ; + acomm->menuStatus = ICAuxEnd ; + status = 1 ; + } + return status ; +} +/* Page */ +/* + * [$B4X?tL>(B] + * auxSyslineString( ) + * AtokNetSend( ) + * [$BI=Bj(B] + * $B%7%9%F%`9TJ8;zNs$N:n@.!#(B + * [$B8F=P7A<0(B] + * int auxSyslineString( _XatokRecPtr acomm, menuAux *mAux, + * wchar *echoStr, int *echoLen, int *revLen, int *revPos ) + * + * [$B0z?t(B] + * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B + * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B + * menuAux : *mAux: : $B8=:_L$;HMQ(B + * wchar : *echoStr: o : $BI=<(J8;zNs(B + * int : *echoLen: o : $BI=<(J8;zNs$ND9$5(B + * int : *revLen : o : $BH?E>3+;O0LCV(B + * int : *revPos : o : $BH?E>J8;zNsD9$5(B + * + * + * [$BJV$jCM(B] + * -1 : $BAw?.%(%i!<(B + * N : $BAw?.%P%$%H?t(B + * + * [$B;HMQ4X?t(B] + * $B$J$7(B + * [$B5!G=(B] + * $B%7%9%F%`9T$KI=<($9$kJ8;zNs$r:n@.$7!"H?E>I=<(0LCV!"H?E>I=<($N(B + * $BD9$5$r5a$a$k!#(B + */ + +int auxSyslineString(acomm, mAux, echoStr, echoLen, revLen, revPos) +_XatokRecPtr acomm; +menuAux *mAux; +wchar *echoStr; +int *echoLen; +int *revLen; +int *revPos; +{ + int wsize = sizeof( wchar ) ; + int isreverse = 0 ; + int rev = 0 ; + int i ; + + *revPos = 0 ; + *revLen = 0 ; + + memcpy( acomm->aux_echoStr, acomm->sysLineStr, acomm->sysLineLen * wsize ) ; + + *echoLen = acomm->sysLineLen ; + for ( i = 0 ; i < acomm->sysLineLen ; i++ ) { + switch( acomm->sysAttrPtr[i] ) { + case ATCOLINDX_SYSLINEBACK : + case ATCOLINDX_SYSLINEINPUT : + case ATCOLINDX_SYSLINEINPUTCUR : + case ATCOLINDX_SYSLINENOTSELECTITEM : + case ATCOLINDX_SYSLINEHOSOKU : + case ATCOLINDX_SYSLINEGUIDEMESSAGE : + if ( isreverse ) { + goto done; + } + rev++ ; + break ; + case ATCOLINDX_SYSLINESELECTITEM : + isreverse = 1 ; + ( *revLen ) ++ ; + break ; + } + } +done: + if ( isreverse ) { + *revPos = rev ; + } + return 1 ; +} +/* End of sysline.c */