1 /******************************************************************
3 Copyright 1992, 1993, 1994 by FUJITSU LIMITED
4 Copyright 1993, 1994 by Sony Corporation
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.
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.
26 Author: Takashi Fujiwara FUJITSU LIMITED
27 fujiwara@a80.tech.yk.fujitsu.co.jp
28 Motifier: Makoto Wakamatsu Sony Corporation
31 ******************************************************************/
37 #include <X11/Xutil.h>
40 #define Private static
42 typedef struct _Xim *Xim;
43 typedef struct _Xic *Xic;
55 typedef struct _XimCommonPrivateRec {
56 /* This struct is also inlined in XimLocalPrivateRec, XimProtoPrivateRec. */
62 XlcConv cstoutf8_conv;
64 XlcConv ucstoutf8_conv;
65 } XimCommonPrivateRec;
67 typedef union _XIMPrivateRec {
68 XimCommonPrivateRec common;
69 XimLocalPrivateRec local;
70 XimProtoPrivateRec proto;
79 XIMPrivateRec private;
85 typedef union _XICPrivateRec {
86 XicLocalPrivateRec local;
87 XicProtoPrivateRec proto;
96 XICPrivateRec private;
99 typedef struct _XimDefIMValues {
100 XIMValuesList *im_values_list;
101 XIMValuesList *ic_values_list;
103 XIMCallback destroy_callback;
106 Bool visible_position;
109 typedef struct _XimDefICValues {
110 XIMStyle input_style;
111 Window client_window;
113 unsigned long filter_events;
114 XICCallback geometry_callback;
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;
128 #define XIM_MODE_IM_GET (1 << 0)
129 #define XIM_MODE_IM_SET (1 << 1)
130 #define XIM_MODE_IM_DEFAULT (1 << 2)
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)
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)
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)
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)
157 #define XIM_SETIMDEFAULTS (1L << 0)
158 #define XIM_SETIMVALUES (1L << 1)
159 #define XIM_GETIMVALUES (1L << 2)
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)
168 #define XIM_CHECK_VALID 0
169 #define XIM_CHECK_INVALID 1
170 #define XIM_CHECK_ERROR 2
173 #define NOTFILTERD False
175 #define XIMMODIFIER "@im="
177 #define XIM_TRUE True
178 #define XIM_FALSE False
179 #define XIM_OVERFLOW (-1)
181 #define BRL_UC_ROW 0x2800
187 XPointer _XimGetLocaleCode (
188 const char *encoding_name
191 int _XimGetCharCode (
198 unsigned int KeySymToUcs4 (
202 extern Bool _XimSetIMResourceList(
203 XIMResourceList *res_list,
204 unsigned int *list_num
207 extern Bool _XimSetICResourceList(
208 XIMResourceList *res_list,
209 unsigned int *list_num
212 extern Bool _XimSetInnerIMResourceList(
213 XIMResourceList *res_list,
214 unsigned int *list_num
217 extern Bool _XimSetInnerICResourceList(
218 XIMResourceList *res_list,
219 unsigned int *list_num
222 extern Bool _XimCheckCreateICValues(
223 XIMResourceList res_list,
224 unsigned int list_num
227 extern XIMResourceList _XimGetResourceListRec(
228 XIMResourceList res_list,
229 unsigned int list_num,
233 extern void _XimSetIMMode(
234 XIMResourceList res_list,
235 unsigned int list_num
238 extern void _XimSetICMode(
239 XIMResourceList res_list,
240 unsigned int list_num,
244 extern int _XimCheckIMMode(
245 XIMResourceList res_list,
249 extern int _XimCheckICMode(
250 XIMResourceList res_list,
254 extern Bool _XimSetLocalIMDefaults(
257 XIMResourceList res_list,
258 unsigned int list_num
261 extern Bool _XimSetICDefaults(
265 XIMResourceList res_list,
266 unsigned int list_num
269 extern Bool _XimEncodeLocalIMAttr(
275 extern Bool _XimEncodeLocalICAttr(
283 extern Bool _XimCheckLocalInputStyle(
288 XIMResourceList res_list,
289 unsigned int list_num
292 extern Bool _XimDecodeLocalIMAttr(
298 extern Bool _XimDecodeLocalICAttr(
305 extern void _XimGetCurrentIMValues(
307 XimDefIMValues *im_values
310 extern void _XimSetCurrentIMValues(
312 XimDefIMValues *im_values
315 extern void _XimGetCurrentICValues(
317 XimDefICValues *ic_values
320 extern void _XimSetCurrentICValues(
322 XimDefICValues *ic_values
325 extern void _XimInitialResourceInfo(
329 extern void _XimParseStringFile(
334 extern Bool _XimCheckIfLocalProcessing(
338 extern Bool _XimCheckIfThaiProcessing(
342 extern Bool _XimLocalOpenIM(
346 extern Bool _XimThaiOpenIM(
350 extern Bool _XimProtoOpenIM(
354 extern void _XimLocalIMFree(
358 extern void _XimThaiIMFree(
362 extern void _XimProtoIMFree(
366 extern char * _XimSetIMValueData(
370 XIMResourceList res_list,
371 unsigned int list_num
374 extern char * _XimGetIMValueData(
378 XIMResourceList res_list,
379 unsigned int list_num
382 extern char * _XimSetICValueData(
385 XIMResourceList res_list,
386 unsigned int list_num,
392 extern char * _XimGetICValueData(
395 XIMResourceList res_list,
396 unsigned int list_num,
401 extern char * _XimLocalSetIMValues(
406 extern char * _XimLocalGetIMValues(
411 extern XIC _XimLocalCreateIC(
416 extern Bool _XimDispatchInit(
420 extern Bool _XimGetAttributeID(
425 extern Bool _XimExtension(
429 extern void _XimDestroyIMStructureList(
433 extern char * _XimMakeIMAttrIDList(
435 XIMResourceList res_list,
436 unsigned int res_num,
443 extern char * _XimMakeICAttrIDList(
445 XIMResourceList res_list,
446 unsigned int res_num,
453 extern char * _XimDecodeIMATTRIBUTE(
455 XIMResourceList res_list,
456 unsigned int res_num,
463 extern char * _XimDecodeICATTRIBUTE(
465 XIMResourceList res_list,
466 unsigned int res_num,
473 extern Bool _XimRegProtoIntrCallback(
478 Xim, INT16, XPointer, XPointer
483 extern Bool _XimErrorCallback(
490 extern Bool _XimError(
499 extern Bool _XimRegisterTriggerKeysCallback(
506 extern Bool _XimSetEventMaskCallback(
513 extern Bool _XimForwardEventCallback(
520 extern Bool _XimCommitCallback(
527 extern Bool _XimSyncCallback(
534 extern void _XimFreeProtoIntrCallback(
538 extern XIC _XimProtoCreateIC(
543 extern void _XimRegisterServerFilter(
547 extern void _XimUnregisterServerFilter(
551 extern Bool _XimTriggerNotify(
558 extern Bool _XimProcSyncReply(
563 extern void _XimSendSetFocus(
568 extern Bool _XimForwardEvent(
574 extern void _XimFreeRemakeArg(
578 extern void _XimServerDestroy(
582 extern char * _XimEncodeIMATTRIBUTE(
584 XIMResourceList res_list,
585 unsigned int res_num,
595 extern char * _XimEncodeICATTRIBUTE(
597 XIMResourceList res_list,
598 unsigned int res_num,
610 extern Bool _XimExtenMove(
619 extern int _Ximctstombs(
628 extern int _Ximctstowcs(
637 extern int _Ximctstoutf8(
646 extern int _XimLcctstombs(
655 extern int _XimLcctstowcs(
664 extern int _XimLcctstoutf8(
673 extern char _XimGetMyEndian(
677 extern int _XimCheckDataSize(
682 extern void _XimSetHeader(
689 extern Bool _XimSync(
694 extern int _XimProtoMbLookupString(
703 extern int _XimProtoWcLookupString(
712 extern int _XimProtoUtf8LookupString(
721 extern void _XimRegisterFilter(
725 extern void _XimUnregisterFilter(
729 extern void _XimReregisterFilter(
733 extern Status _XimProtoEventToWire(
739 extern Bool _XimProtoWireToEvent(
746 extern Bool _XimExtForwardKeyEvent(
753 extern int _XimLookupMBText(
759 XComposeStatus *status
762 extern int _XimLookupWCText(
768 XComposeStatus *status
771 extern int _XimLookupUTF8Text(
777 XComposeStatus *status
780 extern EVENTMASK _XimGetWindowEventmask(
784 extern Xic _XimICOfXICID(
789 extern void _XimResetIMInstantiateCallback(
793 extern Bool _XimRegisterIMInstantiateCallback(
803 extern Bool _XimUnRegisterIMInstantiateCallback(
813 extern void _XimFreeCommitInfo(
817 extern Bool _XimConnect(
821 extern Bool _XimShutdown(
825 extern Bool _XimWrite(
831 extern Bool _XimRead(
837 Xim, INT16, XPointer, XPointer
842 extern void _XimFlush(
846 extern Bool _XimFilterWaitEvent(
850 extern void _XimProcError(
857 extern CARD32 _XimExtenArgCheck(
862 extern Bool _XimCbDispatch(
869 extern Bool _XimLocalFilter(
876 extern XIMResourceList _XimGetResourceListRecByQuark(
877 XIMResourceList res_list,
878 unsigned int list_num,
882 extern Bool _XimReconnectModeCreateIC(
886 extern char *_XimLocalSetICValues(
891 extern char * _XimLocalGetICValues(
896 extern int _XimLocalMbLookupString(
905 extern int _XimLocalWcLookupString(
914 extern int _XimLocalUtf8LookupString(
923 extern Bool _XimThaiFilter(
930 extern XIC _XimThaiCreateIC(
935 extern Status _XimThaiCloseIM(
939 #ifdef XIM_CONNECTABLE
940 extern void _XimSetProtoResource(
944 extern Bool _XimConnectServer(
948 extern Bool _XimDelayModeSetAttr(
952 extern void _XimServerReconectableDestroy(
956 extern Bool _XimReCreateIC(
960 extern Bool _XimEncodeSavedIMATTRIBUTE(
962 XIMResourceList res_list,
963 unsigned int res_num,
972 extern Bool _XimEncodeSavedICATTRIBUTE(
974 XIMResourceList res_list,
975 unsigned int res_num,
986 _XimRegisterDispatcher(
989 Xim, INT16, XPointer, XPointer
998 #endif /* _XIMINT_H */