comparison include/ConvProto.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
comparison
equal deleted inserted replaced
-1:000000000000 0:92745d501b9a
1 /* $Id: ConvProto.h,v 1.6 1999/01/07 03:06:22 ishisone Exp $ */
2 /*
3 * Copyright (c) 1991 Software Research Associates, Inc.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation for any purpose and without fee is hereby granted, provided
7 * that the above copyright notice appear in all copies and that both that
8 * copyright notice and this permission notice appear in supporting
9 * documentation, and that the name of Software Research Associates not be
10 * used in advertising or publicity pertaining to distribution of the
11 * software without specific, written prior permission. Software Research
12 * Associates makes no representations about the suitability of this software
13 * for any purpose. It is provided "as is" without express or implied
14 * warranty.
15 *
16 * Author: Makoto Ishisone, Software Research Associates, Inc., Japan
17 */
18
19 #ifndef _ConvProto_h
20 #define _ConvProto_h
21
22 /* $BJQ49%5!<%P$N%W%m%U%!%$%k$,F~$k%W%m%Q%F%#L>(B */
23 #define CONVERSION_PROFILE "_CONVERSION_PROFILE"
24
25 /* $BJQ49%5!<%P$N%W%m%U%!%$%k$N%W%m%Q%F%#$HJQ49B0@-$N%W%m%Q%F%#$N%?%$%W(B */
26 #define CONVERSION_ATTRIBUTE_TYPE "_CONVERSION_ATTRIBUTE_TYPE"
27
28 /* $B%W%m%H%3%k%P!<%8%g%sL>(B */
29 #define PROTOCOL_VERSION "PROTOCOL-2.0"
30
31 #define CONV_ATTR(code,len) ((unsigned long)((code)<<16)+(len))
32
33 #define UPPER16U(data) (((data)>>16)&0xffff)
34 #define UPPER16S(data) ((short)(((data)>>16)&0xffff))
35 #define LOWER16U(data) ((data)&0xffff)
36 #define LOWER16S(data) ((short)((data)&0xffff))
37
38 #define CODE_OF_ATTR(head) UPPER16U(head)
39 #define LENGTH_OF_ATTR(head) LOWER16U(head)
40
41 /*
42 * Conversion Profile Codes
43 */
44
45 #define CONVPROF_PROTOCOL_VERSION 1
46 #define CONVPROF_SUPPORTED_STYLES 2
47 #define CONVPROF_SUPPORTED_EXTENSIONS 3
48 #define CONVPROF_EXTENSION_DATA 4
49
50 /*
51 * Standard Conversion Attribute Codes (0-255)
52 */
53
54 /* 0-127: can be specified at any time (startup and during conversion) */
55 #define CONVATTR_NONE 0
56 #define CONVATTR_INDIRECT 1
57 #define CONVATTR_FOCUS_WINDOW 2
58 #define CONVATTR_SPOT_LOCATION 3
59 #define CONVATTR_CLIENT_AREA 4
60 #define CONVATTR_STATUS_AREA 5
61 #define CONVATTR_COLORMAP 6
62 #define CONVATTR_COLOR 7
63 #define CONVATTR_BACKGROUND_PIXMAP 8
64 #define CONVATTR_LINE_SPACING 9
65 #define CONVATTR_FONT_ATOMS 10
66 #define CONVATTR_CURSOR 11
67
68 /* 128-255: can be specified only at startup time */
69 #define CONVATTR_INPUT_STYLE 128
70 #define CONVATTR_EVENT_CAPTURE_METHOD 129
71 #define CONVATTR_USE_EXTENSION 255
72
73 /* argument for CONVATTR_INPUT_STYLE and CONVPROP_SUPPORTED_STYLES */
74 #define CONVARG_ROOTWINDOW 1L
75 #define CONVARG_OFFTHESPOT 2L
76 #define CONVARG_OVERTHESPOT 4L
77
78 /* argument for CONVATTR_EVENT_CAPTURE_METHOD */
79 #define CONVARG_NONE 0L
80 #define CONVARG_CREATE_INPUTONLY 1L
81 #define CONVARG_SELECT_FOCUS_WINDOW 2L
82
83 /*
84 * $B%W%m%U%!%$%k%G!<%?(B / $BJQ49B0@-%G!<%?$NI=8=J}K!(B
85 *
86 * $BJQ49%5!<%P$NFC@-$rI=$9%W%m%U%!%$%k%G!<%?$H!"JQ49$K4X$9$kB0@-$r;XDj$9(B
87 * $B$kJQ49B0@-%G!<%?$O6&DL$N%U%)!<%^%C%H$rMQ$$$k!#(B
88 *
89 * $B8D!9$N%G!<%?$O(B 32bit$BCM$NG[Ns$GI=8=$5$l$k!#:G=i$N(B 1$B%o!<%I$O%X%C%@$G!"(B
90 * $B$=$l$K(B 0$B%o!<%I0J>e$N%G!<%?$,B3$/!#%X%C%@$N>e0L(B 16bit $B$O$=$N%W%m%U%!%$(B
91 * $B%k(B / $BJQ49B0@-$N%3!<%I$rI=$7!"2<0L(B 16 bit $B$OB3$/%G!<%?$N%o!<%I?t(B
92 * (32bit $BC10L(B) $B$rI=$9!#(B
93 *
94 * +----------------+----------------+
95 * | Code (16bit) | Length (16bit) |
96 * +----------------+----------------+
97 * | Data0 |
98 * +---------------------------------+
99 * | ..... |
100 * +---------------------------------+
101 * | DataN |
102 * +---------------------------------+
103 *
104 * $B<B:]$N%W%m%U%!%$%k%G!<%?$dJQ49B0@-%G!<%?$O$3$N%G!<%?$,$$$/$D$+O"B3$7(B
105 * $B$?$b$N$G$"$k!#(B
106 */
107
108 /*
109 * $B%W%m%U%!%$%k%G!<%?(B
110 *
111 * $B%W%m%U%!%$%k%G!<%?MQ$N%3!<%I$O<!$N(B 4$B<oN`$,Dj5A$5$l$F$$$k!#JQ49B0@-(B
112 * $B%G!<%?$H0[$J$j!"%W%i%$%Y!<%HMQ$N%3!<%INN0h$J$I$OMQ0U$5$l$F$$$J$$!#(B
113 *
114 * Protocol Version
115 * code: 1
116 * data-length: 1
117 * data[0]:
118 * CARD32: protocol version atom ("PROTOCOL-2.0")
119 *
120 * $B%G!<%?$OJQ49%5!<%P$N%W%m%H%3%k%P!<%8%g%s$rI=$9%"%H%`$G$"$k!#$3$3(B
121 * $B$GDj5A$5$l$F$$$k%W%m%H%3%k$N%P!<%8%g%s$O(B "PROTOCOL-2.0" $B$G$"$k!#(B
122 *
123 * Supported Styles
124 * code: 2
125 * data-length: 1
126 * data[0]:
127 * CARD32: input styles
128 *
129 * $B%G!<%?$OJQ49%5!<%P$,%5%]!<%H$9$kF~NO%9%?%$%k$rI=$9!#%5%]!<%H$9$k(B
130 * $BF~NO%9%?%$%k$NCM$N(B bitwise-or $B$G$"$k!#(B
131 *
132 * Supported Extensions
133 * code: 3
134 * data-length: N
135 * data[0]:
136 * CARD32: extension atom 1 (Atom)
137 * ...
138 * data[N-1]:
139 * CARD32: extension atom N (Atom)
140 *
141 * $B%G!<%?$OJQ49%5!<%P$,%5%]!<%H$9$k3HD%$rI=$9%"%H%`$N%j%9%H$G$"$k!#(B
142 *
143 * Extension Data
144 * code: 4
145 * data-length: N
146 * data[0]:
147 * CARD32: extension atom (Atom)
148 * data[1] - data[N-1]:
149 * extension specific data
150 *
151 * $B%G!<%?$O3HD%FH<+$KDj5A$7$?%W%m%U%!%$%k%G!<%?$G$"$k!#I8=`%W%m%H%3(B
152 * $B%k$H$7$F$O%G!<%?$N@hF,$K3HD%%"%H%`(B ($B$3$l$O(BSupported Extensions
153 * $B$K;XDj$5$l$?$b$N$G$J$1$l$P$J$i$J$$(B)$B$r$D$1$k$3$H$r5,Dj$9$k$@$1$G!"(B
154 * $B$=$N8e$N%G!<%?$K4X$7$F$O0l@Z5,Dj$7$J$$!#(B
155 *
156 * $B%/%i%$%"%s%HB&$NL5MQ$N:.Mp$rKI$0$?$a!"(BProtocol Version $B$H(B Supported
157 * Styles$B$N9`L\$OI,$:$J$1$l$P$J$i$J$$!#$^$?!"(BExtension Data $B0J30$O%W%m%U%!(B
158 * $B%$%k%G!<%?$NCf$KF1$8%3!<%I$N%G!<%?$,J#?t$"$C$F$O$J$i$J$$!#(B
159 */
160
161 /*
162 * $BJQ49B0@-%G!<%?(B
163 *
164 * $BB0@-%3!<%I$N$&$A!"(B0 $B$+$i(B 255 $B$^$G$OI8=`%W%m%H%3%k$,;HMQ$9$k$b$N$G!"8=(B
165 * $B:_B0@-$,3d$j?6$i$l$F$$$J$$$+$i$H$$$C$F>!<j$K;HMQ$7$F$O$J$i$J$$!#$=$N(B
166 * $B$h$&$JL\E*$N$?$aB0@-%3!<%I(B 256 $B$+$i(B 65535 $B$,%W%i%$%Y!<%H%3!<%I3HD%NN(B
167 * $B0h$H$7$FMQ0U$5$l$F$$$k!#$?$@$7$3$NNN0h$N;HMQ$KEv$?$C$F$O$"$i$+$8$a$=(B
168 * $B$N3HD%%3!<%I$r;HMQ$9$k$3$H$r(B Use Extension ($B2<5-;2>H(B) $B$rMQ$$$F$"$i$+(B
169 * $B$8$a@k8@$9$kI,MW$,$"$k!#(B
170 *
171 * $BB0@-%G!<%?$N;XDjJ}K!$K$O!"JQ493+;O;~$K;XDj$9$kJ}K!$H!"JQ49Cf$K;XDj$9(B
172 * $B$kJ}K!$N(B 2$BDL$j$,$"$k$,!"B0@-%3!<%I$K$h$C$F$OJQ493+;O;~$K$7$+;XDj$G$-(B
173 * $B$J$$$b$N$,$"$k!#$=$3$G!"(B0-255 $B$NI8=`%3!<%I$N$&$A!"(B0 $B$+$i(B 127 $B$^$G$OJQ(B
174 * $B493+;O;~$G$bJQ49Cf$G$b;XDj$G$-$k$b$N!"(B128 $B$+$i(B 255 $B$^$G$OJQ493+;O;~$K(B
175 * $B$7$+;XDj$G$-$J$$$b$N!"$KJ,$1$F$"$k!#3HD%%3!<%I$K$D$$$F$OFC$K$3$N$h$&(B
176 * $B$J6hJL$ODj$a$J$$!#(B
177 *
178 * $B$3$N%W%m%H%3%k$GDj5A$5$l$kB0@-%3!<%I$O<!$NDL$j$G$"$k!#(B
179 *
180 * -- $BJQ493+;O;~$K$b!"JQ49ESCf$K$b;XDj$G$-$k$b$N(B --
181 *
182 * No Operation:
183 * code: 0
184 * data-length: N (could be 0)
185 * data: anything
186 *
187 * $B2?$b$7$J$$!#%W%m%Q%F%#$N$"$kItJ,$r%9%-%C%W$5$;$k$N$KJXMx!#(B
188 *
189 * Indirect Attribute:
190 * code: 1
191 * data-length: 1
192 * data[0]:
193 * CARD32: property name (Atom)
194 *
195 * $B;XDj$5$l$?%W%m%Q%F%#$K=>$C$FB0@-$r@_Dj$9$k!#(BCONVERSION_ATTRIBUTE
196 * $B%$%Y%s%H$GJ#?t$NB0@-%G!<%?$r@_Dj$7$?$$;~$d!"%$%Y%s%H$KB0@-%G!<%?$,(B
197 * $BF~$j@Z$i$J$$;~$K;HMQ$9$k!#(B
198 *
199 * Focus Window:
200 * code: 2
201 * data-length: 1
202 * data[0]:
203 * CARD32: focus window (Window)
204 *
205 * $B%U%)!<%+%9%&%#%s%I%&$r;XDj$9$k!#(B
206 *
207 * Spot Location:
208 * data-length: 1
209 * data[0]:
210 * INT16(upper 16bit): X
211 * INT16(lower 16bit): Y
212 *
213 * $B%9%]%C%H%m%1!<%7%g%s$r;XDj$9$k!#%Y!<%9%i%$%s$N3+;OE@$G;XDj$9$k!#(B
214 *
215 * Client Area:
216 * data-length: 2
217 * data[0]:
218 * INT16(upper 16bit): X
219 * INT16(lower 16bit): Y
220 * data[1]:
221 * CARD16(upper 16bit): Width
222 * CARD16(lower 16bit): Height
223 *
224 * $BJQ49%F%-%9%HI=<(NN0h$r;XDj$9$k!#(B
225 *
226 * Status Area:
227 * data-length: 2
228 * data[0]:
229 * INT16(upper 16bit): X
230 * INT16(lower 16bit): Y
231 * data[1]:
232 * CARD16(upper 16bit): Width
233 * CARD16(lower 16bit): Height
234 *
235 * $B%9%F!<%?%9I=<(NN0h$r;XDj$9$k!#(B
236 *
237 * Colormap:
238 * data-length: 1
239 * data[0]:
240 * CARD32: colormap (XID)
241 *
242 * $B%+%i!<%^%C%W(B ID $B$r;XDj$9$k!#(B
243 *
244 * Color:
245 * data-length: 2
246 * data[0]:
247 * CARD32: foreground pixel
248 * data[1]:
249 * CARD32: background pixel
250 *
251 * $B%U%)%"%0%i%&%s%I$H%P%C%/%0%i%&%s%I$N%T%/%;%kCM$r;XDj$9$k!#(B
252 *
253 * Background Pixmap:
254 * data-length: 1
255 * data[0]:
256 * CARD32: background pixmap (Pixmap)
257 *
258 * $B%P%C%/%0%i%&%s%I$N(B Pixmap ID $B$r;XDj$9$k!#(B
259 *
260 * Line Spacing:
261 * data-length: 1
262 * data[0]:
263 * CARD32: line spacing
264 *
265 * $B9T4V$r;XDj$9$k!#%Y!<%9%i%$%s4V$N5wN%$G;XDj$9$k!#(B
266 *
267 * Font Atoms:
268 * data-length: N (>0)
269 * data[0]:
270 * CARD32: font atom 1 (Atom)
271 * ...
272 * data[N-1]:
273 * CARD32: font atom N (Atom)
274 *
275 * $B;HMQ$9$k%U%)%s%H$N(B "FONT" $B%"%H%`$N%j%9%H$r;XDj$9$k!#(B
276 *
277 * Cursor:
278 * data-length: 1
279 * data[0]:
280 * CARD32: cursor (Cursor)
281 *
282 * $B%+!<%=%k(B ID $B$r;XDj$9$k!#(B
283 *
284 * -- $BJQ493+;O;~$N$_;XDj$G$-$k$b$N(B --
285 *
286 * Input Style:
287 * data-length: 1
288 * data[0]:
289 * CARD32: input style
290 *
291 * $BF~NOJ}K!$r;XDj$9$k!#(B
292 * $B%G%U%)%k%H$O(B Root Window Style $B$G$"$k!#(B
293 *
294 * Event Capture Method:
295 * data-length: 1
296 * data[0]:
297 * CARD32: event capture method
298 *
299 * $B%/%i%$%"%s%H%&%#%s%I%&$+$i$N%$%Y%s%H$N<hF@J}K!$r;XDj$9$k!#%G%U%)(B
300 * $B%k%H$O%/%i%$%"%s%H%&%#%s%I%&$NA0$K(B InputOnly $B%&%#%s%I%&$r:n$C$F(B
301 * $B$=$N%-!<%$%Y%s%H$r%;%l%/%H$9$k$H$$$&$b$N$G$"$k!#B>$NJ}K!$H$7$F$O!"(B
302 * $B%U%)!<%+%9%&%#%s%I%&(B ($B%U%)!<%+%9%&%#%s%I%&$,;XDj$5$l$F$$$J$1$l$P(B
303 * $B%/%i%$%"%s%H%&%#%s%I%&(B) $B$N%-!<%$%Y%s%H$rD>@\%;%l%/%H$9$k(B ($B$3$N>l(B
304 * $B9g!"JQ49Cf$O%/%i%$%"%s%H$O%-!<%$%Y%s%H$rL5;k$7$J$/$F$O$J$i$J$$(B)
305 * $B$b$N$H!"2?$b$7$J$$!"$D$^$jJQ49Cf$N%/%i%$%"%s%H$O%-!<%$%Y%s%H$r%U(B
306 * $B%m%s%H%(%s%I$K(B SendEvent $B$7$J$/$F$O$J$i$J$$!"$H$$$&J}K!$,$"$k!#(B
307 *
308 * Use Extension:
309 * data-length: N
310 * data[0]:
311 * CARD32: extension atom 1 (Atom)
312 * ...
313 * data[N-1]:
314 * CARD32: extension atom N (Atom)
315 *
316 * $B$3$NB0@-@_Dj$G;HMQ$5$l$k3HD%$r;XDj$9$k!#$3$3$G;XDj$9$k3HD%$O%5!<(B
317 * $B%P$,%5%]!<%H$7$F$$$k$b$N!"$D$^$j%W%m%U%!%$%k%G!<%?Cf$N(BSupported
318 * Extensions $B$K=q$+$l$?3HD%$G$J$1$l$P$J$i$J$$!#(B
319 */
320
321 #endif