home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / evbl0627.zip / everblue_20010627.zip / x11 / XimProto.h < prev    next >
C/C++ Source or Header  |  1999-11-02  |  6KB  |  228 lines

  1. /* $XConsortium: XimProto.h,v 1.4 94/09/01 18:44:49 kaleb Exp $ */
  2. /******************************************************************
  3.  
  4.            Copyright 1992, 1993 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. ******************************************************************/
  29.  
  30. #ifndef _XIMPROTO_H
  31. #define _XIMPROTO_H
  32.  
  33. /*
  34.  * Default Preconnection selection target
  35.  */
  36. #define XIM_SERVERS        "XIM_SERVERS"
  37. #define XIM_LOCALES        "LOCALES"
  38. #define XIM_TRANSPORT        "TRANSPORT"
  39.  
  40. /*
  41.  * categories in XIM_SERVERS
  42.  */
  43. #define XIM_SERVER_CATEGORY    "@server="
  44. #define XIM_LOCAL_CATEGORY    "@locale="
  45. #define XIM_TRANSPORT_CATEGORY    "@transport="
  46.  
  47. /*
  48.  * Xim implementation revision
  49.  */
  50. #define PROTOCOLMAJORVERSION        1
  51. #define PROTOCOLMINORVERSION        0
  52.  
  53. /*
  54.  * Major Protocol number
  55.  */
  56. #define    XIM_CONNECT              1
  57. #define    XIM_CONNECT_REPLY          2
  58. #define    XIM_DISCONNECT              3
  59. #define    XIM_DISCONNECT_REPLY          4
  60.  
  61. #define XIM_AUTH_REQUIRED         10
  62. #define XIM_AUTH_REPLY             11
  63. #define XIM_AUTH_NEXT             12
  64. #define XIM_AUTH_SETUP             13
  65. #define XIM_AUTH_NG             14
  66.  
  67. #define    XIM_ERROR             20
  68.  
  69. #define    XIM_OPEN             30
  70. #define    XIM_OPEN_REPLY             31
  71. #define    XIM_CLOSE             32
  72. #define    XIM_CLOSE_REPLY             33
  73. #define    XIM_REGISTER_TRIGGERKEYS     34
  74. #define    XIM_TRIGGER_NOTIFY         35
  75. #define    XIM_TRIGGER_NOTIFY_REPLY     36
  76. #define    XIM_SET_EVENT_MASK         37
  77. #define    XIM_ENCODING_NEGOTIATION     38
  78. #define    XIM_ENCODING_NEGOTIATION_REPLY     39
  79. #define    XIM_QUERY_EXTENSION         40
  80. #define    XIM_QUERY_EXTENSION_REPLY     41
  81. #define    XIM_SET_IM_VALUES         42
  82. #define    XIM_SET_IM_VALUES_REPLY         43
  83. #define    XIM_GET_IM_VALUES         44
  84. #define    XIM_GET_IM_VALUES_REPLY         45
  85.  
  86. #define XIM_CREATE_IC             50
  87. #define    XIM_CREATE_IC_REPLY         51
  88. #define    XIM_DESTROY_IC             52
  89. #define    XIM_DESTROY_IC_REPLY         53
  90. #define XIM_SET_IC_VALUES         54
  91. #define    XIM_SET_IC_VALUES_REPLY         55
  92. #define XIM_GET_IC_VALUES         56
  93. #define XIM_GET_IC_VALUES_REPLY         57
  94. #define    XIM_SET_IC_FOCUS         58
  95. #define    XIM_UNSET_IC_FOCUS         59
  96. #define    XIM_FORWARD_EVENT         60
  97. #define    XIM_SYNC             61
  98. #define    XIM_SYNC_REPLY             62
  99. #define    XIM_COMMIT             63
  100. #define    XIM_RESET_IC             64
  101. #define    XIM_RESET_IC_REPLY         65
  102.  
  103. #define    XIM_GEOMETRY             70
  104. #define    XIM_STR_CONVERSION         71
  105. #define    XIM_STR_CONVERSION_REPLY     72
  106. #define    XIM_PREEDIT_START         73
  107. #define    XIM_PREEDIT_START_REPLY         74
  108. #define    XIM_PREEDIT_DRAW         75
  109. #define    XIM_PREEDIT_CARET         76
  110. #define XIM_PREEDIT_CARET_REPLY         77
  111. #define    XIM_PREEDIT_DONE         78
  112. #define    XIM_STATUS_START         79
  113. #define    XIM_STATUS_DRAW             80
  114. #define    XIM_STATUS_DONE             81
  115. #define    XIM_PREEDITSTATE         82
  116.  
  117. /*
  118.  * values for the flag of XIM_ERROR
  119.  */
  120. #define    XIM_IMID_VALID            0x0001
  121. #define    XIM_ICID_VALID            0x0002
  122.  
  123. /*
  124.  * XIM Error Code
  125.  */
  126. #define XIM_BadAlloc            1
  127. #define XIM_BadStyle            2
  128. #define XIM_BadClientWindow        3
  129. #define XIM_BadFocusWindow        4
  130. #define XIM_BadArea            5
  131. #define XIM_BadSpotLocation        6
  132. #define XIM_BadColormap            7
  133. #define XIM_BadAtom            8
  134. #define XIM_BadPixel            9
  135. #define XIM_BadPixmap            10
  136. #define XIM_BadName            11
  137. #define XIM_BadCursor            12
  138. #define XIM_BadProtocol            13
  139. #define XIM_BadForeground        14
  140. #define XIM_BadBackground        15
  141. #define XIM_LocaleNotSupported        16
  142. #define XIM_BadSomething        999
  143.  
  144. /*
  145.  * byte order
  146.  */
  147. #define BIGENDIAN    (CARD8)0x42    /* MSB first */
  148. #define LITTLEENDIAN    (CARD8)0x6c    /* LSB first */
  149.  
  150. /*
  151.  * values for the type of XIMATTR & XICATTR
  152.  */
  153. #define    XimType_SeparatorOfNestedList    0
  154. #define    XimType_CARD8            1
  155. #define    XimType_CARD16            2
  156. #define    XimType_CARD32            3
  157. #define    XimType_STRING8            4
  158. #define    XimType_Window            5
  159. #define    XimType_XIMStyles        10
  160. #define    XimType_XRectangle        11
  161. #define    XimType_XPoint            12
  162. #define XimType_XFontSet        13
  163. #define XimType_XIMOptions        14
  164. #define XimType_XIMHotKeyTriggers    15
  165. #define XimType_XIMHotKeyState        16
  166. #define XimType_XIMStringConversion    17
  167. #define    XimType_NEST            0x7fff
  168.  
  169. /*
  170.  * values for the category of XIM_ENCODING_NEGITIATON_REPLY
  171.  */
  172. #define    XIM_Encoding_NameCategory    0
  173. #define    XIM_Encoding_DetailCategory    1
  174.  
  175. /*
  176.  * value for the index of XIM_ENCODING_NEGITIATON_REPLY
  177.  */
  178. #define    XIM_Default_Encoding_IDX    -1
  179.  
  180. /*
  181.  * value for the flag of XIM_FORWARD_EVENT, XIM_COMMIT
  182.  */
  183. #define XimSYNCHRONUS          0x0001
  184. #define XimLookupChars          0x0002
  185. #define XimLookupKeySym          0x0004
  186. #define XimLookupBoth          0x0006
  187.  
  188. /*
  189.  * request packet header size
  190.  */
  191. #define XIM_HEADER_SIZE                        \
  192.       sizeof(CARD8)        /* sizeof mejor-opcode */    \
  193.     + sizeof(CARD8)        /* sizeof minor-opcode */    \
  194.     + sizeof(INT16)        /* sizeof length */
  195.  
  196. /*
  197.  * Client Message data size
  198.  */
  199. #define    XIM_CM_DATA_SIZE    20
  200.  
  201. /*
  202.  * XIM data structure
  203.  */
  204. typedef CARD16    BITMASK16;
  205. typedef CARD32    BITMASK32;
  206. typedef CARD32    EVENTMASK;
  207.  
  208. typedef CARD16    XIMID;        /* Input Method ID */
  209. typedef CARD16    XICID;        /* Input Context ID */
  210.  
  211. /*
  212.  * Padding macro
  213.  */
  214. #define    XIM_PAD(length) ((4 - ((length) % 4)) % 4)
  215.  
  216. #define XIM_SET_PAD(ptr, length)                    \
  217.     {                                    \
  218.     register int     Counter = XIM_PAD((int)length);        \
  219.     if (Counter) {                            \
  220.         register char    *Ptr = (char *)(ptr) + (length);    \
  221.         length += Counter;                        \
  222.         for (; Counter; --Counter, ++Ptr)                \
  223.         *Ptr = '\0';                        \
  224.     }                                \
  225.     }
  226.  
  227. #endif /* _XIMPROTO_H */
  228.