Mercurial > kinput2.yaz
diff include/XIMProto.h @ 0:92745d501b9a
initial import from kinput2-v3.1
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 08 Mar 2010 04:44:30 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/XIMProto.h Mon Mar 08 04:44:30 2010 +0900 @@ -0,0 +1,301 @@ +/* @(#)XIMProto.h 2.1 91/07/03 11:28:53 FUJITSU LIMITED. */ +/****************************************************************** + + Copyright 1991, by FUJITSU LIMITED. + Copyright 1991, by Sun Microsystems, Inc. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of FUJITSU LIMITED or Sun +Microsystems, Inc. not be used in advertising or publicity pertaining +to distribution of the software without specific, written prior +permission. FUJITSU LIMITED and Sun Microsystems, Inc. make no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. + +FUJITSU LIMITED AND SUN MICROSYSTEMS, INC. DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU LIMITED AND SUN +MICROSYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +Author: Takashi Fujiwara FUJITSU LIMITED + fujiwara@a80.tech.yk.fujitsu.co.jp + Hideki Hiura (hhiura@Sun.COM) + Sun Microsystems, Inc. +******************************************************************/ + +/* Ximp Protocol Version */ +#define XIMP_PROTOCOL_VERSION "XIMP.3.5" + +/* Input Context ID */ +typedef unsigned long ICID; + +/* ClientMessage No. */ + +/* client <=> frontend */ +#define XIMP_KEYPRESS 1 + +/* client => frontend */ +/* Base Protocol */ +#define XIMP_CREATE 2 +#define XIMP_DESTROY 3 +#define XIMP_BEGIN 4 +#define XIMP_END 5 +#define XIMP_SETFOCUS 6 +#define XIMP_UNSETFOCUS 7 +#define XIMP_CHANGE 8 +#define XIMP_MOVE 9 +#define XIMP_RESET 10 +#define XIMP_SETVALUE 11 +#define XIMP_GETVALUE 12 + +/* Callback Protocol */ +#define XIMP_PREEDITSTART_RETURN 20 +#define XIMP_PREEDITCARET_RETURN 21 + +/* frontend => client */ +/* Base Protocol */ +#define XIMP_CREATE_RETURN 2 +#define XIMP_CONVERSION_BEGIN 30 +#define XIMP_PROCESS_BEGIN 30 +#define XIMP_CONVERSION_END 31 +#define XIMP_PROCESS_END 31 +#define XIMP_READPROP 32 +#define XIMP_GETVALUE_RETURN 33 +#define XIMP_RESET_RETURN 34 + +/* Callback Protocol */ +#define XIMP_GEOMETRY 40 +#define XIMP_PREEDITSTART 41 +#define XIMP_PREEDITDONE 42 +#define XIMP_PREEDITDRAW 43 +#define XIMP_PREEDITDRAW_CM 44 +#define XIMP_PREEDITCARET 45 +#define XIMP_STATUSSTART 46 +#define XIMP_STATUSDONE 47 +#define XIMP_STATUSDRAW 48 +#define XIMP_STATUSDRAW_CM 49 + +/* Extension Protocol */ +#define XIMP_EXTENSION 90 + +/* frontend = ERROR => client */ +#define XIMP_ERROR 99 + +/* Error Notify from IM Server */ +/* Detail Error Number */ +#define XIMP_NoError 0 /* No Error */ +#define XIMP_BadAlloc 1 /* Memeory Alloc Fail */ +#define XIMP_BadStyle 2 /* Unspported Input Style */ +#define XIMP_BadClientWindow 3 /* Invalid Client Window */ +#define XIMP_BadFocusWindow 4 /* Invalid Focus Window */ +#define XIMP_BadArea 5 /* Invalid Area */ +#define XIMP_BadSpotLocation 6 /* SpotLocation Out Of Range */ +#define XIMP_BadColormap 7 /* Invalid Colormap ID */ +#define XIMP_BadAtom 8 /* Invalid Atom ID */ +#define XIMP_BadPixel 9 /* Invalid Pixel Value */ +#define XIMP_BadPixmap 10 /* Invalid Pixmap Value */ +#define XIMP_BadName 11 /* Invalid Font Name */ +#define XIMP_BadCursor 12 /* Invalid Cursor ID */ +#define XIMP_BadProtocol 13 /* Invalid Protocol ID */ +#define XIMP_BadProperty 14 /* Invalid Property Name */ +#define XIMP_BadPropertyType 15 /* Invalid Property Type */ + +/* Property Name */ +#define _XIMP_PROTOCOL "_XIMP_PROTOCOL" +#define _XIMP_BASE "_XIMP_" /* Root Window + * _XIP_<locale_name> */ + +/* IMS Window Property Name */ +#define _XIMP_VERSION "_XIMP_VERSION" +#define _XIMP_STYLE "_XIMP_STYLE" +#define _XIMP_KEYS "_XIMP_KEYS" +#define _XIMP_SERVERNAME "_XIMP_SERVERNAME" +#define _XIMP_SERVERVERSION "_XIMP_SERVERVERSION" +#define _XIMP_EXTENSIONS "_XIMP_EXTENSIONS" +#define _XIMP_PREEDITMAXSIZE "_XIMP_PREEDITMAXSIZE" +#define _XIMP_VENDORNAME "_XIMP_VENDORNAME" + +/* Client Window Property Name */ +#define _XIMP_LIBVERSION "_XIMP_VERSION" +#define _XIMP_FOCUS "_XIMP_FOCUS" +#define _XIMP_PREEDIT "_XIMP_PREEDIT" +#define _XIMP_STATUS "_XIMP_STATUS" +#define _XIMP_PREEDITFONT "_XIMP_PREEDITFONT" +#define _XIMP_STATUSFONT "_XIMP_STATUSFONT" + +#define _XIMP_CTEXT "_XIMP_CTEXT" + +/* CallBack Property Name */ + +#define _XIMP_PREEDIT_DRAW_DATA "_XIMP_PREEDIT_DRAW_DATA" + +#define _XIMP_FEEDBACKS "_XIMP_FEEDBACKS" +#define _XIMP_PREEDITDRAWLENGTH "_XIMP_PREEDITDRAWLENGTH" +#define _XIMP_PREEDITDRAWSTRING "_XIMP_PREEDITDRAWSTRING" +#define _XIMP_PREEDITDRAWFEEDBACK "_XIMP_PREEDITDRAWFEEDBACK" + +/* CallBack Property Name / Type X11R5 */ +#define _XIMP_EXT_XIMP_CHOICE_START_REQ "_XIMP_EXT_XIMP_CHOICE_START_REQ" +#define _XIMP_EXT_XIMP_CHOICE_START_REP "_XIMP_EXT_XIMP_CHOICE_START_REP" +#define _XIMP_EXT_XIMP_CHOICE_DRAW_REQ "_XIMP_EXT_XIMP_CHOICE_DRAW_REQ" +#define _XIMP_EXT_XIMP_CHOICE_PROC_REQ "_XIMP_EXT_XIMP_CHOICE_PROC_REQ" +#define _XIMP_EXT_XIMP_CHOICE_PROC_REP "_XIMP_EXT_XIMP_CHOICE_PROC_REP" +#define _XIMP_EXT_XIMP_LOOKUPCHOICES "_XIMP_EXT_XIMP_LOOKUPCHOICES" + +/* Lookup choise REQ and REP X11R5 */ +#define LOOKUP_CHOICES_BEGIN 0 +#define LOOKUP_CHOICES_START_REQ 1 +#define LOOKUP_CHOICES_START_REP 2 +#define LOOKUP_CHOICES_PROCESS_REQ 3 +#define LOOKUP_CHOICES_PROCESS_REP 4 +#define LOOKUP_CHOICES_DRAW_REQ 5 +#define LOOKUP_CHOICES_DONE_REQ 6 + +/* mask (XIMP_CREATE, XIMP_SETVALUE, XIMP_GETVALUE) */ +#define XIMP_FOCUS_WIN_MASK (1L << 0) +#define XIMP_PRE_AREA_MASK (1L << 1) +#define XIMP_PRE_FG_MASK (1L << 2) +#define XIMP_PRE_BG_MASK (1L << 3) +#define XIMP_PRE_COLORMAP_MASK (1L << 4) +#define XIMP_PRE_BGPIXMAP_MASK (1L << 5) +#define XIMP_PRE_LINESP_MASK (1L << 6) +#define XIMP_PRE_CURSOR_MASK (1L << 7) +#define XIMP_PRE_AREANEED_MASK (1L << 8) +#define XIMP_PRE_SPOTL_MASK (1L << 9) +#define XIMP_STS_AREA_MASK (1L << 10) +#define XIMP_STS_FG_MASK (1L << 11) +#define XIMP_STS_BG_MASK (1L << 12) +#define XIMP_STS_COLORMAP_MASK (1L << 13) +#define XIMP_STS_BGPIXMAP_MASK (1L << 14) +#define XIMP_STS_LINESP_MASK (1L << 15) +#define XIMP_STS_CURSOR_MASK (1L << 16) +#define XIMP_STS_AREANEED_MASK (1L << 17) +#define XIMP_STS_WINDOW_MASK (1L << 18) +#define XIMP_PRE_FONT_MASK (1L << 19) +#define XIMP_STS_FONT_MASK (1L << 20) + +/* FRONTEND or BACKEND MODE */ +#define XIMP_FRONTEND 0 +#define XIMP_BACKEND 1 + +/** XIMP_PREEDITDRAW_CM status value + * post Ximp 3.4 protocol maybe compliant. + * XIMP status flag will may contain the supplementary infomations to + * reassemble the XIMPreeditDrawCallbackStruct. + * +-----------------------------------------+ + * 0 | XIMP_PREEDITDRAW_CM | + * +-----------------------------------------+ + * 4 | ICID | + * +-------------------+---------------------+ + * 8 |PreeditDrawCBStatus| caret | + * +-------------------+---------------------+ + * 12| chg_first | chg_length | + * +-------------------+---------------------+ + * 16| feedback | + * +-----------------------------------------+ + * PreeditDrawCBStatus: + * 0x0001 no_text: if 1, string == NULL (no following client message.) + * 0x0002 no_feedback: if 1 feedback == NULL + * 0x0004 feedbacks_via_property: if 1 , feedback field is property atom# + **/ + +#define XIMP_PDCBSTATUS_NOTEXT 0x0001 +#define XIMP_PDCBSTATUS_NOFEEDBACK 0x0002 +#define XIMP_PDCBSTATUS_FEEDBACKS_VIA_PROP 0x0004 + +/* _XIMP_KEYS struct */ + +typedef struct { + unsigned long modifier; + unsigned long modifier_mask; + KeySym keysym; +} Ximp_Key; + +typedef struct { + unsigned short count_keys; + Ximp_Key *keys_list; +} Ximp_KeyList; + +typedef struct _Ximp_Area { + long x; + long y; + long width; + long height; +} Ximp_AreaRec; + +typedef struct _Ximp_Point { + long x; + long y; +} Ximp_PointRec; + +typedef struct _Ximp_Size { + long width; + long height; +} Ximp_SizeRec; + +/* kana-kanji conversion window attributes */ + +#define XIMP_PREEDIT_MAX_LONG 14 +#define XIMP_PREEDIT_MAX_CHAR 56 + +typedef struct _Ximp_Preedit { + Ximp_AreaRec Area; + unsigned long Foreground; + unsigned long Background; + Colormap Colormap; + Pixmap Bg_Pixmap; + long LineSpacing; + Cursor Cursor; + Ximp_SizeRec AreaNeeded; + Ximp_PointRec SpotLocation; +} Ximp_PreeditPropRec; + +#define XIMP_STATUS_MAX_LONG 13 +#define XIMP_STATUS_MAX_CHAR 52 + +typedef struct _Ximp_Status { + Ximp_AreaRec Area; + unsigned long Foreground; + unsigned long Background; + Colormap Colormap; + Pixmap Bg_Pixmap; + long LineSpacing; + Cursor Cursor; + Ximp_SizeRec AreaNeeded; + Window window; +} Ximp_StatusPropRec; + +/* for CallBack */ +typedef struct _Ximp_PreeditDrawDataPropRec { + long caret; + long chg_first; + long chg_length; +} Ximp_PreeditDrawDataPropRec, *Ximp_PreeditDrawDataProp; + +/* for Commit, PreEditDraw, StatusDraw 03/07/12 X11R5 */ +typedef struct _Ximp_CommitPropRec { + unsigned long icid; + char size; + char ctext[11]; +} Ximp_CommitPropRec, Ximp_PreEditDrawCallbackPropRec, + Ximp_StatusDrawCallbackPropRec; + +/* for PreEditDraw 03/07/16 X11R5 */ +typedef struct { + short chg_first; + short chg_length; +} Ximp_slong; + +typedef union { + Ximp_slong slong; + long l; +} Ximp_uslong; + +