#ifndef _XIMPROTO_H
#define _XIMPROTO_H
#define XIM_SERVERS "XIM_SERVERS"
#define XIM_LOCALES "LOCALES"
#define XIM_TRANSPORT "TRANSPORT"
#define XIM_SERVER_CATEGORY "@server="
#define XIM_LOCAL_CATEGORY "@locale="
#define XIM_TRANSPORT_CATEGORY "@transport="
#define PROTOCOLMAJORVERSION 1
#define PROTOCOLMINORVERSION 0
#define XIM_CONNECT 1
#define XIM_CONNECT_REPLY 2
#define XIM_DISCONNECT 3
#define XIM_DISCONNECT_REPLY 4
#define XIM_AUTH_REQUIRED 10
#define XIM_AUTH_REPLY 11
#define XIM_AUTH_NEXT 12
#define XIM_AUTH_SETUP 13
#define XIM_AUTH_NG 14
#define XIM_ERROR 20
#define XIM_OPEN 30
#define XIM_OPEN_REPLY 31
#define XIM_CLOSE 32
#define XIM_CLOSE_REPLY 33
#define XIM_REGISTER_TRIGGERKEYS 34
#define XIM_TRIGGER_NOTIFY 35
#define XIM_TRIGGER_NOTIFY_REPLY 36
#define XIM_SET_EVENT_MASK 37
#define XIM_ENCODING_NEGOTIATION 38
#define XIM_ENCODING_NEGOTIATION_REPLY 39
#define XIM_QUERY_EXTENSION 40
#define XIM_QUERY_EXTENSION_REPLY 41
#define XIM_SET_IM_VALUES 42
#define XIM_SET_IM_VALUES_REPLY 43
#define XIM_GET_IM_VALUES 44
#define XIM_GET_IM_VALUES_REPLY 45
#define XIM_CREATE_IC 50
#define XIM_CREATE_IC_REPLY 51
#define XIM_DESTROY_IC 52
#define XIM_DESTROY_IC_REPLY 53
#define XIM_SET_IC_VALUES 54
#define XIM_SET_IC_VALUES_REPLY 55
#define XIM_GET_IC_VALUES 56
#define XIM_GET_IC_VALUES_REPLY 57
#define XIM_SET_IC_FOCUS 58
#define XIM_UNSET_IC_FOCUS 59
#define XIM_FORWARD_EVENT 60
#define XIM_SYNC 61
#define XIM_SYNC_REPLY 62
#define XIM_COMMIT 63
#define XIM_RESET_IC 64
#define XIM_RESET_IC_REPLY 65
#define XIM_GEOMETRY 70
#define XIM_STR_CONVERSION 71
#define XIM_STR_CONVERSION_REPLY 72
#define XIM_PREEDIT_START 73
#define XIM_PREEDIT_START_REPLY 74
#define XIM_PREEDIT_DRAW 75
#define XIM_PREEDIT_CARET 76
#define XIM_PREEDIT_CARET_REPLY 77
#define XIM_PREEDIT_DONE 78
#define XIM_STATUS_START 79
#define XIM_STATUS_DRAW 80
#define XIM_STATUS_DONE 81
#define XIM_PREEDITSTATE 82
#define XIM_IMID_VALID 0x0001
#define XIM_ICID_VALID 0x0002
#define XIM_BadAlloc 1
#define XIM_BadStyle 2
#define XIM_BadClientWindow 3
#define XIM_BadFocusWindow 4
#define XIM_BadArea 5
#define XIM_BadSpotLocation 6
#define XIM_BadColormap 7
#define XIM_BadAtom 8
#define XIM_BadPixel 9
#define XIM_BadPixmap 10
#define XIM_BadName 11
#define XIM_BadCursor 12
#define XIM_BadProtocol 13
#define XIM_BadForeground 14
#define XIM_BadBackground 15
#define XIM_LocaleNotSupported 16
#define XIM_BadSomething 999
#define BIGENDIAN (CARD8)0x42
#define LITTLEENDIAN (CARD8)0x6c
#define XimType_SeparatorOfNestedList 0
#define XimType_CARD8 1
#define XimType_CARD16 2
#define XimType_CARD32 3
#define XimType_STRING8 4
#define XimType_Window 5
#define XimType_XIMStyles 10
#define XimType_XRectangle 11
#define XimType_XPoint 12
#define XimType_XFontSet 13
#define XimType_XIMOptions 14
#define XimType_XIMHotKeyTriggers 15
#define XimType_XIMHotKeyState 16
#define XimType_XIMStringConversion 17
#define XimType_NEST 0x7fff
#define XIM_Encoding_NameCategory 0
#define XIM_Encoding_DetailCategory 1
#define XIM_Default_Encoding_IDX -1
#define XimSYNCHRONUS 0x0001
#define XimLookupChars 0x0002
#define XimLookupKeySym 0x0004
#define XimLookupBoth 0x0006
#define XIM_HEADER_SIZE \
sizeof(CARD8) \
+ sizeof(CARD8) \
+ sizeof(INT16)
#define XIM_CM_DATA_SIZE 20
typedef CARD16 BITMASK16;
typedef CARD32 BITMASK32;
typedef CARD32 EVENTMASK;
typedef CARD16 XIMID;
typedef CARD16 XICID;
#define XIM_PAD(length) ((4 - ((length) % 4)) % 4)
#define XIM_SET_PAD(ptr, length) \
{ \
register int Counter = XIM_PAD((int)length); \
if (Counter) { \
register char *Ptr = (char *)(ptr) + (length); \
length += Counter; \
for (; Counter; --Counter, ++Ptr) \
*Ptr = '\0'; \
} \
}
#endif