11ab64890Smrg/******************************************************************
21ab64890Smrg
31ab64890Smrg          Copyright 1991, 1992, 1993, 1994 by FUJITSU LIMITED
41ab64890Smrg          Copyright 1993 by Digital Equipment Corporation
51ab64890Smrg
61ab64890SmrgPermission to use, copy, modify, distribute, and sell this software
71ab64890Smrgand its documentation for any purpose is hereby granted without fee,
81ab64890Smrgprovided that the above copyright notice appear in all copies and that
91ab64890Smrgboth that copyright notice and this permission notice appear in
101ab64890Smrgsupporting documentation, and that the name of FUJITSU LIMITED and
111ab64890SmrgDigital Equipment Corporation not be used in advertising or publicity
121ab64890Smrgpertaining to distribution of the software without specific, written
131ab64890Smrgprior permission.  FUJITSU LIMITED and Digital Equipment Corporation
141ab64890Smrgmakes no representations about the suitability of this software for
151ab64890Smrgany purpose.  It is provided "as is" without express or implied
161ab64890Smrgwarranty.
171ab64890Smrg
1861b2299dSmrgFUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
1961b2299dSmrgWARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
2061b2299dSmrgWARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
2161b2299dSmrgFUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
2261b2299dSmrgANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
2361b2299dSmrgWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
2461b2299dSmrgIN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
2561b2299dSmrgARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
261ab64890SmrgTHIS SOFTWARE.
271ab64890Smrg
2861b2299dSmrg  Author:    Takashi Fujiwara     FUJITSU LIMITED
291ab64890Smrg                               	  fujiwara@a80.tech.yk.fujitsu.co.jp
301ab64890Smrg  Modifier:  Franky Ling          Digital Equipment Corporation
311ab64890Smrg	                          frankyling@hgrd01.enet.dec.com
321ab64890Smrg
331ab64890Smrg******************************************************************/
341ab64890Smrg
351ab64890Smrg#ifndef _XIMINTL_H
361ab64890Smrg#define _XIMINTL_H
371ab64890Smrg
381ab64890Smrg#define	COMPOSE_FILE	"Compose"
391ab64890Smrg
401ab64890Smrg/*
411ab64890Smrg * Data Structures for Local Processing
421ab64890Smrg */
431ab64890Smrgtypedef INT32  DTIndex;
441ab64890Smrgtypedef INT32  DTCharIndex;
451ab64890Smrgtypedef BITS32 DTModifier;
461ab64890Smrg
471ab64890Smrgtypedef struct _DefTree {
481ab64890Smrg    DTIndex          next;
491ab64890Smrg    DTIndex          succession;	/* successive Key Sequence */
501ab64890Smrg					/* Key definitions */
511ab64890Smrg    DTModifier       modifier_mask;
521ab64890Smrg    DTModifier       modifier;
531ab64890Smrg    KeySym           keysym;		/* leaf only */
541ab64890Smrg    DTCharIndex      mb;
551ab64890Smrg    DTCharIndex      wc;		/* make from mb */
561ab64890Smrg    DTCharIndex      utf8;		/* make from mb */
571ab64890Smrg    KeySym           ks;
581ab64890Smrg} DefTree;
591ab64890Smrg
601ab64890Smrgtypedef struct _DefTreeBase {
611ab64890Smrg    DefTree         *tree;
621ab64890Smrg    char            *mb;
631ab64890Smrg    wchar_t         *wc;
641ab64890Smrg    char            *utf8;
651ab64890Smrg    DTIndex          treeused, treesize;
661ab64890Smrg    DTCharIndex      mbused,   mbsize;
671ab64890Smrg    DTCharIndex      wcused,   wcsize;
681ab64890Smrg    DTCharIndex      utf8used, utf8size;
691ab64890Smrg} DefTreeBase;
701ab64890Smrg
711ab64890Smrgtypedef struct _XimLocalPrivateRec {
721ab64890Smrg	/* The first fields are identical with XimCommonPrivateRec. */
731ab64890Smrg	XlcConv		 ctom_conv;
741ab64890Smrg	XlcConv		 ctow_conv;
751ab64890Smrg	XlcConv		 ctoutf8_conv;
761ab64890Smrg	XlcConv		 cstomb_conv;
771ab64890Smrg	XlcConv		 cstowc_conv;
781ab64890Smrg	XlcConv		 cstoutf8_conv;
791ab64890Smrg	XlcConv		 ucstoc_conv;
801ab64890Smrg	XlcConv		 ucstoutf8_conv;
811ab64890Smrg
821ab64890Smrg	XIC		 current_ic;
831ab64890Smrg	DefTreeBase	 base;
841ab64890Smrg	DTIndex          top;
851ab64890Smrg} XimLocalPrivateRec;
861ab64890Smrg
871ab64890Smrgtypedef struct _XicThaiPart {
881ab64890Smrg	int		comp_state;
891ab64890Smrg	KeySym		keysym;
901ab64890Smrg	int		input_mode;
911ab64890Smrg} XicThaiPart;
921ab64890Smrg
931ab64890Smrgtypedef struct _XicLocalPrivateRec {
941ab64890Smrg	long			 value_mask;
951ab64890Smrg	DefTreeBase              base;
961ab64890Smrg	DTIndex			 context;
971ab64890Smrg	DTIndex			 composed;
981ab64890Smrg	XicThaiPart		 thai;
991ab64890Smrg
1001ab64890Smrg	XIMResourceList		 ic_resources;
1011ab64890Smrg	unsigned int		 ic_num_resources;
1021ab64890Smrg
1031ab64890Smrg	unsigned char	 	 brl_pressed, brl_committing, brl_committed;
1041ab64890Smrg	Time		 	 brl_release_start;
1051ab64890Smrg} XicLocalPrivateRec;
1061ab64890Smrg#endif /* _XIMINTL_H */
107