Initialize Tizen 2.3
[framework/uifw/xorg/lib/libx11.git] / src / xlibi18n / Ximint.h
1 /******************************************************************
2
3                 Copyright 1992, 1993, 1994 by FUJITSU LIMITED
4                 Copyright 1993, 1994 by Sony Corporation
5
6 Permission to use, copy, modify, distribute, and sell this software
7 and its documentation for any purpose is hereby granted without fee,
8 provided that the above copyright notice appear in all copies and that
9 both that copyright notice and this permission notice appear in
10 supporting documentation, and that the name of FUJITSU LIMITED and
11 Sony Corporation not be used in advertising or publicity pertaining to
12 distribution of the software without specific, written prior
13 permission.  FUJITSU LIMITED and Sony Corporation makes no
14 representations about the suitability of this software for any
15 purpose.  It is provided "as is" without express or implied warranty.
16
17 FUJITSU LIMITED AND SONY CORPORATION DISCLAIM ALL WARRANTIES WITH
18 REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
19 MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU LIMITED AND
20 SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
21 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
22 PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
23 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
24 PERFORMANCE 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
42 typedef struct _Xim     *Xim;
43 typedef 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
55 typedef 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
67 typedef union _XIMPrivateRec {
68     XimCommonPrivateRec  common;
69     XimLocalPrivateRec   local;
70     XimProtoPrivateRec   proto;
71 } XIMPrivateRec;
72
73 /*
74  * IM struct
75  */
76 typedef struct _Xim {
77     XIMMethods          methods;
78     XIMCoreRec          core;
79     XIMPrivateRec       private;
80 } XimRec;
81
82 /*
83  * IC deprndent data
84  */
85 typedef union _XICPrivateRec {
86     XicLocalPrivateRec   local;
87     XicProtoPrivateRec   proto;
88 } XICPrivateRec;
89
90 /*
91  * IC struct
92  */
93 typedef struct _Xic {
94         XICMethods      methods;
95         XICCoreRec      core;
96         XICPrivateRec   private;
97 } XicRec;
98
99 typedef 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
109 typedef 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
187 XPointer _XimGetLocaleCode (
188     const char  *encoding_name
189 );
190
191 int _XimGetCharCode (
192     XPointer            conv,
193     KeySym              keysym,
194     unsigned char       *buf,
195     int                 nbytes
196 );
197
198 unsigned int KeySymToUcs4 (
199     KeySym              keysym
200 );
201
202 extern Bool _XimSetIMResourceList(
203     XIMResourceList     *res_list,
204     unsigned int        *list_num
205 );
206
207 extern Bool _XimSetICResourceList(
208     XIMResourceList     *res_list,
209     unsigned int        *list_num
210 );
211
212 extern Bool _XimSetInnerIMResourceList(
213     XIMResourceList     *res_list,
214     unsigned int        *list_num
215 );
216
217 extern Bool _XimSetInnerICResourceList(
218     XIMResourceList     *res_list,
219     unsigned int        *list_num
220 );
221
222 extern Bool _XimCheckCreateICValues(
223     XIMResourceList      res_list,
224     unsigned int         list_num
225 );
226
227 extern XIMResourceList _XimGetResourceListRec(
228     XIMResourceList      res_list,
229     unsigned int         list_num,
230     const char          *name
231 );
232
233 extern void _XimSetIMMode(
234     XIMResourceList      res_list,
235     unsigned int         list_num
236 );
237
238 extern void _XimSetICMode(
239     XIMResourceList      res_list,
240     unsigned int         list_num,
241     XIMStyle             style
242 );
243
244 extern int _XimCheckIMMode(
245     XIMResourceList      res_list,
246     unsigned long        mode
247 );
248
249 extern int _XimCheckICMode(
250     XIMResourceList      res_list,
251     unsigned long        mode
252 );
253
254 extern Bool _XimSetLocalIMDefaults(
255     Xim                  im,
256     XPointer             top,
257     XIMResourceList      res_list,
258     unsigned int         list_num
259 );
260
261 extern Bool _XimSetICDefaults(
262     Xic                  ic,
263     XPointer             top,
264     unsigned long        mode,
265     XIMResourceList      res_list,
266     unsigned int         list_num
267 );
268
269 extern Bool _XimEncodeLocalIMAttr(
270     XIMResourceList      res,
271     XPointer             top,
272     XPointer             val
273 );
274
275 extern Bool _XimEncodeLocalICAttr(
276     Xic                  ic,
277     XIMResourceList      res,
278     XPointer             top,
279     XIMArg              *arg,
280     unsigned long        mode
281 );
282
283 extern 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
292 extern Bool _XimDecodeLocalIMAttr(
293     XIMResourceList      res,
294     XPointer             top,
295     XPointer             val
296 );
297
298 extern Bool _XimDecodeLocalICAttr(
299     XIMResourceList      res,
300     XPointer             top,
301     XPointer             val,
302     unsigned long       mode
303 );
304
305 extern void _XimGetCurrentIMValues(
306     Xim                  im,
307     XimDefIMValues      *im_values
308 );
309
310 extern void _XimSetCurrentIMValues(
311     Xim                  im,
312     XimDefIMValues      *im_values
313 );
314
315 extern void _XimGetCurrentICValues(
316     Xic                  ic,
317     XimDefICValues      *ic_values
318 );
319
320 extern void _XimSetCurrentICValues(
321     Xic                  ic,
322     XimDefICValues      *ic_values
323 );
324
325 extern void _XimInitialResourceInfo(
326     void
327 );
328
329 extern void      _XimParseStringFile(
330     FILE        *fp,
331     Xim          im
332 );
333
334 extern Bool      _XimCheckIfLocalProcessing(
335     Xim          im
336 );
337
338 extern Bool      _XimCheckIfThaiProcessing(
339     Xim          im
340 );
341
342 extern Bool      _XimLocalOpenIM(
343     Xim          im
344 );
345
346 extern Bool      _XimThaiOpenIM(
347     Xim          im
348 );
349
350 extern Bool      _XimProtoOpenIM(
351     Xim          im
352 );
353
354 extern void      _XimLocalIMFree(
355     Xim          im
356 );
357
358 extern void      _XimThaiIMFree(
359     Xim          im
360 );
361
362 extern void      _XimProtoIMFree(
363     Xim          im
364 );
365
366 extern char *    _XimSetIMValueData(
367     Xim                  im,
368     XPointer             top,
369     XIMArg              *arg,
370     XIMResourceList      res_list,
371     unsigned int         list_num
372 );
373
374 extern char *    _XimGetIMValueData(
375     Xim                  im,
376     XPointer             top,
377     XIMArg              *arg,
378     XIMResourceList      res_list,
379     unsigned int         list_num
380 );
381
382 extern 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
392 extern 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
401 extern char *    _XimLocalSetIMValues(
402     XIM          im,
403     XIMArg      *arg
404 );
405
406 extern char *    _XimLocalGetIMValues(
407     XIM          im,
408     XIMArg      *arg
409 );
410
411 extern XIC       _XimLocalCreateIC(
412     XIM          im,
413     XIMArg      *arg
414 );
415
416 extern Bool     _XimDispatchInit(
417     Xim          im
418 );
419
420 extern Bool      _XimGetAttributeID(
421     Xim          im,
422     CARD16      *buf
423 );
424
425 extern Bool      _XimExtension(
426     Xim          im
427 );
428
429 extern void     _XimDestroyIMStructureList(
430     Xim          im
431 );
432
433 extern 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
443 extern 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
453 extern 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
463 extern 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
473 extern 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
483 extern Bool     _XimErrorCallback(
484     Xim          im,
485     INT16        len,
486     XPointer     data,
487     XPointer     call_data
488 );
489
490 extern Bool     _XimError(
491     Xim          im,
492     Xic          ic,
493     CARD16       error_code,
494     INT16        detail_length,
495     CARD16       type,
496     char        *detail
497 );
498
499 extern Bool     _XimRegisterTriggerKeysCallback(
500     Xim          im,
501     INT16        len,
502     XPointer     data,
503     XPointer     call_data
504 );
505
506 extern Bool     _XimSetEventMaskCallback(
507     Xim          im,
508     INT16        len,
509     XPointer     data,
510     XPointer     call_data
511 );
512
513 extern Bool     _XimForwardEventCallback(
514     Xim          im,
515     INT16        len,
516     XPointer     data,
517     XPointer     call_data
518 );
519
520 extern Bool     _XimCommitCallback(
521     Xim          im,
522     INT16        len,
523     XPointer     data,
524     XPointer     call_data
525 );
526
527 extern Bool     _XimSyncCallback(
528     Xim          im,
529     INT16        len,
530     XPointer     data,
531     XPointer     call_data
532 );
533
534 extern void     _XimFreeProtoIntrCallback(
535     Xim          im
536 );
537
538 extern XIC       _XimProtoCreateIC(
539     XIM          im,
540     XIMArg      *arg
541 );
542
543 extern void     _XimRegisterServerFilter(
544     Xim          im
545 );
546
547 extern void     _XimUnregisterServerFilter(
548     Xim          im
549 );
550
551 extern Bool     _XimTriggerNotify(
552     Xim          im,
553     Xic          ic,
554     int          mode,
555     CARD32       idx
556 );
557
558 extern Bool     _XimProcSyncReply(
559     Xim          im,
560     Xic          ic
561 );
562
563 extern void     _XimSendSetFocus(
564     Xim          im,
565     Xic          ic
566 );
567
568 extern Bool     _XimForwardEvent(
569     Xic          ic,
570     XEvent      *ev,
571     Bool         sync
572 );
573
574 extern void     _XimFreeRemakeArg(
575     XIMArg      *arg
576 );
577
578 extern void     _XimServerDestroy(
579     Xim                 im
580 );
581
582 extern 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
595 extern 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
610 extern Bool     _XimExtenMove(
611     Xim          im,
612     Xic          ic,
613     CARD32       flag,
614     CARD16      *buf,
615     INT16        length
616 );
617 #endif
618
619 extern int      _Ximctstombs(
620     XIM          im,
621     char        *from,
622     int          from_len,
623     char        *to,
624     int          to_len,
625     Status      *state
626 );
627
628 extern 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
637 extern int      _Ximctstoutf8(
638     XIM          im,
639     char        *from,
640     int          from_len,
641     char        *to,
642     int          to_len,
643     Status      *state
644 );
645
646 extern int      _XimLcctstombs(
647     XIM          im,
648     char        *from,
649     int          from_len,
650     char        *to,
651     int          to_len,
652     Status      *state
653 );
654
655 extern 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
664 extern int      _XimLcctstoutf8(
665     XIM          im,
666     char        *from,
667     int          from_len,
668     char        *to,
669     int          to_len,
670     Status      *state
671 );
672
673 extern char _XimGetMyEndian(
674     void
675 );
676
677 extern int      _XimCheckDataSize(
678     XPointer     buf,
679     int          len
680 );
681
682 extern void     _XimSetHeader(
683     XPointer     buf,
684     CARD8        major_opcode,
685     CARD8        minor_opcode,
686     INT16       *len
687 );
688
689 extern Bool     _XimSync(
690     Xim          im,
691     Xic          ic
692 );
693
694 extern int      _XimProtoMbLookupString(
695     XIC          xic,
696     XKeyEvent   *ev,
697     char        *buffer,
698     int          bytes,
699     KeySym      *keysym,
700     Status      *state
701 );
702
703 extern int      _XimProtoWcLookupString(
704     XIC          xic,
705     XKeyEvent   *ev,
706     wchar_t     *buffer,
707     int          bytes,
708     KeySym      *keysym,
709     Status      *state
710 );
711
712 extern int      _XimProtoUtf8LookupString(
713     XIC          xic,
714     XKeyEvent   *ev,
715     char        *buffer,
716     int          bytes,
717     KeySym      *keysym,
718     Status      *state
719 );
720
721 extern void     _XimRegisterFilter(
722     Xic          ic
723 );
724
725 extern void     _XimUnregisterFilter(
726     Xic          ic
727 );
728
729 extern void     _XimReregisterFilter(
730     Xic          ic
731 );
732
733 extern Status   _XimProtoEventToWire(
734     XEvent      *re,
735     xEvent      *event,
736     Bool        sw
737 );
738
739 extern Bool     _XimProtoWireToEvent(
740     XEvent      *re,
741     xEvent      *event,
742     Bool         sw
743 );
744
745 #ifdef EXT_FORWARD
746 extern Bool     _XimExtForwardKeyEvent(
747     Xic          ic,
748     XKeyEvent   *ev,
749     Bool         sync
750 );
751 #endif
752
753 extern int      _XimLookupMBText(
754     Xic                  ic,
755     XKeyEvent           *event,
756     char                *buffer,
757     int                  nbytes,
758     KeySym              *keysym,
759     XComposeStatus      *status
760 );
761
762 extern int      _XimLookupWCText(
763     Xic                  ic,
764     XKeyEvent           *event,
765     wchar_t             *buffer,
766     int                  nbytes,
767     KeySym              *keysym,
768     XComposeStatus      *status
769 );
770
771 extern int      _XimLookupUTF8Text(
772     Xic                  ic,
773     XKeyEvent           *event,
774     char                *buffer,
775     int                  nbytes,
776     KeySym              *keysym,
777     XComposeStatus      *status
778 );
779
780 extern EVENTMASK        _XimGetWindowEventmask(
781     Xic          ic
782 );
783
784 extern Xic      _XimICOfXICID(
785     Xim         im,
786     XICID       icid
787 );
788
789 extern void     _XimResetIMInstantiateCallback(
790     Xim         xim
791 );
792
793 extern 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
803 extern 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
813 extern void     _XimFreeCommitInfo(
814     Xic          ic
815 );
816
817 extern Bool     _XimConnect(
818     Xim          im
819 );
820
821 extern Bool     _XimShutdown(
822     Xim          im
823 );
824
825 extern Bool     _XimWrite(
826     Xim          im,
827     INT16        len,
828     XPointer     data
829 );
830
831 extern 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
842 extern void     _XimFlush(
843     Xim          im
844 );
845
846 extern Bool     _XimFilterWaitEvent(
847     Xim          im
848 );
849
850 extern void   _XimProcError(
851     Xim         im,
852     Xic         ic,
853     XPointer    data
854 );
855
856 #ifdef EXT_MOVE
857 extern CARD32   _XimExtenArgCheck(
858     XIMArg      *arg
859 );
860 #endif
861
862 extern Bool _XimCbDispatch(
863     Xim im,
864     INT16 len,
865     XPointer data,
866     XPointer call_data
867 );
868
869 extern Bool _XimLocalFilter(
870     Display             *d,
871     Window               w,
872     XEvent              *ev,
873     XPointer             client_data
874 );
875
876 extern XIMResourceList _XimGetResourceListRecByQuark(
877     XIMResourceList      res_list,
878     unsigned int         list_num,
879     XrmQuark             quark
880 );
881
882 extern Bool _XimReconnectModeCreateIC(
883     Xic                  ic
884 );
885
886 extern char *_XimLocalSetICValues(
887     XIC                  ic,
888     XIMArg              *values
889 );
890
891 extern char * _XimLocalGetICValues(
892     XIC                  ic,
893     XIMArg              *values
894 );
895
896 extern int _XimLocalMbLookupString(
897     XIC                  ic,
898     XKeyEvent           *ev,
899     char                *buffer,
900     int                  bytes,
901     KeySym              *keysym,
902     Status              *status
903 );
904
905 extern int _XimLocalWcLookupString(
906     XIC                  ic,
907     XKeyEvent           *ev,
908     wchar_t             *buffer,
909     int                  bytes,
910     KeySym              *keysym,
911     Status              *status
912 );
913
914 extern int _XimLocalUtf8LookupString(
915     XIC                  ic,
916     XKeyEvent           *ev,
917     char                *buffer,
918     int                  bytes,
919     KeySym              *keysym,
920     Status              *status
921 );
922
923 extern Bool _XimThaiFilter(
924     Display             *d,
925     Window               w,
926     XEvent              *ev,
927     XPointer             client_data
928 );
929
930 extern XIC _XimThaiCreateIC(
931     XIM                  im,
932     XIMArg              *values
933 );
934
935 extern Status _XimThaiCloseIM(
936     XIM                  xim
937 );
938
939 #ifdef XIM_CONNECTABLE
940 extern void _XimSetProtoResource(
941     Xim im
942 );
943
944 extern Bool _XimConnectServer(
945     Xim im
946 );
947
948 extern Bool _XimDelayModeSetAttr(
949     Xim                  im
950 );
951
952 extern void     _XimServerReconectableDestroy(
953     void
954 );
955
956 extern Bool _XimReCreateIC(
957     Xic                 ic
958 );
959
960 extern 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
972 extern 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
985 extern Public Bool
986 _XimRegisterDispatcher(
987     Xim          im,
988     Bool         (*callback)(
989                              Xim, INT16, XPointer, XPointer
990                              ),
991     XPointer     call_data);
992
993 extern Public Bool
994 _XimRespSyncReply(
995     Xic          ic,
996     BITMASK16    mode);
997
998 #endif /* _XIMINT_H */