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