Back to index

im-sdk  12.3.91
i18nIMProto.c
Go to the documentation of this file.
00001 /******************************************************************
00002 Copyright 1993, 1994 by Digital Equipment Corporation, Maynard, Massachusetts,
00003 Copyright 1993, 1994 by Hewlett-Packard Company
00004 
00005 Copyright 1994, 1995 by Sun Microsystems, Inc.
00006 
00007                         All Rights Reserved
00008 
00009 Permission to use, copy, modify, and distribute this software and its 
00010 documentation for any purpose and without fee is hereby granted, 
00011 provided that the above copyright notice appear in all copies and that
00012 both that copyright notice and this permission notice appear in 
00013 supporting documentation, and that the names of Digital or MIT not be
00014 used in advertising or publicity pertaining to distribution of the
00015 software without specific, written prior permission.  
00016 
00017 DIGITAL AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD
00018 TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
00019 FITNESS, IN NO EVENT SHALL DIGITAL AND HEWLETT-PACKARD COMPANY BE LIABLE
00020 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
00021 RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
00022 CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00023 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
00024 
00025   Author: Hiroyuki Miyamoto  Digital Equipment Corporation
00026                              miyamoto@jrd.dec.com
00027          Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc.
00028 
00029 ******************************************************************/
00030 
00031 /* Protocol Packet frames */
00032 
00033 #include "FrameMgr.h"
00034 
00035 /* Data type definitions */
00036 
00037 static
00038 XimFrameRec str_fr[] = {
00039     _FRAME(BIT8),           /* length of name in bytes */
00040     _FRAME(BARRAY),         /* name */
00041     _FRAME(EOL),
00042 };
00043 
00044 static
00045 XimFrameRec ximattr_fr[] = {
00046     _FRAME(BIT16),          /* attribute ID */
00047     _FRAME(BIT16),          /* type of the value */
00048     _FRAME(BIT16),          /* length of im-attribute */
00049     _FRAME(BARRAY),         /* im-attribute */
00050     _PAD4(2),
00051     _FRAME(EOL),
00052 };
00053 
00054 static
00055 XimFrameRec xicattr_fr[] = {
00056     _FRAME(BIT16),          /* attribute ID */
00057     _FRAME(BIT16),          /* type of the value */
00058     _FRAME(BIT16),          /* length of ic-attribute */
00059     _FRAME(BARRAY),         /* ic-attribute */
00060     _PAD4(2),
00061     _FRAME(EOL),
00062 };
00063 
00064 /* values data format */
00065 xim_externaldef
00066 XimFrameRec bytedata_fr[] = {
00067     _FRAME(BIT8),    /* value */
00068     _FRAME(EOL),
00069 };
00070 
00071 xim_externaldef
00072 XimFrameRec worddata_fr[] = {
00073     _FRAME(BIT16),   /* value */
00074     _FRAME(EOL),
00075 };
00076 
00077 xim_externaldef
00078 XimFrameRec longdata_fr[] = {
00079     _FRAME(BIT32),   /* value */
00080     _FRAME(EOL),
00081 };
00082 
00083 xim_externaldef
00084 XimFrameRec chardata_fr[] = {
00085     _FRAME(BARRAY),  /* value */
00086     _FRAME(EOL),
00087 };
00088 
00089 xim_externaldef
00090 XimFrameRec window_fr[] = {
00091     _FRAME(BIT32),   /* value */
00092     _FRAME(EOL),
00093 };
00094 
00095 xim_externaldef
00096 XimFrameRec ximstyles_fr[] = {
00097     _FRAME(BIT16),          /* number of XIMStyle list */
00098     _PAD4(1),               /* unused */
00099     _FRAME(ITER),           /* XIMStyle list */
00100     _FRAME(BIT32),
00101     _FRAME(EOL),
00102 };
00103 
00104 xim_externaldef
00105 XimFrameRec xrectangle_fr[] = {
00106     _FRAME(BIT16),   /* X */
00107     _FRAME(BIT16),   /* Y */
00108     _FRAME(BIT16),   /* width */
00109     _FRAME(BIT16),   /* height */
00110     _FRAME(EOL),
00111 };
00112 
00113 xim_externaldef
00114 XimFrameRec xpoint_fr[] = {
00115     _FRAME(BIT16),   /* X */
00116     _FRAME(BIT16),   /* Y */
00117     _FRAME(EOL),
00118 };
00119 
00120 xim_externaldef
00121 XimFrameRec xfontset_fr[] = {
00122     _FRAME(BIT16),   /* length of Base font name */
00123     _FRAME(BARRAY),  /* Base font name list */
00124     _PAD4(2),        /* unused */
00125     _FRAME(EOL),
00126 };
00127 
00128 static
00129 XimFrameRec ximtriggerkey_fr[] = {
00130     _FRAME(BIT32),          /* keysym */
00131     _FRAME(BIT32),          /* modifier */
00132     _FRAME(BIT32),          /* modifier mask */
00133     _FRAME(EOL),
00134 };
00135 
00136 static
00137 XimFrameRec encodinginfo_fr[] = {
00138     _FRAME(BIT16),          /* length of encoding info */
00139     _FRAME(BARRAY),         /* encoding info */
00140     _PAD4(2),               /* unused */
00141     _FRAME(EOL),
00142 };
00143 
00144 static
00145 XimFrameRec ext_fr[] = {
00146     _FRAME(BIT8),           /* extension major-opcode */
00147     _FRAME(BIT8),           /* extension minor-opcode */
00148     _FRAME(BIT16),          /* length of extension name */
00149     _FRAME(BARRAY),         /* extension name */
00150     _PAD4(1),
00151     _FRAME(EOL),
00152 };
00153 
00154 static
00155 XimFrameRec ximattribute_fr[] = {
00156     _FRAME(BIT16),          /* attribute ID */
00157     _FRAME(BIT16),          /* value length */
00158     _FRAME(BARRAY),             /* value */
00159     _PAD4(1),
00160     _FRAME(EOL),
00161 };
00162 
00163 static
00164 XimFrameRec xicattribute_fr[] = {
00165     _FRAME(BIT16),          /* attribute ID */
00166     _FRAME(BIT16),          /* value length */
00167     _FRAME(BARRAY),             /* value */
00168     _PAD4(1),
00169     _FRAME(EOL),
00170 };
00171 
00172 static
00173 XimFrameRec ximfeedback_fr[] = {
00174     _FRAME(BIT32),          /* XIMFeedback */
00175     _FRAME(EOL),
00176 };
00177 
00178 #if 0
00179 static
00180 XimFrameRec ximhotkeystate_fr[] = {
00181     _FRAME(BIT32),          /* XIMHotKeyState */
00182     _FRAME(EOL),
00183 };
00184 
00185 static
00186 XimFrameRec ximpreeditstate_fr[] = {
00187     _FRAME(BIT32),          /* XIMPreeditState */
00188     _FRAME(EOL),
00189 };
00190 
00191 static
00192 XimFrameRec ximresetstate_fr[] = {
00193     _FRAME(BIT32),          /* XIMResetState */
00194     _FRAME(EOL),
00195 };
00196 #endif
00197 
00198 static
00199 XimFrameRec ximstrconvtext_fr[] = {
00200     _FRAME(BIT16),          /* XIMStringConversionFeedback */
00201     _FRAME(BIT16),          /* byte length of retrieved string */
00202     _FRAME(BARRAY),         /* retrieved string */
00203     _PAD4(1),               /* unused */
00204     _BYTE_COUNTER(BIT16, 2),       /* byte length of feedback array */
00205     _PAD4(1),               /* unused */
00206     _FRAME(ITER),           /* LISTofXIMSTRCONVFEEDBACK */
00207     _FRAME(POINTER),
00208     _PTR(ximfeedback_fr),
00209     _FRAME(EOL),
00210 };
00211 
00212 /* Protocol definitions */
00213 
00214 xim_externaldef
00215 XimFrameRec attr_head_fr[] = {
00216     _FRAME(BIT16),   /* attribute id */
00217     _FRAME(BIT16),   /* attribute length */
00218     _FRAME(EOL),
00219 };
00220 
00221 xim_externaldef
00222 XimFrameRec packet_header_fr[] = {
00223     _FRAME(BIT8),           /* major-opcode */
00224     _FRAME(BIT8),           /* minor-opcode */
00225     _FRAME(BIT16),          /* length */
00226     _FRAME(EOL),
00227 };
00228 
00229 xim_externaldef
00230 XimFrameRec error_fr[] = {
00231     _FRAME(BIT16),          /* input-method-ID */
00232     _FRAME(BIT16),          /* input-context-ID */
00233     _FRAME(BIT16),          /* flag */
00234     _FRAME(BIT16),          /* Error Code */
00235     _FRAME(BIT16),          /* length of error detail */
00236     _FRAME(BIT16),          /* type of error detail */
00237     _FRAME(BARRAY),         /* error detail */
00238     _PAD4(1),
00239     _FRAME(EOL),
00240 };
00241 
00242 xim_externaldef
00243 XimFrameRec connect_fr[] = {
00244     _FRAME(BIT8),           /* byte order */
00245     _PAD2(1),               /* unused */
00246     _FRAME(BIT16),          /* client-major-protocol-version */
00247     _FRAME(BIT16),          /* client-minor-protocol-version */
00248     _BYTE_COUNTER(BIT16, 1),       /* number of client-auth-protocol-names */
00249     _FRAME(ITER),           /* client-auth-protocol-names */
00250     _FRAME(POINTER),
00251     _PTR(str_fr),
00252     _FRAME(EOL),
00253 };
00254 
00255 xim_externaldef
00256 XimFrameRec auth_required_fr[] = {
00257     _FRAME(BIT8),           /* auth-protocol-index */
00258     _PAD4(1),               /* unused */
00259     _FRAME(BIT16),          /* lengh of authentication data */
00260     _PAD4(1),               /* unused */
00261     _FRAME(BARRAY),         /* data2 */
00262     _PAD4(1),               /* unused */
00263     _FRAME(EOL),
00264 };
00265 
00266 xim_externaldef
00267 XimFrameRec auth_reply_fr[] = {
00268     _FRAME(BIT16),          /* length of authentication data */
00269     _PAD4(1),               /* unused */
00270 #if 0
00271     _FRAME(BIT16),          /* length of authentication data */
00272     _PAD4(1),               /* unused */
00273 #endif
00274     _FRAME(BIT8),
00275     _FRAME(BARRAY),
00276     _PAD4(2),
00277     _FRAME(EOL),
00278 };
00279 
00280 xim_externaldef
00281 XimFrameRec auth_next_fr[] = {
00282     _FRAME(BIT16),          /* length of authentication data */
00283     _PAD4(1),               /* unused */
00284     _FRAME(BARRAY),         /* data */
00285     _PAD4(1),
00286     _FRAME(EOL),
00287 };
00288 
00289 xim_externaldef
00290 XimFrameRec auth_setup_fr[] = {
00291     _BYTE_COUNTER(BIT16, 2),       /* number of client-auth-protocol-names */
00292     _PAD4(1),               /* unused */
00293     _FRAME(ITER),           /* server-auth-protocol-names */
00294     _FRAME(POINTER),
00295     _PTR(str_fr),
00296     _FRAME(EOL),
00297 };
00298 
00299 xim_externaldef
00300 XimFrameRec auth_ng_fr[] = {
00301     _FRAME(EOL),
00302 };
00303 
00304 xim_externaldef
00305 XimFrameRec connect_reply_fr[] = {
00306     _FRAME(BIT16),          /* server-major-protocol-version */
00307     _FRAME(BIT16),          /* server-minor-protocol-version */
00308     _FRAME(EOL),
00309 };
00310 
00311 xim_externaldef
00312 XimFrameRec disconnect_fr[] = {
00313     _FRAME(EOL),
00314 };
00315 
00316 xim_externaldef
00317 XimFrameRec disconnect_reply_fr[] = {
00318     _FRAME(EOL),
00319 };
00320 
00321 xim_externaldef
00322 XimFrameRec open_fr[] = {
00323     _FRAME(POINTER),        /* locale name */
00324     _PTR(str_fr),
00325     _PAD4(1),
00326     _FRAME(EOL),
00327 };
00328 
00329 xim_externaldef
00330 XimFrameRec open_reply_fr[] = {
00331     _FRAME(BIT16),          /* input-method-ID */
00332     _BYTE_COUNTER(BIT16, 1),       /* byte length of IM attributes supported */
00333     _FRAME(ITER),           /* IM attribute supported */
00334     _FRAME(POINTER),
00335     _PTR(ximattr_fr),
00336     _BYTE_COUNTER(BIT16, 2),       /* number of IC attribute supported */
00337     _PAD4(1),               /* unused */
00338     _FRAME(ITER),           /* IC attribute supported */
00339     _FRAME(POINTER),
00340     _PTR(xicattr_fr),
00341     _FRAME(EOL),
00342 };
00343 
00344 xim_externaldef
00345 XimFrameRec close_fr[] = {
00346     _FRAME(BIT16),          /* input-method-ID */
00347     _PAD4(1),               /* unused */
00348     _FRAME(EOL),
00349 };
00350 
00351 xim_externaldef
00352 XimFrameRec close_reply_fr[] = {
00353     _FRAME(BIT16),          /* input-method-ID */
00354     _PAD4(1),               /* unused */
00355     _FRAME(EOL),
00356 };
00357 
00358 xim_externaldef
00359 XimFrameRec set_event_mask_fr[] = {
00360     _FRAME(BIT16),          /* input-method-ID */
00361     _FRAME(BIT16),          /* input-context-ID */
00362     _FRAME(BIT32),          /* forward-event-mask */
00363     _FRAME(BIT32),          /* synchronous-event-mask */
00364     _FRAME(EOL),
00365 };
00366 
00367 xim_externaldef
00368 XimFrameRec register_triggerkeys_fr[] = {
00369     _FRAME(BIT16),          /* input-method-ID */
00370     _PAD4(1),               /* unused */
00371     _BYTE_COUNTER(BIT32, 1),       /* byte length of on-keys */
00372     _FRAME(ITER),           /* on-keys list */
00373     _FRAME(POINTER),
00374     _PTR(ximtriggerkey_fr),
00375     _BYTE_COUNTER(BIT32, 1),       /* byte length of off-keys */
00376     _FRAME(ITER),           /* off-keys list */
00377     _FRAME(POINTER),
00378     _PTR(ximtriggerkey_fr),
00379     _FRAME(EOL),
00380 };
00381 
00382 xim_externaldef
00383 XimFrameRec trigger_notify_fr[] = {
00384     _FRAME(BIT16),          /* input-mehotd-ID */
00385     _FRAME(BIT16),          /* input-context-ID */
00386     _FRAME(BIT32),          /* flag */
00387     _FRAME(BIT32),          /* index of keys list */
00388     _FRAME(BIT32),          /* client-select-event-mask */
00389     _FRAME(EOL),
00390 };
00391 
00392 xim_externaldef
00393 XimFrameRec trigger_notify_reply_fr[] = {
00394     _FRAME(BIT16),          /* input-method-ID */
00395     _FRAME(BIT16),          /* input-context-ID */
00396     _FRAME(EOL),
00397 };
00398 
00399 xim_externaldef
00400 XimFrameRec encoding_negotiation_fr[] = {
00401     _FRAME(BIT16),          /* input-method-ID */
00402     _BYTE_COUNTER(BIT16, 1),       /* byte length of encodings listed by name */
00403     _FRAME(ITER),           /* list of encodings supported in
00404                                IM library */
00405     _FRAME(POINTER),
00406     _PTR(str_fr),
00407     _PAD4(1),               /* unused */
00408     _BYTE_COUNTER(BIT16, 2),       /* byte length of encodings listed by
00409                                    detailed data */
00410     _PAD4(1),               /* unused */
00411     _FRAME(ITER),           /* list of encodings supported in the
00412                                IM library */
00413     _FRAME(POINTER),
00414     _PTR(encodinginfo_fr),
00415     _FRAME(EOL),
00416 };
00417 
00418 xim_externaldef
00419 XimFrameRec encoding_negotiation_reply_fr[] = {
00420     _FRAME(BIT16),          /* input-method-ID */
00421     _FRAME(BIT16),          /* category of the encoding determined */
00422     _FRAME(BIT16),          /* index of the encoding dterminated */
00423     _PAD4(1),               /* unused */
00424     _FRAME(EOL),
00425 };
00426 
00427 xim_externaldef
00428 XimFrameRec query_extension_fr[] = {
00429     _FRAME(BIT16),          /* input-method-ID */
00430     _BYTE_COUNTER(BIT16, 1),       /* byte length of extensions supported
00431                                by the IM library */
00432     _FRAME(ITER),           /* extensions supported by the IM library */
00433     _FRAME(POINTER),
00434     _PTR(str_fr),
00435     _PAD4(1),               /* unused */
00436     _FRAME(EOL),
00437 };
00438 
00439 xim_externaldef
00440 XimFrameRec query_extension_reply_fr[] = {
00441     _FRAME(BIT16),          /* input-method-ID */
00442     _BYTE_COUNTER(BIT16, 1),       /* byte length of extensions supported
00443                                by both the IM library and IM Server */
00444     _FRAME(ITER),           /* list of extensions supported by both
00445                                the IM library and IM server */
00446     _FRAME(POINTER),
00447     _PTR(ext_fr),
00448     _FRAME(EOL),
00449 };
00450 
00451 xim_externaldef
00452 XimFrameRec set_im_values_fr[] = {
00453     _FRAME(BIT16),          /* input-method-ID */
00454     _BYTE_COUNTER(BIT16, 1),       /* byte length of im-attribute */
00455     _FRAME(ITER),           /* im-attributes */
00456     _FRAME(POINTER),
00457     _PTR(ximattribute_fr),
00458     _FRAME(EOL),
00459 };
00460 
00461 xim_externaldef
00462 XimFrameRec set_im_values_reply_fr[] = {
00463     _FRAME(BIT16),          /* input-method-ID */
00464     _PAD4(1),               /* unused */
00465     _FRAME(EOL),
00466 };
00467 
00468 xim_externaldef
00469 XimFrameRec get_im_values_fr[] = {
00470     _FRAME(BIT16),          /* input-method-ID */
00471     _BYTE_COUNTER(BIT16, 1),       /* byte length of im-attribute-id */
00472     _FRAME(ITER),           /* im-attribute-id */
00473     _FRAME(BIT16),
00474     _PAD4(1),
00475     _FRAME(EOL),
00476 };
00477 
00478 xim_externaldef
00479 XimFrameRec get_im_values_reply_fr[] = {
00480     _FRAME(BIT16),          /* input-method-ID */
00481     _BYTE_COUNTER(BIT16, 1),       /* byte length of im-attributes returned */
00482     _FRAME(ITER),           /* im-attributes returned */
00483     _FRAME(POINTER),
00484     _PTR(ximattribute_fr),
00485     _FRAME(EOL),
00486 };
00487 
00488 xim_externaldef
00489 XimFrameRec create_ic_fr[] = {
00490     _FRAME(BIT16),          /* input-method-ID */
00491     _BYTE_COUNTER(BIT16, 1),       /* byte length of ic-attributes */
00492     _FRAME(ITER),           /* ic-attributes */
00493     _FRAME(POINTER),
00494     _PTR(xicattribute_fr),
00495     _FRAME(EOL),
00496 };
00497 
00498 xim_externaldef
00499 XimFrameRec create_ic_reply_fr[] = {
00500     _FRAME(BIT16),          /* input-method-ID */
00501     _FRAME(BIT16),          /* input-context-ID */
00502     _FRAME(EOL),
00503 };
00504 
00505 xim_externaldef
00506 XimFrameRec destroy_ic_fr[] = {
00507     _FRAME(BIT16),          /* input-method-ID */
00508     _FRAME(BIT16),          /* input-context-ID */
00509     _FRAME(EOL),
00510 };
00511 
00512 xim_externaldef
00513 XimFrameRec destroy_ic_reply_fr[] = {
00514     _FRAME(BIT16),          /* input-method-ID */
00515     _FRAME(BIT16),          /* input-context-ID */
00516     _FRAME(EOL),
00517 };
00518 
00519 xim_externaldef
00520 XimFrameRec set_ic_values_fr[] = {
00521     _FRAME(BIT16),          /* input-method-ID */
00522     _FRAME(BIT16),          /* input-context-ID */
00523     _BYTE_COUNTER(BIT16, 2),       /* byte length of ic-attributes */
00524     _PAD4(1),               /* unused */
00525     _FRAME(ITER),           /* ic-attributes */
00526     _FRAME(POINTER),
00527     _PTR(xicattribute_fr),
00528     _FRAME(EOL),
00529 };
00530 
00531 xim_externaldef
00532 XimFrameRec set_ic_values_reply_fr[] = {
00533     _FRAME(BIT16),          /* input-method-ID */
00534     _FRAME(BIT16),          /* input-context-ID */
00535     _FRAME(EOL),
00536 };
00537 
00538 xim_externaldef
00539 XimFrameRec get_ic_values_fr[] = {
00540     _FRAME(BIT16),          /* input-method-ID */
00541     _FRAME(BIT16),          /* input-context-ID */
00542     _BYTE_COUNTER(BIT16, 1),       /* byte length of ic-attribute-id */
00543     _FRAME(ITER),           /* ic-attribute-id */
00544     _FRAME(BIT16),
00545     _PAD4(2),               /* unused */
00546     _FRAME(EOL),
00547 };
00548 
00549 xim_externaldef
00550 XimFrameRec get_ic_values_reply_fr[] = {
00551     _FRAME(BIT16),          /* input-method-ID */
00552     _FRAME(BIT16),          /* input-context-ID */
00553     _BYTE_COUNTER(BIT16, 2),       /* byte length of ic-attribute */
00554     _PAD4(1),               /* unused */
00555     _FRAME(ITER),           /* ic-attribute */
00556     _FRAME(POINTER),
00557     _PTR(xicattribute_fr),
00558     _FRAME(EOL),
00559 };
00560 
00561 xim_externaldef
00562 XimFrameRec set_ic_focus_fr[] = {
00563     _FRAME(BIT16),          /* input-method-ID */
00564     _FRAME(BIT16),          /* input-context-ID */
00565     _FRAME(EOL),
00566 };
00567 
00568 xim_externaldef
00569 XimFrameRec unset_ic_focus_fr[] = {
00570     _FRAME(BIT16),          /* input-method-ID */
00571     _FRAME(BIT16),          /* input-context-ID */
00572     _FRAME(EOL),
00573 };
00574 
00575 xim_externaldef
00576 XimFrameRec forward_event_fr[] = {
00577     _FRAME(BIT16),          /* input-method-ID */
00578     _FRAME(BIT16),          /* input-context-ID */
00579     _FRAME(BIT16),          /* flag */
00580     _FRAME(BIT16),          /* serial number */
00581     _FRAME(EOL),
00582 };
00583 
00584 xim_externaldef
00585 XimFrameRec sync_fr[] = {
00586     _FRAME(BIT16),          /* input-method-ID */
00587     _FRAME(BIT16),          /* input-context-ID */
00588     _FRAME(EOL),
00589 };
00590 
00591 xim_externaldef
00592 XimFrameRec sync_reply_fr[] = {
00593     _FRAME(BIT16),          /* input-method-ID */
00594     _FRAME(BIT16),          /* input-context-ID */
00595     _FRAME(EOL),
00596 };
00597 
00598 #if 0
00599 xim_externaldef
00600 XimFrameRec commit_keysym_fr[] = {
00601     _FRAME(BIT16),          /* input-method-ID */
00602     _FRAME(BIT16),          /* input-context-ID */
00603     _FRAME(BIT16),          /* flag */
00604     _PAD4(1),               /* unused */
00605     _FRAME(BIT32),          /* KeySym */
00606     _FRAME(EOL),
00607 };
00608 #endif
00609 
00610 xim_externaldef
00611 XimFrameRec commit_chars_fr[] = {
00612     _FRAME(BIT16),          /* input-method-ID */
00613     _FRAME(BIT16),          /* input-context-ID */
00614     _FRAME(BIT16),          /* flag */
00615     _FRAME(BIT16),          /* byte length of committed string */
00616     _FRAME(BARRAY),         /* committed string */
00617     _PAD4(1),               /* unused */
00618     _FRAME(EOL),
00619 };
00620 
00621 xim_externaldef
00622 XimFrameRec commit_both_fr[] = {
00623     _FRAME(BIT16),          /* input-method-ID */
00624     _FRAME(BIT16),          /* input-context-ID */
00625     _FRAME(BIT16),          /* flag */
00626     _PAD4(1),               /* unused */
00627     _FRAME(BIT32),          /* keysym */
00628     _FRAME(BIT16),          /* byte length of committed string */
00629     _FRAME(BARRAY),         /* committed string */
00630     _PAD4(2),
00631     _FRAME(EOL),
00632 };
00633 
00634 xim_externaldef
00635 XimFrameRec reset_ic_fr[] = {
00636     _FRAME(BIT16),          /* input-method-ID */
00637     _FRAME(BIT16),          /* input-context-ID */
00638     _FRAME(EOL),
00639 };
00640 
00641 xim_externaldef
00642 XimFrameRec reset_ic_reply_fr[] = {
00643     _FRAME(BIT16),          /* input-method-ID */
00644     _FRAME(BIT16),          /* input-context-ID */
00645     _FRAME(BIT16),          /* byte length of preedit string */
00646     _FRAME(BARRAY),         /* committed string */
00647     _PAD4(2),               /* unused */
00648     _FRAME(EOL),
00649 };
00650 
00651 xim_externaldef
00652 XimFrameRec geometry_fr[] = {
00653     _FRAME(BIT16),          /* input-method-ID */
00654     _FRAME(BIT16),          /* input-context-ID */
00655     _FRAME(EOL),
00656 };
00657 
00658 xim_externaldef
00659 XimFrameRec str_conversion_fr[] = {
00660     _FRAME(BIT16),          /* input-method-ID */
00661     _FRAME(BIT16),          /* input-context-ID */
00662     _FRAME(BIT16),          /* XIMStringConversionPosition */
00663     _PAD4(1),               /* unused */
00664     _FRAME(BIT32),          /* XIMCaretDirection */
00665     _FRAME(BIT16),          /* factor */
00666     _FRAME(BIT16),          /* XIMStringConversionOperation */
00667     _FRAME(BIT16),          /* byte length to multiply the
00668                                XIMStringConversionType */
00669 #if 0
00670     _PAD4(1),               /* unused */
00671 #endif
00672     _FRAME(EOL),
00673 };
00674 
00675 xim_externaldef
00676 XimFrameRec str_conversion_reply_fr[] = {
00677     _FRAME(BIT16),          /* input-method-ID */
00678     _FRAME(BIT16),          /* input-context-ID */
00679     _FRAME(BIT32),          /* XIMStringConversionFeedback */
00680     _FRAME(POINTER),
00681     _PTR(ximstrconvtext_fr),
00682     _FRAME(EOL),
00683 };
00684 
00685 xim_externaldef
00686 XimFrameRec preedit_start_fr[] = {
00687     _FRAME(BIT16),          /* input-method-ID */
00688     _FRAME(BIT16),          /* input-context-ID */
00689     _FRAME(EOL),
00690 };
00691 
00692 xim_externaldef
00693 XimFrameRec preedit_start_reply_fr[] = {
00694     _FRAME(BIT16),          /* input-method-ID */
00695     _FRAME(BIT16),          /* input-context-ID */
00696     _FRAME(BIT32),          /* return value */
00697     _FRAME(EOL),
00698 };
00699 
00700 xim_externaldef
00701 XimFrameRec preedit_draw_fr[] = {
00702     _FRAME(BIT16),          /* input-method-ID */
00703     _FRAME(BIT16),          /* input-context-ID */
00704     _FRAME(BIT32),          /* caret */
00705     _FRAME(BIT32),          /* chg_first */
00706     _FRAME(BIT32),          /* chg_length */
00707     _FRAME(BIT32),          /* status */
00708     _FRAME(BIT16),          /* length of preedit string */
00709     _FRAME(BARRAY),         /* preedit string */
00710     _PAD4(2),               /* unused */
00711     _BYTE_COUNTER(BIT16, 2),       /* byte length of feedback array */
00712     _PAD4(1),               /* unused */
00713     _FRAME(ITER),           /* feedback array */
00714     _FRAME(POINTER),
00715     _PTR(ximfeedback_fr),
00716     _FRAME(EOL),
00717 };
00718 
00719 xim_externaldef
00720 XimFrameRec preedit_caret_fr[] = {
00721     _FRAME(BIT16),          /* input-method-ID */
00722     _FRAME(BIT16),          /* input-context-ID */
00723     _FRAME(BIT32),          /* position */
00724     _FRAME(BIT32),          /* direction */
00725     _FRAME(BIT32),          /* style */
00726     _FRAME(EOL),
00727 };
00728 
00729 xim_externaldef
00730 XimFrameRec preedit_caret_reply_fr[] = {
00731     _FRAME(BIT16),          /* input-method-ID */
00732     _FRAME(BIT16),          /* input-context-ID */
00733     _FRAME(BIT32),          /* position */
00734     _FRAME(EOL),
00735 };
00736 
00737 xim_externaldef
00738 XimFrameRec preedit_done_fr[] = {
00739     _FRAME(BIT16),          /* input-method-ID */
00740     _FRAME(BIT16),          /* input-context-ID */
00741     _FRAME(EOL),
00742 };
00743 
00744 xim_externaldef
00745 XimFrameRec preedit_state_fr[] = {
00746     _FRAME(BIT16),          /* input-method-ID */
00747     _FRAME(BIT16),          /* input-context-ID */
00748     _FRAME(BIT32),          /* XIMPreeditState */
00749     _FRAME(EOL),
00750 };
00751 
00752 xim_externaldef
00753 XimFrameRec status_start_fr[] = {
00754     _FRAME(BIT16),          /* input-method-ID */
00755     _FRAME(BIT16),          /* input-context-ID */
00756     _FRAME(EOL),
00757 };
00758 
00759 xim_externaldef
00760 XimFrameRec status_draw_text_fr[] = {
00761     _FRAME(BIT16),          /* input-method-ID */
00762     _FRAME(BIT16),          /* input-context-ID */
00763     _FRAME(BIT32),          /* type */
00764     _FRAME(BIT32),          /* status */
00765     _FRAME(BIT16),          /* length of status string */
00766     _FRAME(BARRAY),         /* status string */
00767     _PAD4(2),               /* unused */
00768     _BYTE_COUNTER(BIT16, 2),       /* byte length of feedback array */
00769     _PAD4(1),               /* unused */
00770     _FRAME(ITER),           /* feedback array */
00771     _FRAME(POINTER),
00772     _PTR(ximfeedback_fr),
00773     _FRAME(EOL),
00774 };
00775 
00776 xim_externaldef
00777 XimFrameRec status_draw_bitmap_fr[] = {
00778     _FRAME(BIT16),          /* input-method-ID */
00779     _FRAME(BIT16),          /* input-context-ID */
00780     _FRAME(BIT32),          /* type */
00781     _FRAME(BIT32),          /* pixmap data */
00782     _FRAME(EOL),
00783 };
00784 
00785 xim_externaldef
00786 XimFrameRec status_done_fr[] = {
00787     _FRAME(BIT16),          /* input-method-ID */
00788     _FRAME(BIT16),          /* input-context-ID */
00789     _FRAME(EOL),
00790 };
00791 
00792 xim_externaldef
00793 XimFrameRec ext_set_event_mask_fr[] = {
00794     _FRAME(BIT16),          /* input-method-ID */
00795     _FRAME(BIT16),          /* input-context-ID */
00796     _FRAME(BIT32),          /* filter-event-mask */
00797     _FRAME(BIT32),          /* intercept-event-mask */
00798     _FRAME(BIT32),          /* select-event-mask */
00799     _FRAME(BIT32),          /* forward-event-mask */
00800     _FRAME(BIT32),          /* synchronous-event-mask */
00801     _FRAME(EOL),
00802 };
00803 
00804 xim_externaldef
00805 XimFrameRec ext_forward_keyevent_fr[] = {
00806     _FRAME(BIT16),          /* input-method-ID */
00807     _FRAME(BIT16),          /* input-context-ID */
00808     _FRAME(BIT16),          /* flag */
00809     _FRAME(BIT16),          /* sequence number */
00810     _FRAME(BIT8),           /* xEvent.u.u.type */
00811     _FRAME(BIT8),           /* keycode */
00812     _FRAME(BIT16),          /* state */
00813     _FRAME(BIT32),          /* time */
00814     _FRAME(BIT32),          /* window */
00815     _FRAME(EOL),
00816 };
00817 
00818 xim_externaldef
00819 XimFrameRec ext_move_fr[] = {
00820     _FRAME(BIT16),          /* input-method-ID */
00821     _FRAME(BIT16),          /* input-context-ID */
00822     _FRAME(BIT16),          /* X */
00823     _FRAME(BIT16),          /* Y */
00824     _FRAME(EOL),
00825 };
00826