1 /* 2 * $XConsortium: XIMproto.h,v 1.4 91/06/05 08:24:13 rws Exp $ 3 */ 4 5 /* 6 * FreeWnn is a network-extensible Kana-to-Kanji conversion system. 7 * This file is part of FreeWnn. 8 * 9 * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999 10 * Copyright 1991 by the Massachusetts Institute of Technology 11 * 12 * Author: OMRON SOFTWARE Co., Ltd. <freewnn@rd.kyoto.omronsoft.co.jp> 13 * 14 * This program is free software; you can redistribute it and/or modify 15 * it under the terms of the GNU General Public License as published by 16 * the Free Software Foundation; either version 2, or (at your option) 17 * any later version. 18 * 19 * This program is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * GNU General Public License for more details. 23 * 24 * You should have received a copy of the GNU General Public License 25 * along with GNU Emacs; see the file COPYING. If not, write to the 26 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 27 * 28 * Commentary: 29 * 30 * Change log: 31 * 32 * Last modified date: 8,Feb.1999 33 * 34 * Code: 35 * 36 */ 37 38 #ifndef XIMPROTO_H 39 #define XIMPROTO_H 40 41 #include <X11/Xmd.h> 42 43 /* 44 * Define constants for the sizes of the network packets. The sz_ prefix is 45 * used instead of something more descriptive so that the symbols are no more 46 * than 32 characters in length (which causes problems for some compilers). 47 */ 48 49 #define XIM_MAJOR_VERSION 4 50 #define XIM_MINOR_VERSION 0 51 52 #define sz_ximRequestHeader 4 53 #define sz_ximNormalReply 4 54 55 #define sz_ximConnClient 4 56 #define sz_ximGetIMReq 8 57 #define sz_ximGetIMReply 8 58 #define sz_ximCreateICReq 4 59 #define sz_ximCreateICReply 8 60 #define sz_ximChangeICReq 8 61 #define sz_ximChangeICReply sz_ximNormalReply 62 #define sz_ximGetICReq 12 63 #define sz_ximGetICReply sz_ximNormalReply 64 #define sz_ximICValuesReq 28 65 #define sz_ximICAttributesReq 48 66 #define sz_ximDestroyICReq 8 67 #define sz_ximICFocusReq 8 68 #define sz_ximResetICReq 8 69 70 #define sz_ximEventReq 8 71 #define sz_ximEventReply 8 72 #define sz_ximReturnReply 8 73 74 /* For Callback */ 75 #define sz_ximPreDrawReply 16 76 #define sz_ximPreCaretReply 8 77 #define sz_ximStatusDrawReply 12 78 79 #define Window CARD32 80 #define Atom CARD32 81 #define Colormap CARD32 82 #define Pixmap CARD32 83 #define Cursor CARD32 84 85 typedef struct 86 { /* 4 */ 87 CARD8 reqType; 88 BYTE pad; 89 CARD16 length B16; 90 } 91 ximRequestHeader; 92 93 typedef struct 94 { /* 4 */ 95 CARD16 state B16; 96 CARD16 detail B16; 97 } 98 ximNormalReply; 99 100 typedef struct 101 { /* 4 */ 102 CARD8 byteOrder; 103 BYTE pad; 104 CARD16 length B16; 105 } 106 ximConnClient; 107 108 typedef struct 109 { /* 8 */ 110 CARD8 reqType; 111 BYTE pad; 112 CARD16 length B16; 113 CARD32 mask B32; 114 } 115 ximGetIMReq; 116 117 typedef struct 118 { /* 8 */ 119 CARD16 state B16; 120 INT16 num_styles B16; 121 INT16 nbytes B16; 122 CARD16 pad B16; 123 } 124 ximGetIMReply; 125 126 typedef struct 127 { /* 4 */ 128 CARD8 reqType; 129 BYTE pad; 130 CARD16 length B16; 131 } 132 ximCreateICReq; 133 134 typedef struct 135 { /* 8 */ 136 CARD16 state B16; 137 CARD16 detail B16; 138 CARD32 xic B32; 139 } 140 ximCreateICReply; 141 142 typedef struct 143 { /* 8 */ 144 CARD8 reqType; 145 BYTE pad; 146 CARD16 length B16; 147 CARD32 xic B32; 148 } 149 ximChangeICReq; 150 151 typedef ximNormalReply ximChangeICReply; 152 153 typedef struct 154 { /* 12 */ 155 CARD8 reqType; 156 BYTE pad; 157 CARD16 length B16; 158 CARD32 xic B32; 159 CARD32 mask B32; 160 } 161 ximGetICReq; 162 163 typedef ximNormalReply ximGetICReply; 164 165 typedef struct 166 { /* 28 */ 167 CARD32 mask B32; 168 INT32 input_style B32; 169 Window c_window B32; 170 Window focus_window B32; 171 CARD32 filter_events B32; 172 INT32 max_keycode B32; 173 INT16 nbytes B16; 174 INT16 nbytes2 B16; 175 } 176 ximICValuesReq; 177 178 typedef struct 179 { /* 48 */ 180 INT16 area_x B16, area_y B16; 181 CARD16 area_width B16, area_height B16; 182 CARD16 areaneeded_width B16, areaneeded_height B16; 183 INT16 spot_x B16, spot_y B16; 184 Colormap colormap B32; 185 Atom std_colormap B32; 186 CARD32 foreground B32, background B32; 187 Pixmap pixmap B32; 188 INT16 line_space B16; 189 CARD16 pad1 B16; 190 Cursor cursor B32; 191 CARD16 nfonts B16; 192 INT16 nbytes B16; 193 } 194 ximICAttributesReq; 195 196 typedef struct 197 { /* 8 */ 198 CARD8 reqType; 199 BYTE pad; 200 CARD16 length B16; 201 CARD32 xic B32; 202 } 203 ximDestroyICReq; 204 205 typedef struct 206 { /* 8 */ 207 CARD8 reqType; 208 BYTE pad; 209 CARD16 length B16; 210 CARD32 xic B32; 211 } 212 ximICFocusReq; 213 214 typedef struct 215 { /* 8 */ 216 CARD8 reqType; 217 BYTE pad; 218 CARD16 length B16; 219 CARD32 xic B32; 220 } 221 ximResetICReq; 222 223 typedef struct 224 { /* 8 */ 225 CARD8 reqType; 226 BYTE pad; 227 CARD16 length B16; 228 CARD32 xic B32; 229 } 230 ximEventReq; 231 232 typedef struct 233 { /* 8 */ 234 CARD16 state B16; 235 CARD16 detail B16; 236 INT16 number B16; 237 CARD16 pad B16; 238 } 239 ximEventReply; 240 241 typedef struct 242 { /* 8 */ 243 CARD16 type B16; 244 INT16 length B16; 245 KeySym keysym B32; 246 } 247 ximReturnReply; 248 249 /* For Callback */ 250 typedef struct 251 { /* 16 */ 252 INT16 caret B16; 253 INT16 chg_first B16; 254 INT16 chg_length B16; 255 INT16 encoding_is_wchar B16; 256 INT16 length B16; 257 CARD16 pad B16; 258 INT32 feedback B32; 259 } 260 ximPreDrawReply; 261 262 typedef struct 263 { /* 8 */ 264 INT16 position B16; 265 CARD16 direction B16; 266 CARD16 style B16; 267 CARD16 pad B16; 268 } 269 ximPreCaretReply; 270 271 typedef struct 272 { /* 12 */ 273 CARD16 type B16; 274 INT16 encoding_is_wchar B16; 275 INT16 length B16; 276 INT16 feedback B16; 277 Pixmap bitmap B32; 278 } 279 ximStatusDrawReply; 280 281 #define XIM_GetIM 1 282 #define XIM_CreateIC 2 283 #define XIM_ChangeIC 3 284 #define XIM_GetIC 4 285 #define XIM_DestroyIC 5 286 #define XIM_SetICFocus 6 287 #define XIM_UnsetICFocus 7 288 #define XIM_ResetIC 8 289 #define XIM_Event 9 290 291 #define XIM_NOTHING 1 292 #define XIM_NOFILTER 2 293 #define XIM_RETURN 3 294 #define XIM_CALLBACK 4 295 #define XIM_IC 5 296 #ifdef XML 297 #define XIM_CH_LOCALE 6 298 #endif /* XML */ 299 300 301 #define XIM_STRING (short)1 302 #define XIM_KEYSYM (short)2 303 304 /* For Callback */ 305 #define XIM_CB_PRE_START 1 306 #define XIM_CB_PRE_DONE 2 307 #define XIM_CB_PRE_DRAW 3 308 #define XIM_CB_PRE_CARET 4 309 #define XIM_CB_ST_START 5 310 #define XIM_CB_ST_DONE 6 311 #define XIM_CB_ST_DRAW 7 312 313 #define XIM_CB_FW_CHAR 1 314 #define XIM_CB_BW_CHAR 2 315 #define XIM_CB_FW_WORD 3 316 #define XIM_CB_BW_WORD 4 317 #define XIM_CB_CARET_UP 5 318 #define XIM_CB_CARET_DOWN 6 319 #define XIM_CB_NEXT_LINE 7 320 #define XIM_CB_PREV_LINE 8 321 #define XIM_CB_LINE_START 9 322 #define XIM_CB_LINE_END 10 323 #define XIM_CB_ABS_POS 11 324 #define XIM_CB_DONT_CHANGE 12 325 326 #define XIM_ST_TEXT 1 327 #define XIM_ST_BITMAP 2 328 329 #undef Window 330 #undef Atom 331 #undef Colormap 332 #undef Pixmap 333 #undef Cursor 334 335 #define _Read(fd, data, size) read((fd), (data), (size)) 336 #define _Write(fd, data, size) write((fd), (data), (size)) 337 338 #endif /* XIMPROTO_H */ 339