1 /* $XConsortium: XimProto.h,v 1.2 94/01/20 18:02:24 rws Exp $ */ 2 /****************************************************************** 3 4 Copyright 1992, 1993, 1994 by FUJITSU LIMITED 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 9 that both that copyright notice and this permission notice appear 10 in supporting documentation, and that the name of FUJITSU LIMITED 11 not be used in advertising or publicity pertaining to distribution 12 of the software without specific, written prior permission. 13 FUJITSU LIMITED makes no representations about the suitability of 14 this software for any purpose. 15 It is provided "as is" without express or implied warranty. 16 17 FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 18 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 19 EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR 20 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 21 USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 22 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 23 PERFORMANCE OF THIS SOFTWARE. 24 25 Author: Takashi Fujiwara FUJITSU LIMITED 26 fujiwara@a80.tech.yk.fujitsu.co.jp 27 28 This version tidied and debugged by Steve Underwood May 1999 29 30 ******************************************************************/ 31 32 #ifndef _XIMPROTO_H 33 #define _XIMPROTO_H 34 35 /* 36 * Default Preconnection selection target 37 */ 38 #define XIM_SERVERS "XIM_SERVERS" 39 #define XIM_LOCALES "LOCALES" 40 #define XIM_TRANSPORT "TRANSPORT" 41 42 /* 43 * categories in XIM_SERVERS 44 */ 45 #define XIM_SERVER_CATEGORY "@server=" 46 #define XIM_LOCAL_CATEGORY "@locale=" 47 #define XIM_TRANSPORT_CATEGORY "@transport=" 48 49 /* 50 * Xim implementation revision 51 */ 52 #define PROTOCOLMAJORVERSION 0 53 #define PROTOCOLMINORVERSION 0 54 55 /* 56 * Major Protocol number 57 */ 58 #define XIM_CONNECT 1 59 #define XIM_CONNECT_REPLY 2 60 #define XIM_DISCONNECT 3 61 #define XIM_DISCONNECT_REPLY 4 62 63 #define XIM_AUTH_REQUIRED 10 64 #define XIM_AUTH_REPLY 11 65 #define XIM_AUTH_NEXT 12 66 #define XIM_AUTH_SETUP 13 67 #define XIM_AUTH_NG 14 68 69 #define XIM_ERROR 20 70 71 #define XIM_OPEN 30 72 #define XIM_OPEN_REPLY 31 73 #define XIM_CLOSE 32 74 #define XIM_CLOSE_REPLY 33 75 #define XIM_REGISTER_TRIGGERKEYS 34 76 #define XIM_TRIGGER_NOTIFY 35 77 #define XIM_TRIGGER_NOTIFY_REPLY 36 78 #define XIM_SET_EVENT_MASK 37 79 #define XIM_ENCODING_NEGOTIATION 38 80 #define XIM_ENCODING_NEGOTIATION_REPLY 39 81 #define XIM_QUERY_EXTENSION 40 82 #define XIM_QUERY_EXTENSION_REPLY 41 83 #define XIM_SET_IM_VALUES 42 84 #define XIM_SET_IM_VALUES_REPLY 43 85 #define XIM_GET_IM_VALUES 44 86 #define XIM_GET_IM_VALUES_REPLY 45 87 88 #define XIM_CREATE_IC 50 89 #define XIM_CREATE_IC_REPLY 51 90 #define XIM_DESTROY_IC 52 91 #define XIM_DESTROY_IC_REPLY 53 92 #define XIM_SET_IC_VALUES 54 93 #define XIM_SET_IC_VALUES_REPLY 55 94 #define XIM_GET_IC_VALUES 56 95 #define XIM_GET_IC_VALUES_REPLY 57 96 #define XIM_SET_IC_FOCUS 58 97 #define XIM_UNSET_IC_FOCUS 59 98 #define XIM_FORWARD_EVENT 60 99 #define XIM_SYNC 61 100 #define XIM_SYNC_REPLY 62 101 #define XIM_COMMIT 63 102 #define XIM_RESET_IC 64 103 #define XIM_RESET_IC_REPLY 65 104 105 #define XIM_GEOMETRY 70 106 #define XIM_STR_CONVERSION 71 107 #define XIM_STR_CONVERSION_REPLY 72 108 #define XIM_PREEDIT_START 73 109 #define XIM_PREEDIT_START_REPLY 74 110 #define XIM_PREEDIT_DRAW 75 111 #define XIM_PREEDIT_CARET 76 112 #define XIM_PREEDIT_CARET_REPLY 77 113 #define XIM_PREEDIT_DONE 78 114 #define XIM_STATUS_START 79 115 #define XIM_STATUS_DRAW 80 116 #define XIM_STATUS_DONE 81 117 118 /* 119 * values for the flag of XIM_ERROR 120 */ 121 #define XIM_IMID_VALID 0x0001 122 #define XIM_ICID_VALID 0x0002 123 124 /* 125 * XIM Error Code 126 */ 127 #define XIM_BadAlloc 1 128 #define XIM_BadStyle 2 129 #define XIM_BadClientWindow 3 130 #define XIM_BadFocusWindow 4 131 #define XIM_BadArea 5 132 #define XIM_BadSpotLocation 6 133 #define XIM_BadColormap 7 134 #define XIM_BadAtom 8 135 #define XIM_BadPixel 9 136 #define XIM_BadPixmap 10 137 #define XIM_BadName 11 138 #define XIM_BadCursor 12 139 #define XIM_BadProtocol 13 140 #define XIM_BadForeground 14 141 #define XIM_BadBackground 15 142 #define XIM_LocaleNotSupported 16 143 #define XIM_BadSomething 999 144 145 /* 146 * byte order 147 */ 148 #define BIGENDIAN (CARD8) 0x42 /* MSB first */ 149 #define LITTLEENDIAN (CARD8) 0x6c /* LSB first */ 150 151 /* 152 * values for the type of XIMATTR & XICATTR 153 */ 154 #define XimType_SeparatorOfNestedList 0 155 #define XimType_CARD8 1 156 #define XimType_CARD16 2 157 #define XimType_CARD32 3 158 #define XimType_STRING8 4 159 #define XimType_Window 5 160 #define XimType_XIMStyles 10 161 #define XimType_XRectangle 11 162 #define XimType_XPoint 12 163 #define XimType_XFontSet 13 164 #define XimType_XIMOptions 14 165 #define XimType_XIMHotKeyTriggers 15 166 #define XimType_XIMHotKeyState 16 167 #define XimType_XIMStringConversion 17 168 #define XimType_XIMValuesList 18 169 #define XimType_NEST 0x7FFF 170 171 /* 172 * values for the category of XIM_ENCODING_NEGOTIATON_REPLY 173 */ 174 #define XIM_Encoding_NameCategory 0 175 #define XIM_Encoding_DetailCategory 1 176 177 /* 178 * value for the index of XIM_ENCODING_NEGOTIATON_REPLY 179 */ 180 #define XIM_Default_Encoding_IDX -1 181 182 /* 183 * value for the flag of XIM_FORWARD_EVENT, XIM_COMMIT 184 */ 185 #define XimSYNCHRONUS 0x0001 186 #define XimLookupChars 0x0002 187 #define XimLookupKeySym 0x0004 188 #define XimLookupBoth 0x0006 189 190 /* 191 * request packet header size 192 */ 193 #define XIM_HEADER_SIZE \ 194 sizeof(CARD8) /* sizeof mejor-opcode */ \ 195 + sizeof(CARD8) /* sizeof minor-opcode */ \ 196 + sizeof(INT16) /* sizeof length */ 197 198 /* 199 * Client Message data size 200 */ 201 #define XIM_CM_DATA_SIZE 20 202 203 /* 204 * XIM data structure 205 */ 206 typedef CARD16 BITMASK16; 207 typedef CARD32 BITMASK32; 208 typedef CARD32 EVENTMASK; 209 210 typedef CARD16 XIMID; /* Input Method ID */ 211 typedef CARD16 XICID; /* Input Context ID */ 212 213 /* 214 * Padding macro 215 */ 216 #define XIM_PAD(length) ((4 - ((length) % 4)) % 4) 217 218 #define XIM_SET_PAD(ptr, length) \ 219 { \ 220 register int Counter = XIM_PAD((int)length); \ 221 if (Counter) { \ 222 register char *Ptr = (char *)(ptr) + (length); \ 223 length += Counter; \ 224 for (; Counter; --Counter, ++Ptr) \ 225 *Ptr = '\0'; \ 226 } \ 227 } 228 229 #endif 230 231