Ximint.h revision 1ab64890
1/* $Xorg: Ximint.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */
2/******************************************************************
3
4                Copyright 1992, 1993, 1994 by FUJITSU LIMITED
5                Copyright 1993, 1994 by Sony Corporation
6
7Permission to use, copy, modify, distribute, and sell this software
8and its documentation for any purpose is hereby granted without fee,
9provided that the above copyright notice appear in all copies and that
10both that copyright notice and this permission notice appear in
11supporting documentation, and that the name of FUJITSU LIMITED and
12Sony Corporation not be used in advertising or publicity pertaining to
13distribution of the software without specific, written prior
14permission.  FUJITSU LIMITED and Sony Corporation makes no
15representations about the suitability of this software for any
16purpose.  It is provided "as is" without express or implied warranty.
17
18FUJITSU LIMITED AND SONY CORPORATION DISCLAIM ALL WARRANTIES WITH
19REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
20MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU LIMITED AND
21SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
22DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
23PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
24TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
25PERFORMANCE OF THIS SOFTWARE.
26
27  Author:   Takashi Fujiwara   FUJITSU LIMITED
28                               fujiwara@a80.tech.yk.fujitsu.co.jp
29  Motifier: Makoto Wakamatsu   Sony Corporation
30			       makoto@sm.sony.co.jp
31
32******************************************************************/
33/* $XFree86: xc/lib/X11/Ximint.h,v 3.13 2003/09/06 14:06:32 pascal Exp $ */
34
35#ifndef _XIMINT_H
36#define _XIMINT_H
37
38#include <stdio.h>
39#include <X11/Xutil.h>
40
41#define Public /**/
42#define Private static
43
44typedef struct _Xim	*Xim;
45typedef struct _Xic	*Xic;
46
47/*
48 * Input Method data
49 */
50#include "XimintP.h"
51#include "XimintL.h"
52
53/*
54 * XIM dependent data
55 */
56
57typedef struct _XimCommonPrivateRec {
58    /* This struct is also inlined in XimLocalPrivateRec, XimProtoPrivateRec. */
59    XlcConv		ctom_conv;
60    XlcConv		ctow_conv;
61    XlcConv		ctoutf8_conv;
62    XlcConv		cstomb_conv;
63    XlcConv		cstowc_conv;
64    XlcConv		cstoutf8_conv;
65    XlcConv		ucstoc_conv;
66    XlcConv		ucstoutf8_conv;
67} XimCommonPrivateRec;
68
69typedef union _XIMPrivateRec {
70    XimCommonPrivateRec  common;
71    XimLocalPrivateRec   local;
72    XimProtoPrivateRec   proto;
73} XIMPrivateRec;
74
75/*
76 * IM struct
77 */
78typedef struct _Xim {
79    XIMMethods		methods;
80    XIMCoreRec		core;
81    XIMPrivateRec	private;
82} XimRec;
83
84/*
85 * IC deprndent data
86 */
87typedef union _XICPrivateRec {
88    XicLocalPrivateRec   local;
89    XicProtoPrivateRec   proto;
90} XICPrivateRec;
91
92/*
93 * IC struct
94 */
95typedef struct _Xic {
96	XICMethods	methods;
97	XICCoreRec	core;
98	XICPrivateRec	private;
99} XicRec;
100
101typedef struct _XimDefIMValues {
102	XIMValuesList		*im_values_list;
103	XIMValuesList		*ic_values_list;
104	XIMStyles		*styles;
105	XIMCallback		 destroy_callback;
106	char			*res_name;
107	char			*res_class;
108	Bool			 visible_position;
109} XimDefIMValues;
110
111typedef struct _XimDefICValues {
112    XIMStyle			 input_style;
113    Window			 client_window;
114    Window			 focus_window;
115    unsigned long		 filter_events;
116    XICCallback			 geometry_callback;
117    char			*res_name;
118    char			*res_class;
119    XICCallback			 destroy_callback;
120    XICCallback			 preedit_state_notify_callback;
121    XICCallback			 string_conversion_callback;
122    XIMStringConversionText	 string_conversion;
123    XIMResetState		 reset_state;
124    XIMHotKeyTriggers		*hotkey;
125    XIMHotKeyState		 hotkey_state;
126    ICPreeditAttributes		 preedit_attr;
127    ICStatusAttributes		 status_attr;
128} XimDefICValues;
129
130#define XIM_MODE_IM_GET		(1 << 0)
131#define XIM_MODE_IM_SET		(1 << 1)
132#define XIM_MODE_IM_DEFAULT	(1 << 2)
133
134#define XIM_MODE_PRE_GET	(1 << 0)
135#define XIM_MODE_PRE_SET	(1 << 1)
136#define XIM_MODE_PRE_CREATE	(1 << 2)
137#define XIM_MODE_PRE_ONCE	(1 << 3)
138#define XIM_MODE_PRE_DEFAULT	(1 << 4)
139
140#define XIM_MODE_STS_GET	(1 << 5)
141#define XIM_MODE_STS_SET	(1 << 6)
142#define XIM_MODE_STS_CREATE	(1 << 7)
143#define XIM_MODE_STS_ONCE	(1 << 8)
144#define XIM_MODE_STS_DEFAULT	(1 << 9)
145
146#define XIM_MODE_IC_GET		(XIM_MODE_PRE_GET      | XIM_MODE_STS_GET)
147#define XIM_MODE_IC_SET		(XIM_MODE_PRE_SET      | XIM_MODE_STS_SET)
148#define XIM_MODE_IC_CREATE	(XIM_MODE_PRE_CREATE   | XIM_MODE_STS_CREATE)
149#define XIM_MODE_IC_ONCE	(XIM_MODE_PRE_ONCE     | XIM_MODE_STS_ONCE)
150#define XIM_MODE_IC_DEFAULT	(XIM_MODE_PRE_DEFAULT  | XIM_MODE_STS_DEFAULT)
151
152#define XIM_MODE_PRE_MASK	(XIM_MODE_PRE_GET    | XIM_MODE_PRE_SET    | \
153				 XIM_MODE_PRE_CREATE | XIM_MODE_PRE_ONCE   | \
154				 XIM_MODE_PRE_DEFAULT)
155#define XIM_MODE_STS_MASK	(XIM_MODE_STS_GET    | XIM_MODE_STS_SET    | \
156				 XIM_MODE_STS_CREATE | XIM_MODE_STS_ONCE   | \
157				 XIM_MODE_STS_DEFAULT)
158
159#define XIM_SETIMDEFAULTS	(1L << 0)
160#define XIM_SETIMVALUES		(1L << 1)
161#define XIM_GETIMVALUES		(1L << 2)
162
163#define XIM_SETICDEFAULTS	(1L << 0)
164#define XIM_CREATEIC		(1L << 1)
165#define XIM_SETICVALUES		(1L << 2)
166#define XIM_GETICVALUES		(1L << 3)
167#define XIM_PREEDIT_ATTR	(1L << 4)
168#define XIM_STATUS_ATTR		(1L << 5)
169
170#define XIM_CHECK_VALID		0
171#define XIM_CHECK_INVALID	1
172#define XIM_CHECK_ERROR		2
173
174#define FILTERD         True
175#define NOTFILTERD      False
176
177#define XIMMODIFIER		"@im="
178
179#define	XIM_TRUE	True
180#define	XIM_FALSE	False
181#define	XIM_OVERFLOW	(-1)
182
183#define BRL_UC_ROW	0x2800
184
185/*
186 * Global symbols
187 */
188
189XPointer _XimGetLocaleCode (
190    const char	*encoding_name
191);
192
193int _XimGetCharCode (
194    XPointer		conv,
195    KeySym		keysym,
196    unsigned char	*buf,
197    int			nbytes
198);
199
200unsigned int KeySymToUcs4 (
201    KeySym		keysym
202);
203
204extern Bool _XimSetIMResourceList(
205    XIMResourceList	*res_list,
206    unsigned int	*list_num
207);
208
209extern Bool _XimSetICResourceList(
210    XIMResourceList	*res_list,
211    unsigned int	*list_num
212);
213
214extern Bool _XimSetInnerIMResourceList(
215    XIMResourceList	*res_list,
216    unsigned int	*list_num
217);
218
219extern Bool _XimSetInnerICResourceList(
220    XIMResourceList	*res_list,
221    unsigned int	*list_num
222);
223
224extern Bool _XimCheckCreateICValues(
225    XIMResourceList	 res_list,
226    unsigned int	 list_num
227);
228
229extern XIMResourceList _XimGetResourceListRec(
230    XIMResourceList	 res_list,
231    unsigned int	 list_num,
232    const char		*name
233);
234
235extern void _XimSetIMMode(
236    XIMResourceList	 res_list,
237    unsigned int	 list_num
238);
239
240extern void _XimSetICMode(
241    XIMResourceList	 res_list,
242    unsigned int	 list_num,
243    XIMStyle		 style
244);
245
246extern int _XimCheckIMMode(
247    XIMResourceList	 res_list,
248    unsigned long	 mode
249);
250
251extern int _XimCheckICMode(
252    XIMResourceList	 res_list,
253    unsigned long	 mode
254);
255
256extern Bool _XimSetLocalIMDefaults(
257    Xim			 im,
258    XPointer		 top,
259    XIMResourceList	 res_list,
260    unsigned int	 list_num
261);
262
263extern Bool _XimSetICDefaults(
264    Xic			 ic,
265    XPointer		 top,
266    unsigned long	 mode,
267    XIMResourceList	 res_list,
268    unsigned int	 list_num
269);
270
271extern Bool _XimEncodeLocalIMAttr(
272    XIMResourceList	 res,
273    XPointer		 top,
274    XPointer		 val
275);
276
277extern Bool _XimEncodeLocalICAttr(
278    Xic			 ic,
279    XIMResourceList	 res,
280    XPointer		 top,
281    XIMArg		*arg,
282    unsigned long	 mode
283);
284
285extern Bool _XimCheckLocalInputStyle(
286    Xic			 ic,
287    XPointer		 top,
288    XIMArg		*values,
289    XIMStyles           *styles,
290    XIMResourceList	 res_list,
291    unsigned int	 list_num
292);
293
294extern Bool _XimDecodeLocalIMAttr(
295    XIMResourceList	 res,
296    XPointer		 top,
297    XPointer		 val
298);
299
300extern Bool _XimDecodeLocalICAttr(
301    XIMResourceList	 res,
302    XPointer		 top,
303    XPointer		 val,
304    unsigned long	mode
305);
306
307extern void _XimGetCurrentIMValues(
308    Xim			 im,
309    XimDefIMValues	*im_values
310);
311
312extern void _XimSetCurrentIMValues(
313    Xim			 im,
314    XimDefIMValues	*im_values
315);
316
317extern void _XimGetCurrentICValues(
318    Xic			 ic,
319    XimDefICValues	*ic_values
320);
321
322extern void _XimSetCurrentICValues(
323    Xic			 ic,
324    XimDefICValues	*ic_values
325);
326
327extern void _XimInitialResourceInfo(
328    void
329);
330
331extern void	 _XimParseStringFile(
332    FILE        *fp,
333    Xim          im
334);
335
336extern Bool	 _XimCheckIfLocalProcessing(
337    Xim		 im
338);
339
340extern Bool	 _XimCheckIfThaiProcessing(
341    Xim		 im
342);
343
344extern Bool	 _XimLocalOpenIM(
345    Xim		 im
346);
347
348extern Bool	 _XimThaiOpenIM(
349    Xim		 im
350);
351
352extern Bool	 _XimProtoOpenIM(
353    Xim		 im
354);
355
356extern void	 _XimLocalIMFree(
357    Xim		 im
358);
359
360extern void	 _XimThaiIMFree(
361    Xim	         im
362);
363
364extern void	 _XimProtoIMFree(
365    Xim		 im
366);
367
368extern char *	 _XimSetIMValueData(
369    Xim			 im,
370    XPointer		 top,
371    XIMArg		*arg,
372    XIMResourceList	 res_list,
373    unsigned int	 list_num
374);
375
376extern char *	 _XimGetIMValueData(
377    Xim			 im,
378    XPointer		 top,
379    XIMArg		*arg,
380    XIMResourceList	 res_list,
381    unsigned int	 list_num
382);
383
384extern char *	 _XimSetICValueData(
385    Xic			 ic,
386    XPointer		 top,
387    XIMResourceList	 res_list,
388    unsigned int	 list_num,
389    XIMArg		*arg,
390    unsigned long	 mode,
391    Bool		 flag
392);
393
394extern char *	 _XimGetICValueData(
395    Xic			 ic,
396    XPointer		 top,
397    XIMResourceList	 res_list,
398    unsigned int	 list_num,
399    XIMArg		*arg,
400    unsigned long	 mode
401);
402
403extern char *	 _XimLocalSetIMValues(
404    XIM		 im,
405    XIMArg	*arg
406);
407
408extern char *	 _XimLocalGetIMValues(
409    XIM		 im,
410    XIMArg	*arg
411);
412
413extern XIC	 _XimLocalCreateIC(
414    XIM		 im,
415    XIMArg	*arg
416);
417
418extern Bool	_XimDispatchInit(
419    Xim		 im
420);
421
422extern Bool	 _XimGetAttributeID(
423    Xim		 im,
424    CARD16	*buf
425);
426
427extern Bool	 _XimExtension(
428    Xim		 im
429);
430
431extern void	_XimDestroyIMStructureList(
432    Xim		 im
433);
434
435extern char *	_XimMakeIMAttrIDList(
436    Xim			 im,
437    XIMResourceList	 res_list,
438    unsigned int	 res_num,
439    XIMArg		*arg,
440    CARD16		*buf,
441    INT16		*len,
442    unsigned long        mode
443);
444
445extern char *	_XimMakeICAttrIDList(
446    Xic                  ic,
447    XIMResourceList	 res_list,
448    unsigned int	 res_num,
449    XIMArg		*arg,
450    CARD16		*idList,
451    INT16		*num,
452    unsigned long	 mode
453);
454
455extern char *	_XimDecodeIMATTRIBUTE(
456    Xim			 im,
457    XIMResourceList	 res_list,
458    unsigned int	 res_num,
459    CARD16		*buf,
460    INT16		 buf_len,
461    XIMArg		*arg,
462    BITMASK32		 mode
463);
464
465extern char *	_XimDecodeICATTRIBUTE(
466    Xic			 ic,
467    XIMResourceList	 res_list,
468    unsigned int	 res_num,
469    CARD16		*buf,
470    INT16		 buf_len,
471    XIMArg		*arg,
472    BITMASK32		 mode
473);
474
475extern Bool	_XimRegProtoIntrCallback(
476    Xim		 im,
477    CARD16	 major_code,
478    CARD16	 minor_code,
479    Bool	 (*proc)(
480			Xim, INT16, XPointer, XPointer
481			),
482    XPointer	 call_data
483);
484
485extern Bool	_XimErrorCallback(
486    Xim		 im,
487    INT16	 len,
488    XPointer	 data,
489    XPointer	 call_data
490);
491
492extern Bool	_XimError(
493    Xim		 im,
494    Xic		 ic,
495    CARD16	 error_code,
496    INT16	 detail_length,
497    CARD16	 type,
498    char	*detail
499);
500
501extern Bool	_XimRegisterTriggerKeysCallback(
502    Xim		 im,
503    INT16	 len,
504    XPointer	 data,
505    XPointer	 call_data
506);
507
508extern Bool	_XimSetEventMaskCallback(
509    Xim		 im,
510    INT16	 len,
511    XPointer	 data,
512    XPointer	 call_data
513);
514
515extern Bool	_XimForwardEventCallback(
516    Xim		 im,
517    INT16	 len,
518    XPointer	 data,
519    XPointer	 call_data
520);
521
522extern Bool	_XimCommitCallback(
523    Xim		 im,
524    INT16	 len,
525    XPointer	 data,
526    XPointer	 call_data
527);
528
529extern Bool	_XimSyncCallback(
530    Xim		 im,
531    INT16	 len,
532    XPointer	 data,
533    XPointer	 call_data
534);
535
536extern void	_XimFreeProtoIntrCallback(
537    Xim		 im
538);
539
540extern XIC	 _XimProtoCreateIC(
541    XIM		 im,
542    XIMArg	*arg
543);
544
545extern void	_XimRegisterServerFilter(
546    Xim		 im
547);
548
549extern void	_XimUnregisterServerFilter(
550    Xim		 im
551);
552
553extern Bool	_XimTriggerNotify(
554    Xim		 im,
555    Xic		 ic,
556    int		 mode,
557    CARD32	 idx
558);
559
560extern Bool	_XimProcSyncReply(
561    Xim		 im,
562    Xic		 ic
563);
564
565extern void	_XimSendSetFocus(
566    Xim		 im,
567    Xic		 ic
568);
569
570extern Bool	_XimForwardEvent(
571    Xic		 ic,
572    XEvent	*ev,
573    Bool	 sync
574);
575
576extern void	_XimFreeRemakeArg(
577    XIMArg	*arg
578);
579
580extern void	_XimServerDestroy(
581    Xim			im
582);
583
584extern char *	_XimEncodeIMATTRIBUTE(
585    Xim			  im,
586    XIMResourceList	  res_list,
587    unsigned int	  res_num,
588    XIMArg               *arg,
589    XIMArg		**arg_ret,
590    char		 *buf,
591    int			  size,
592    int			 *ret_len,
593    XPointer		  top,
594    unsigned long	  mode
595);
596
597extern char *	_XimEncodeICATTRIBUTE(
598    Xic			  ic,
599    XIMResourceList	  res_list,
600    unsigned int	  res_num,
601    XIMArg               *arg,
602    XIMArg		**arg_ret,
603    char		 *buf,
604    int			  size,
605    int			 *ret_len,
606    XPointer		  top,
607    BITMASK32		 *flag,
608    unsigned long	  mode
609);
610
611#ifdef EXT_MOVE
612extern Bool	_XimExtenMove(
613    Xim		 im,
614    Xic		 ic,
615    CARD32	 flag,
616    CARD16	*buf,
617    INT16	 length
618);
619#endif
620
621extern int	_Ximctstombs(
622    XIM		 im,
623    char	*from,
624    int		 from_len,
625    char	*to,
626    int		 to_len,
627    Status	*state
628);
629
630extern int	_Ximctstowcs(
631    XIM		 im,
632    char	*from,
633    int		 from_len,
634    wchar_t	*to,
635    int		 to_len,
636    Status	*state
637);
638
639extern int	_Ximctstoutf8(
640    XIM		 im,
641    char	*from,
642    int		 from_len,
643    char	*to,
644    int		 to_len,
645    Status	*state
646);
647
648extern int	_XimLcctstombs(
649    XIM		 im,
650    char	*from,
651    int		 from_len,
652    char	*to,
653    int		 to_len,
654    Status	*state
655);
656
657extern int	_XimLcctstowcs(
658    XIM		 im,
659    char	*from,
660    int		 from_len,
661    wchar_t	*to,
662    int		 to_len,
663    Status	*state
664);
665
666extern int	_XimLcctstoutf8(
667    XIM		 im,
668    char	*from,
669    int		 from_len,
670    char	*to,
671    int		 to_len,
672    Status	*state
673);
674
675extern char _XimGetMyEndian(
676    void
677);
678
679extern int	_XimCheckDataSize(
680    XPointer	 buf,
681    int		 len
682);
683
684extern void	_XimSetHeader(
685    XPointer	 buf,
686    CARD8	 major_opcode,
687    CARD8	 minor_opcode,
688    INT16	*len
689);
690
691extern Bool	_XimSync(
692    Xim		 im,
693    Xic		 ic
694);
695
696extern int	_XimProtoMbLookupString(
697    XIC		 xic,
698    XKeyEvent	*ev,
699    char	*buffer,
700    int		 bytes,
701    KeySym	*keysym,
702    Status	*state
703);
704
705extern int	_XimProtoWcLookupString(
706    XIC		 xic,
707    XKeyEvent	*ev,
708    wchar_t	*buffer,
709    int		 bytes,
710    KeySym	*keysym,
711    Status	*state
712);
713
714extern int	_XimProtoUtf8LookupString(
715    XIC		 xic,
716    XKeyEvent	*ev,
717    char	*buffer,
718    int		 bytes,
719    KeySym	*keysym,
720    Status	*state
721);
722
723extern void	_XimRegisterFilter(
724    Xic		 ic
725);
726
727extern void	_XimUnregisterFilter(
728    Xic		 ic
729);
730
731extern void	_XimReregisterFilter(
732    Xic		 ic
733);
734
735extern Status	_XimProtoEventToWire(
736    XEvent	*re,
737    xEvent	*event,
738    Bool	sw
739);
740
741extern Bool	_XimProtoWireToEvent(
742    XEvent	*re,
743    xEvent	*event,
744    Bool	 sw
745);
746
747#ifdef EXT_FORWARD
748extern Bool	_XimExtForwardKeyEvent(
749    Xic		 ic,
750    XKeyEvent	*ev,
751    Bool	 sync
752);
753#endif
754
755extern int	_XimLookupMBText(
756    Xic			 ic,
757    XKeyEvent		*event,
758    char		*buffer,
759    int			 nbytes,
760    KeySym		*keysym,
761    XComposeStatus	*status
762);
763
764extern int	_XimLookupWCText(
765    Xic			 ic,
766    XKeyEvent		*event,
767    wchar_t		*buffer,
768    int			 nbytes,
769    KeySym		*keysym,
770    XComposeStatus	*status
771);
772
773extern int	_XimLookupUTF8Text(
774    Xic			 ic,
775    XKeyEvent		*event,
776    char		*buffer,
777    int			 nbytes,
778    KeySym		*keysym,
779    XComposeStatus	*status
780);
781
782extern EVENTMASK	_XimGetWindowEventmask(
783    Xic		 ic
784);
785
786extern Xic	_XimICOfXICID(
787    Xim		im,
788    XICID	icid
789);
790
791extern void	_XimResetIMInstantiateCallback(
792    Xim         xim
793);
794
795extern Bool	_XimRegisterIMInstantiateCallback(
796    XLCd	 lcd,
797    Display	*display,
798    XrmDatabase	 rdb,
799    char	*res_name,
800    char	*res_class,
801    XIDProc	 callback,
802    XPointer	 client_data
803);
804
805extern Bool	_XimUnRegisterIMInstantiateCallback(
806    XLCd	 lcd,
807    Display	*display,
808    XrmDatabase	 rdb,
809    char	*res_name,
810    char	*res_class,
811    XIDProc	 callback,
812    XPointer	 client_data
813);
814
815extern void	_XimFreeCommitInfo(
816    Xic		 ic
817);
818
819extern Bool	_XimConnect(
820    Xim		 im
821);
822
823extern Bool	_XimShutdown(
824    Xim		 im
825);
826
827extern Bool	_XimWrite(
828    Xim		 im,
829    INT16	 len,
830    XPointer	 data
831);
832
833extern Bool	_XimRead(
834    Xim		 im,
835    INT16	*len,
836    XPointer	 data,
837    int		 data_len,
838    Bool	 (*predicate)(
839			      Xim, INT16, XPointer, XPointer
840			      ),
841    XPointer	 arg
842);
843
844extern Bool	_XimIntrCallback(
845    Xim		 im,
846    Bool	 (*callback)(
847			     Xim, INT16, XPointer, XPointer
848			     ),
849    XPointer	 call_data
850);
851
852extern void	_XimFlush(
853    Xim		 im
854);
855
856extern Bool	_XimFilterWaitEvent(
857    Xim		 im
858);
859
860extern void   _XimProcError(
861    Xim		im,
862    Xic		ic,
863    XPointer	data
864);
865
866#ifdef EXT_MOVE
867extern CARD32	_XimExtenArgCheck(
868    XIMArg	*arg
869);
870#endif
871
872extern Bool _XimCbDispatch(
873    Xim im,
874    INT16 len,
875    XPointer data,
876    XPointer call_data
877);
878
879extern Bool _XimLocalFilter(
880    Display		*d,
881    Window		 w,
882    XEvent		*ev,
883    XPointer		 client_data
884);
885
886extern XIMResourceList _XimGetResourceListRecByQuark(
887    XIMResourceList	 res_list,
888    unsigned int	 list_num,
889    XrmQuark		 quark
890);
891
892extern Bool _XimReconnectModeCreateIC(
893    Xic			 ic
894);
895
896extern char *_XimLocalSetICValues(
897    XIC			 ic,
898    XIMArg		*values
899);
900
901extern char * _XimLocalGetICValues(
902    XIC			 ic,
903    XIMArg		*values
904);
905
906extern int _XimLocalMbLookupString(
907    XIC			 ic,
908    XKeyEvent		*ev,
909    char		*buffer,
910    int			 bytes,
911    KeySym		*keysym,
912    Status		*status
913);
914
915extern int _XimLocalWcLookupString(
916    XIC			 ic,
917    XKeyEvent		*ev,
918    wchar_t		*buffer,
919    int			 bytes,
920    KeySym		*keysym,
921    Status		*status
922);
923
924extern int _XimLocalUtf8LookupString(
925    XIC			 ic,
926    XKeyEvent		*ev,
927    char		*buffer,
928    int			 bytes,
929    KeySym		*keysym,
930    Status		*status
931);
932
933extern Bool _XimThaiFilter(
934    Display		*d,
935    Window		 w,
936    XEvent		*ev,
937    XPointer		 client_data
938);
939
940extern XIC _XimThaiCreateIC(
941    XIM			 im,
942    XIMArg		*values
943);
944
945extern Status _XimThaiCloseIM(
946    XIM			 xim
947);
948
949#ifdef XIM_CONNECTABLE
950extern void _XimSetProtoResource(
951    Xim im
952);
953
954extern Bool _XimConnectServer(
955    Xim im
956);
957
958extern Bool _XimDelayModeSetAttr(
959    Xim			 im
960);
961
962extern void	_XimServerReconectableDestroy(
963    void
964);
965
966extern Bool _XimReCreateIC(
967    Xic			ic
968);
969
970extern Bool _XimEncodeSavedIMATTRIBUTE(
971    Xim			 im,
972    XIMResourceList	 res_list,
973    unsigned int	 res_num,
974    int			*idx,
975    char		*buf,
976    int			 size,
977    int			*ret_len,
978    XPointer		 top,
979    unsigned long	 mode
980);
981
982extern Bool _XimEncodeSavedICATTRIBUTE(
983    Xic			 ic,
984    XIMResourceList	 res_list,
985    unsigned int	 res_num,
986    int			*idx,
987    char		*buf,
988    int			 size,
989    int			*ret_len,
990    XPointer		 top,
991    unsigned long	 mode
992);
993#endif
994
995extern Public Bool
996_XimRegisterDispatcher(
997    Xim          im,
998    Bool         (*callback)(
999                             Xim, INT16, XPointer, XPointer
1000                             ),
1001    XPointer     call_data);
1002
1003extern Public Bool
1004_XimRespSyncReply(
1005    Xic          ic,
1006    BITMASK16    mode);
1007
1008#endif /* _XIMINT_H */
1009