343e73431c344d67b15871254c6d1ca7db8d3105
[free-sw/xcb/proto] / src / xproto.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
4 All Rights Reserved.
5
6 Permission is hereby granted, free of charge, to any person obtaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in all
14 copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
23 Except as contained in this notice, the names of the authors or their
24 institutions shall not be used in advertising or otherwise to promote the
25 sale, use or other dealings in this Software without prior written
26 authorization from the authors.
27 -->
28 <xcb header="xproto">
29   <!-- Core protocol types -->
30   
31   <struct name="CHAR2B">
32     <field type="CARD8" name="byte1" />
33     <field type="CARD8" name="byte2" />
34   </struct>
35   
36   <xidtype name="WINDOW" />
37   
38   <xidtype name="PIXMAP" />
39   
40   <xidtype name="CURSOR" />
41   
42   <xidtype name="FONT" />
43   
44   <xidtype name="GCONTEXT" />
45   
46   <xidtype name="COLORMAP" />
47   
48   <xidtype name="ATOM" />
49   
50   <xidunion name="DRAWABLE">
51     <type>WINDOW</type>
52     <type>PIXMAP</type>
53   </xidunion>
54   
55   <xidunion name="FONTABLE">
56     <type>FONT</type>
57     <type>GCONTEXT</type>
58   </xidunion>
59   
60   <typedef oldname="CARD32" newname="VISUALID" />
61
62   <typedef oldname="CARD32" newname="TIMESTAMP" />
63
64   <typedef oldname="CARD32" newname="KEYSYM" />
65
66   <typedef oldname="CARD8" newname="KEYCODE" />
67
68   <typedef oldname="CARD8" newname="BUTTON" />
69
70   <struct name="POINT">
71     <field type="INT16" name="x" />
72     <field type="INT16" name="y" />
73   </struct>
74
75   <struct name="RECTANGLE">
76     <field type="INT16" name="x" />
77     <field type="INT16" name="y" />
78     <field type="CARD16" name="width" />
79     <field type="CARD16" name="height" />
80   </struct>
81
82   <struct name="ARC">
83     <field type="INT16" name="x" />
84     <field type="INT16" name="y" />
85     <field type="CARD16" name="width" />
86     <field type="CARD16" name="height" />
87     <field type="INT16" name="angle1" />
88     <field type="INT16" name="angle2" />
89   </struct>
90
91   <!-- Connection setup-related types -->
92
93   <struct name="FORMAT">
94     <field type="CARD8" name="depth" />
95     <field type="CARD8" name="bits_per_pixel" />
96     <field type="CARD8" name="scanline_pad" />
97     <pad bytes="5" />
98   </struct>
99
100   <enum name="VisualClass">
101     <item name="StaticGray"> <value>0</value></item>
102     <item name="GrayScale">  <value>1</value></item>
103     <item name="StaticColor"><value>2</value></item>
104     <item name="PseudoColor"><value>3</value></item>
105     <item name="TrueColor">  <value>4</value></item>
106     <item name="DirectColor"><value>5</value></item>
107   </enum>
108
109   <struct name="VISUALTYPE">
110     <field type="VISUALID" name="visual_id" />
111     <field type="CARD8" name="class" />
112     <field type="CARD8" name="bits_per_rgb_value" />
113     <field type="CARD16" name="colormap_entries" />
114     <field type="CARD32" name="red_mask" />
115     <field type="CARD32" name="green_mask" />
116     <field type="CARD32" name="blue_mask" />
117     <pad bytes="4" />
118   </struct>
119
120   <struct name="DEPTH">
121     <field type="CARD8" name="depth" />
122     <pad bytes="1" />
123     <field type="CARD16" name="visuals_len" />
124     <pad bytes="4" />
125     <list type="VISUALTYPE" name="visuals">
126       <fieldref>visuals_len</fieldref>
127     </list>
128   </struct>
129
130   <struct name="SCREEN">
131     <field type="WINDOW" name="root" />
132     <field type="COLORMAP" name="default_colormap" />
133     <field type="CARD32" name="white_pixel" />
134     <field type="CARD32" name="black_pixel" />
135     <field type="CARD32" name="current_input_masks" />
136     <field type="CARD16" name="width_in_pixels" />
137     <field type="CARD16" name="height_in_pixels" />
138     <field type="CARD16" name="width_in_millimeters" />
139     <field type="CARD16" name="height_in_millimeters" />
140     <field type="CARD16" name="min_installed_maps" />
141     <field type="CARD16" name="max_installed_maps" />
142     <field type="VISUALID" name="root_visual" />
143     <field type="BYTE" name="backing_stores" />
144     <field type="BOOL" name="save_unders" />
145     <field type="CARD8" name="root_depth" />
146     <field type="CARD8" name="allowed_depths_len" />
147     <list type="DEPTH" name="allowed_depths">
148       <fieldref>allowed_depths_len</fieldref>
149     </list>
150   </struct>
151
152   <struct name="SetupRequest">
153     <field type="CARD8" name="byte_order" />
154     <pad bytes="1" />
155     <field type="CARD16" name="protocol_major_version" />
156     <field type="CARD16" name="protocol_minor_version" />
157     <field type="CARD16" name="authorization_protocol_name_len" />
158     <field type="CARD16" name="authorization_protocol_data_len" />
159     <list type="char" name="authorization_protocol_name">
160       <fieldref>authorization_protocol_name_len</fieldref>
161     </list>
162     <list type="char" name="authorization_protocol_data">
163       <fieldref>authorization_protocol_data_len</fieldref>
164     </list>
165   </struct>
166
167   <struct name="SetupFailed">
168     <field type="CARD8" name="status" /> <!-- always 0 -> Failed -->
169     <field type="CARD8" name="reason_len" />
170     <field type="CARD16" name="protocol_major_version" />
171     <field type="CARD16" name="protocol_minor_version" />
172     <field type="CARD16" name="length" />
173     <list type="char" name="reason">
174       <fieldref>reason_len</fieldref>
175     </list>
176   </struct>
177
178   <struct name="SetupAuthenticate">
179     <field type="CARD8" name="status" /> <!-- always 2 -> Authenticate -->
180     <pad bytes="5" />
181     <field type="CARD16" name="length" />
182     <list type="char" name="reason">
183       <op op="*">
184         <fieldref>length</fieldref>
185         <value>4</value>
186       </op>
187     </list>
188   </struct>
189
190   <enum name="ImageOrder">
191     <item name="LSBFirst"><value>0</value></item>
192     <item name="MSBFirst"><value>1</value></item>
193   </enum>
194
195   <struct name="Setup">
196     <field type="CARD8" name="status" /> <!-- always 1 -> Success -->
197     <pad bytes="1" />
198     <field type="CARD16" name="protocol_major_version" />
199     <field type="CARD16" name="protocol_minor_version" />
200     <field type="CARD16" name="length" />
201     <field type="CARD32" name="release_number" />
202     <field type="CARD32" name="resource_id_base" />
203     <field type="CARD32" name="resource_id_mask" />
204     <field type="CARD32" name="motion_buffer_size" />
205     <field type="CARD16" name="vendor_len" />
206     <field type="CARD16" name="maximum_request_length" />
207     <field type="CARD8" name="roots_len" />
208     <field type="CARD8" name="pixmap_formats_len" />
209     <field type="CARD8" name="image_byte_order" />
210     <field type="CARD8" name="bitmap_format_bit_order" />
211     <field type="CARD8" name="bitmap_format_scanline_unit" />
212     <field type="CARD8" name="bitmap_format_scanline_pad" />
213     <field type="KEYCODE" name="min_keycode" />
214     <field type="KEYCODE" name="max_keycode" />
215     <pad bytes="4" />
216     <list type="char" name="vendor">
217       <fieldref>vendor_len</fieldref>
218     </list>
219     <list type="FORMAT" name="pixmap_formats">
220       <fieldref>pixmap_formats_len</fieldref>
221     </list>
222     <list type="SCREEN" name="roots">
223       <fieldref>roots_len</fieldref>
224     </list>
225   </struct>
226
227   <!-- Core event types -->
228   
229   <enum name="ModMask">
230     <item name="Shift">  <bit>0</bit></item>
231     <item name="Lock">   <bit>1</bit></item>
232     <item name="Control"><bit>2</bit></item>
233     <item name="1">      <bit>3</bit></item>
234     <item name="2">      <bit>4</bit></item>
235     <item name="3">      <bit>5</bit></item>
236     <item name="4">      <bit>6</bit></item>
237     <item name="5">      <bit>7</bit></item>
238   </enum>
239
240   <event name="KeyPress" number="2">
241     <field type="KEYCODE" name="detail" />
242     <field type="TIMESTAMP" name="time" />
243     <field type="WINDOW" name="root" />
244     <field type="WINDOW" name="event" />
245     <field type="WINDOW" name="child" />
246     <field type="INT16" name="root_x" />
247     <field type="INT16" name="root_y" />
248     <field type="INT16" name="event_x" />
249     <field type="INT16" name="event_y" />
250     <field type="CARD16" name="state" />
251     <field type="BOOL" name="same_screen" />
252   </event>
253
254   <eventcopy name="KeyRelease" number="3" ref="KeyPress" />
255
256   <enum name="ButtonMask">
257     <item name="1">      <bit>8</bit></item>
258     <item name="2">      <bit>9</bit></item>
259     <item name="3">      <bit>10</bit></item>
260     <item name="4">      <bit>11</bit></item>
261     <item name="5">      <bit>12</bit></item>
262     <item name="Any">    <bit>15</bit></item>
263   </enum>
264
265   <event name="ButtonPress" number="4">
266     <field type="BUTTON" name="detail" />
267     <field type="TIMESTAMP" name="time" />
268     <field type="WINDOW" name="root" />
269     <field type="WINDOW" name="event" />
270     <field type="WINDOW" name="child" />
271     <field type="INT16" name="root_x" />
272     <field type="INT16" name="root_y" />
273     <field type="INT16" name="event_x" />
274     <field type="INT16" name="event_y" />
275     <field type="CARD16" name="state" />
276     <field type="BOOL" name="same_screen" />
277   </event>
278
279   <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
280
281   <!-- MotionNotify detail -->
282   <enum name="Motion">
283     <item name="Normal"><value>0</value></item>
284     <item name="Hint">  <value>1</value></item>
285   </enum>
286
287   <event name="MotionNotify" number="6">
288     <field type="BYTE" name="detail" />
289     <field type="TIMESTAMP" name="time" />
290     <field type="WINDOW" name="root" />
291     <field type="WINDOW" name="event" />
292     <field type="WINDOW" name="child" />
293     <field type="INT16" name="root_x" />
294     <field type="INT16" name="root_y" />
295     <field type="INT16" name="event_x" />
296     <field type="INT16" name="event_y" />
297     <field type="CARD16" name="state" />
298     <field type="BOOL" name="same_screen" />
299   </event>
300
301   <enum name="NotifyDetail">
302     <item name="Ancestor">        <value>0</value></item>
303     <item name="Virtual">         <value>1</value></item>
304     <item name="Inferior">        <value>2</value></item>
305     <item name="Nonlinear">       <value>3</value></item>
306     <item name="NonlinearVirtual"><value>4</value></item>
307     <item name="Pointer">         <value>5</value></item>
308     <item name="PointerRoot">     <value>6</value></item>
309     <item name="None">            <value>7</value></item>
310   </enum>
311
312   <enum name="NotifyMode">
313     <item name="Normal">      <value>0</value></item>
314     <item name="Grab">        <value>1</value></item>
315     <item name="Ungrab">      <value>2</value></item>
316     <item name="WhileGrabbed"><value>3</value></item>
317   </enum>
318
319   <event name="EnterNotify" number="7">
320     <field type="BYTE" name="detail" />
321     <field type="TIMESTAMP" name="time" />
322     <field type="WINDOW" name="root" />
323     <field type="WINDOW" name="event" />
324     <field type="WINDOW" name="child" />
325     <field type="INT16" name="root_x" />
326     <field type="INT16" name="root_y" />
327     <field type="INT16" name="event_x" />
328     <field type="INT16" name="event_y" />
329     <field type="CARD16" name="state" />
330     <field type="BYTE" name="mode" />
331     <field type="BYTE" name="same_screen_focus" />
332   </event>
333
334   <eventcopy name="LeaveNotify" number="8" ref="EnterNotify" />
335
336   <event name="FocusIn" number="9">
337     <field type="BYTE" name="detail" />
338     <field type="WINDOW" name="event" />
339     <field type="BYTE" name="mode" />
340   </event>
341
342   <eventcopy name="FocusOut" number="10" ref="FocusIn" />
343
344   <event name="KeymapNotify" number="11" no-sequence-number="true">
345     <list type="CARD8" name="keys"><value>31</value></list>
346   </event>
347
348   <event name="Expose" number="12">
349     <pad bytes="1" />
350     <field type="WINDOW" name="window" />
351     <field type="CARD16" name="x" />
352     <field type="CARD16" name="y" />
353     <field type="CARD16" name="width" />
354     <field type="CARD16" name="height" />
355     <field type="CARD16" name="count" />
356   </event>
357
358   <event name="GraphicsExposure" number="13">
359     <pad bytes="1" />
360     <field type="DRAWABLE" name="drawable" />
361     <field type="CARD16" name="x" />
362     <field type="CARD16" name="y" />
363     <field type="CARD16" name="width" />
364     <field type="CARD16" name="height" />
365     <field type="CARD16" name="minor_opcode" />
366     <field type="CARD16" name="count" />
367     <field type="CARD8" name="major_opcode" />
368   </event>
369
370   <event name="NoExposure" number="14">
371     <pad bytes="1" />
372     <field type="DRAWABLE" name="drawable" />
373     <field type="CARD16" name="minor_opcode" />
374     <field type="CARD8" name="major_opcode" />
375   </event>
376
377   <enum name="Visibility">
378     <item name="Unobscured">       <value>0</value></item>
379     <item name="PartiallyObscured"><value>1</value></item>
380     <item name="FullyObscured">    <value>2</value></item>
381   </enum>
382
383   <event name="VisibilityNotify" number="15">
384     <pad bytes="1" />
385     <field type="WINDOW" name="window" />
386     <field type="BYTE" name="state" />
387   </event>
388
389   <event name="CreateNotify" number="16">
390     <pad bytes="1" />
391     <field type="WINDOW" name="parent" />
392     <field type="WINDOW" name="window" />
393     <field type="INT16" name="x" />
394     <field type="INT16" name="y" />
395     <field type="CARD16" name="width" />
396     <field type="CARD16" name="height" />
397     <field type="CARD16" name="border_width" />
398     <field type="BOOL" name="override_redirect" />
399   </event>
400
401   <event name="DestroyNotify" number="17">
402     <pad bytes="1" />
403     <field type="WINDOW" name="event" />
404     <field type="WINDOW" name="window" />
405   </event>
406
407   <event name="UnmapNotify" number="18">
408     <pad bytes="1" />
409     <field type="WINDOW" name="event" />
410     <field type="WINDOW" name="window" />
411     <field type="BOOL" name="from_configure" />
412   </event>
413
414   <event name="MapNotify" number="19">
415     <pad bytes="1" />
416     <field type="WINDOW" name="event" />
417     <field type="WINDOW" name="window" />
418     <field type="BOOL" name="override_redirect" />
419   </event>
420
421   <event name="MapRequest" number="20">
422     <pad bytes="1" />
423     <field type="WINDOW" name="parent" />
424     <field type="WINDOW" name="window" />
425   </event>
426
427   <event name="ReparentNotify" number="21">
428     <pad bytes="1" />
429     <field type="WINDOW" name="event" />
430     <field type="WINDOW" name="window" />
431     <field type="WINDOW" name="parent" />
432     <field type="INT16" name="x" />
433     <field type="INT16" name="y" />
434     <field type="BOOL" name="override_redirect" />
435   </event>
436
437   <event name="ConfigureNotify" number="22">
438     <pad bytes="1" />
439     <field type="WINDOW" name="event" />
440     <field type="WINDOW" name="window" />
441     <field type="WINDOW" name="above_sibling" />
442     <field type="INT16" name="x" />
443     <field type="INT16" name="y" />
444     <field type="CARD16" name="width" />
445     <field type="CARD16" name="height" />
446     <field type="CARD16" name="border_width" />
447     <field type="BOOL" name="override_redirect" />
448   </event>
449
450   <event name="ConfigureRequest" number="23">
451     <field type="BYTE" name="stack_mode" />
452     <field type="WINDOW" name="parent" />
453     <field type="WINDOW" name="window" />
454     <field type="WINDOW" name="sibling" />
455     <field type="INT16" name="x" />
456     <field type="INT16" name="y" />
457     <field type="CARD16" name="width" />
458     <field type="CARD16" name="height" />
459     <field type="CARD16" name="border_width" />
460     <field type="CARD16" name="value_mask" />
461   </event>
462
463   <event name="GravityNotify" number="24">
464     <pad bytes="1" />
465     <field type="WINDOW" name="event" />
466     <field type="WINDOW" name="window" />
467     <field type="INT16" name="x" />
468     <field type="INT16" name="y" />
469   </event>
470
471   <event name="ResizeRequest" number="25">
472     <pad bytes="1" />
473     <field type="WINDOW" name="window" />
474     <field type="CARD16" name="width" />
475     <field type="CARD16" name="height" />
476   </event>
477
478   <enum name="Place">
479     <item name="OnTop">   <value>0</value></item>
480     <item name="OnBottom"><value>1</value></item>
481   </enum>
482
483   <event name="CirculateNotify" number="26">
484     <pad bytes="1" />
485     <field type="WINDOW" name="event" />
486     <field type="WINDOW" name="window" />
487     <pad bytes="4" />
488     <field type="BYTE" name="place" />
489   </event>
490
491   <eventcopy name="CirculateRequest" number="27" ref="CirculateNotify" />
492
493   <enum name="Property">
494     <item name="NewValue"><value>0</value></item>
495     <item name="Delete">  <value>1</value></item>
496   </enum>
497
498   <event name="PropertyNotify" number="28">
499     <pad bytes="1" />
500     <field type="WINDOW" name="window" />
501     <field type="ATOM" name="atom" />
502     <field type="TIMESTAMP" name="time" />
503     <field type="BYTE" name="state" />
504   </event>
505
506   <event name="SelectionClear" number="29">
507     <pad bytes="1" />
508     <field type="TIMESTAMP" name="time" />
509     <field type="WINDOW" name="owner" />
510     <field type="ATOM" name="selection" />
511   </event>
512
513   <event name="SelectionRequest" number="30">
514     <pad bytes="1" />
515     <field type="TIMESTAMP" name="time" />
516     <field type="WINDOW" name="owner" />
517     <field type="WINDOW" name="requestor" />
518     <field type="ATOM" name="selection" />
519     <field type="ATOM" name="target" />
520     <field type="ATOM" name="property" />
521   </event>
522
523   <event name="SelectionNotify" number="31">
524     <pad bytes="1" />
525     <field type="TIMESTAMP" name="time" />
526     <field type="WINDOW" name="requestor" />
527     <field type="ATOM" name="selection" />
528     <field type="ATOM" name="target" />
529     <field type="ATOM" name="property" />
530   </event>
531
532   <enum name="ColormapState">
533     <item name="Uninstalled"><value>0</value></item>
534     <item name="Installed">  <value>1</value></item>
535   </enum>
536
537   <event name="ColormapNotify" number="32">
538     <pad bytes="1" />
539     <field type="WINDOW" name="window" />
540     <field type="COLORMAP" name="colormap" />
541     <field type="BOOL" name="new" />
542     <field type="BYTE" name="state" />
543   </event>
544
545   <union name="ClientMessageData">
546     <!-- The format member of the ClientMessage event determines which array
547          to use. -->
548     <list type="CARD8"  name="data8" ><value>20</value></list> <!--  8 -->
549     <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
550     <list type="CARD32" name="data32"><value>5</value></list>  <!-- 32 -->
551   </union>
552
553   <event name="ClientMessage" number="33">
554     <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
555     <field type="WINDOW" name="window" />
556     <field type="ATOM" name="type" />
557     <field type="ClientMessageData" name="data" />
558   </event>
559
560   <enum name="Mapping">
561     <item name="Modifier"><value>0</value></item>
562     <item name="Keyboard"><value>1</value></item>
563     <item name="Pointer"> <value>2</value></item>
564   </enum>
565
566   <event name="MappingNotify" number="34">
567     <pad bytes="1" />
568     <field type="BYTE" name="request" />
569     <field type="KEYCODE" name="first_keycode" />
570     <field type="CARD8" name="count" />
571   </event>
572
573
574
575   <!-- Core error types -->
576
577
578
579   <error name="Request" number="1">
580     <field type="CARD32" name="bad_value" />
581     <field type="CARD16" name="minor_opcode" />
582     <field type="CARD8" name="major_opcode" />
583   </error>
584
585   <error name="Value" number="2">
586     <field type="CARD32" name="bad_value" />
587     <field type="CARD16" name="minor_opcode" />
588     <field type="CARD8" name="major_opcode" />
589   </error>
590
591   <errorcopy name="Window" number="3" ref="Value" />
592   <errorcopy name="Pixmap" number="4" ref="Value" />
593   <errorcopy name="Atom" number="5" ref="Value" />
594   <errorcopy name="Cursor" number="6" ref="Value" />
595   <errorcopy name="Font" number="7" ref="Value" />
596   <errorcopy name="Match" number="8" ref="Request" />
597   <errorcopy name="Drawable" number="9" ref="Value" />
598   <errorcopy name="Access" number="10" ref="Request" />
599   <errorcopy name="Alloc" number="11" ref="Request" />
600   <errorcopy name="Colormap" number="12" ref="Value" />
601   <errorcopy name="GContext" number="13" ref="Value" />
602   <errorcopy name="IDChoice" number="14" ref="Value" />
603   <errorcopy name="Name" number="15" ref="Request" />
604   <errorcopy name="Length" number="16" ref="Request" />
605   <errorcopy name="Implementation" number="17" ref="Request" />
606
607
608
609   <!-- The core requests, in major number order. -->
610   <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
611
612
613
614   <enum name="WindowClass">
615     <item name="CopyFromParent"><value>0</value></item>
616     <item name="InputOutput">   <value>1</value></item>
617     <item name="InputOnly">     <value>2</value></item>
618   </enum>
619
620   <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
621   <enum name="CW">
622     <item name="BackPixmap">      <bit>0</bit></item>
623     <item name="BackPixel">       <bit>1</bit></item>
624     <item name="BorderPixmap">    <bit>2</bit></item>
625     <item name="BorderPixel">     <bit>3</bit></item>
626     <item name="BitGravity">      <bit>4</bit></item>
627     <item name="WinGravity">      <bit>5</bit></item>
628     <item name="BackingStore">    <bit>6</bit></item>
629     <item name="BackingPlanes">   <bit>7</bit></item>
630     <item name="BackingPixel">    <bit>8</bit></item>
631     <item name="OverrideRedirect"><bit>9</bit></item>
632     <item name="SaveUnder">       <bit>10</bit></item>
633     <item name="EventMask">       <bit>11</bit></item>
634     <item name="DontPropagate">   <bit>12</bit></item>
635     <item name="Colormap">        <bit>13</bit></item>
636     <item name="Cursor">          <bit>14</bit></item>
637   </enum>
638   
639   <enum name="BackPixmap">
640     <item name="None">          <value>0</value></item>
641     <item name="ParentRelative"><value>1</value></item>
642   </enum>
643
644   <enum name="Gravity">
645     <item name="BitForget"><value>0</value></item>
646     <item name="WinUnmap"> <value>0</value></item>
647     <item name="NorthWest"><value>1</value></item>
648     <item name="North">    <value>2</value></item>
649     <item name="NorthEast"><value>3</value></item>
650     <item name="West">     <value>4</value></item>
651     <item name="Center">   <value>5</value></item>
652     <item name="East">     <value>6</value></item>
653     <item name="SouthWest"><value>7</value></item>
654     <item name="South">    <value>8</value></item>
655     <item name="SouthEast"><value>9</value></item>
656     <item name="Static">   <value>10</value></item>
657   </enum>
658
659   <!-- Also used in XCBSCREEN field backing_stores -->
660   <enum name="BackingStore">
661     <item name="NotUseful"> <value>0</value></item>
662     <item name="WhenMapped"><value>1</value></item>
663     <item name="Always">    <value>2</value></item>
664   </enum>
665
666   <enum name="EventMask">
667     <item name="NoEvent">           <value>0</value></item>
668     <item name="KeyPress">            <bit>0</bit></item>
669     <item name="KeyRelease">          <bit>1</bit></item>
670     <item name="ButtonPress">         <bit>2</bit></item>
671     <item name="ButtonRelease">       <bit>3</bit></item>
672     <item name="EnterWindow">         <bit>4</bit></item>
673     <item name="LeaveWindow">         <bit>5</bit></item>
674     <item name="PointerMotion">       <bit>6</bit></item>
675     <item name="PointerMotionHint">   <bit>7</bit></item>
676     <item name="Button1Motion">       <bit>8</bit></item>
677     <item name="Button2Motion">       <bit>9</bit></item>
678     <item name="Button3Motion">       <bit>10</bit></item>
679     <item name="Button4Motion">       <bit>11</bit></item>
680     <item name="Button5Motion">       <bit>12</bit></item>
681     <item name="ButtonMotion">        <bit>13</bit></item>
682     <item name="KeymapState">         <bit>14</bit></item>
683     <item name="Exposure">            <bit>15</bit></item>
684     <item name="VisibilityChange">    <bit>16</bit></item>
685     <item name="StructureNotify">     <bit>17</bit></item>
686     <item name="ResizeRedirect">      <bit>18</bit></item>
687     <item name="SubstructureNotify">  <bit>19</bit></item>
688     <item name="SubstructureRedirect"><bit>20</bit></item>
689     <item name="FocusChange">         <bit>21</bit></item>
690     <item name="PropertyChange">      <bit>22</bit></item>
691     <item name="ColorMapChange">      <bit>23</bit></item>
692     <item name="OwnerGrabButton">     <bit>24</bit></item>
693   </enum>
694
695   <request name="CreateWindow" opcode="1">
696     <field type="CARD8" name="depth" />
697     <field type="WINDOW" name="wid" />
698     <field type="WINDOW" name="parent" />
699     <field type="INT16" name="x" />
700     <field type="INT16" name="y" />
701     <field type="CARD16" name="width" />
702     <field type="CARD16" name="height" />
703     <field type="CARD16" name="border_width" />
704     <field type="CARD16" name="class" />
705     <field type="VISUALID" name="visual" />
706     <valueparam value-mask-type="CARD32"
707                 value-mask-name="value_mask"
708                 value-list-name="value_list" />
709   </request>
710
711   <request name="ChangeWindowAttributes" opcode="2">
712     <pad bytes="1" />
713     <field type="WINDOW" name="window" />
714     <valueparam value-mask-type="CARD32"
715                 value-mask-name="value_mask"
716                 value-list-name="value_list" />
717   </request>
718   
719   <enum name="MapState">
720     <item name="Unmapped">  <value>0</value></item>
721     <item name="Unviewable"><value>1</value></item>
722     <item name="Viewable">  <value>2</value></item>
723   </enum>
724
725   <request name="GetWindowAttributes" opcode="3">
726     <pad bytes="1" />
727     <field type="WINDOW" name="window" />
728     <reply>
729       <field type="CARD8" name="backing_store" />
730       <field type="VISUALID" name="visual" />
731       <field type="CARD16" name="class" />
732       <field type="CARD8" name="bit_gravity" />
733       <field type="CARD8" name="win_gravity" />
734       <field type="CARD32" name="backing_planes" />
735       <field type="CARD32" name="backing_pixel" />
736       <field type="BOOL" name="save_under" />
737       <field type="BOOL" name="map_is_installed" />
738       <field type="CARD8" name="map_state" />
739       <field type="BOOL" name="override_redirect" />
740       <field type="COLORMAP" name="colormap" />
741       <field type="CARD32" name="all_event_masks" />
742       <field type="CARD32" name="your_event_mask" />
743       <field type="CARD16" name="do_not_propagate_mask" />
744     </reply>
745   </request>
746
747   <request name="DestroyWindow" opcode="4">
748     <pad bytes="1" />
749     <field type="WINDOW" name="window" />
750   </request>
751
752   <request name="DestroySubwindows" opcode="5">
753     <pad bytes="1" />
754     <field type="WINDOW" name="window" />
755   </request>
756   
757   <enum name="SetMode">
758     <item name="Insert"><value>0</value></item>
759     <item name="Delete"><value>1</value></item>
760   </enum>
761
762   <request name="ChangeSaveSet" opcode="6">
763     <field type="BYTE" name="mode" />
764     <field type="WINDOW" name="window" />
765   </request>
766
767   <request name="ReparentWindow" opcode="7">
768     <pad bytes="1" />
769     <field type="WINDOW" name="window" />
770     <field type="WINDOW" name="parent" />
771     <field type="INT16" name="x" />
772     <field type="INT16" name="y" />
773   </request>
774
775   <request name="MapWindow" opcode="8">
776     <pad bytes="1" />
777     <field type="WINDOW" name="window" />
778   </request>
779
780   <request name="MapSubwindows" opcode="9">
781     <pad bytes="1" />
782     <field type="WINDOW" name="window" />
783   </request>
784
785   <request name="UnmapWindow" opcode="10">
786     <pad bytes="1" />
787     <field type="WINDOW" name="window" />
788   </request>
789
790   <request name="UnmapSubwindows" opcode="11">
791     <pad bytes="1" />
792     <field type="WINDOW" name="window" />
793   </request>
794   
795   <enum name="ConfigWindow">
796     <item name="X">          <bit>0</bit></item>
797     <item name="Y">          <bit>1</bit></item>
798     <item name="Width">      <bit>2</bit></item>
799     <item name="Height">     <bit>3</bit></item>
800     <item name="BorderWidth"><bit>4</bit></item>
801     <item name="Sibling">    <bit>5</bit></item>
802     <item name="StackMode">  <bit>6</bit></item>
803   </enum>
804   
805   <enum name="StackMode">
806     <item name="Above">   <value>0</value></item>
807     <item name="Below">   <value>1</value></item>
808     <item name="TopIf">   <value>2</value></item>
809     <item name="BottomIf"><value>3</value></item>
810     <item name="Opposite"><value>4</value></item>
811   </enum>
812
813   <request name="ConfigureWindow" opcode="12">
814     <pad bytes="1" />
815     <field type="WINDOW" name="window" />
816     <valueparam value-mask-type="CARD16"
817                 value-mask-name="value_mask"
818                 value-list-name="value_list" />
819   </request>
820
821   <enum name="Circulate">
822     <item name="RaiseLowest"> <value>0</value></item>
823     <item name="LowerHighest"><value>1</value></item>
824   </enum>
825
826   <request name="CirculateWindow" opcode="13">
827     <field type="CARD8" name="direction" />
828     <field type="WINDOW" name="window" />
829   </request>
830
831   <request name="GetGeometry" opcode="14">
832     <pad bytes="1" />
833     <field type="DRAWABLE" name="drawable" />
834     <reply>
835       <field type="CARD8" name="depth" />
836       <field type="WINDOW" name="root" />
837       <field type="INT16" name="x" />
838       <field type="INT16" name="y" />
839       <field type="CARD16" name="width" />
840       <field type="CARD16" name="height" />
841       <field type="CARD16" name="border_width" />
842     </reply>
843   </request>
844
845   <request name="QueryTree" opcode="15">
846     <pad bytes="1" />
847     <field type="WINDOW" name="window" />
848     <reply>
849       <pad bytes="1" />
850       <field type="WINDOW" name="root" />
851       <field type="WINDOW" name="parent" />
852       <field type="CARD16" name="children_len" />
853       <pad bytes="14" />
854       <list type="WINDOW" name="children">
855         <fieldref>children_len</fieldref>
856       </list>
857     </reply>
858   </request>
859
860   <request name="InternAtom" opcode="16">
861     <field type="BOOL" name="only_if_exists" />
862     <field type="CARD16" name="name_len" />
863     <pad bytes="2" />
864     <list type="char" name="name">
865       <fieldref>name_len</fieldref>
866     </list>
867     <reply>
868       <pad bytes="1" />
869       <field type="ATOM" name="atom" />
870     </reply>
871   </request>
872
873   <request name="GetAtomName" opcode="17">
874     <pad bytes="1" />
875     <field type="ATOM" name="atom" />
876     <reply>
877       <pad bytes="1" />
878       <field type="CARD16" name="name_len" />
879       <pad bytes="22" />
880       <list type="CARD8" name="name">
881         <fieldref>name_len</fieldref>
882       </list>
883     </reply>
884   </request>
885   
886   <enum name="PropMode">
887     <item name="Replace"><value>0</value></item>
888     <item name="Prepend"><value>1</value></item>
889     <item name="Append"> <value>2</value></item>
890   </enum>
891
892   <request name="ChangeProperty" opcode="18">
893     <field type="CARD8" name="mode" />
894     <field type="WINDOW" name="window" />
895     <field type="ATOM" name="property" />
896     <field type="ATOM" name="type" />
897     <field type="CARD8" name="format" />
898     <pad bytes="3" />
899     <field type="CARD32" name="data_len" />
900     <list type="void" name="data">
901       <op op="/">
902         <op op="*">
903           <fieldref>data_len</fieldref>
904           <fieldref>format</fieldref>
905         </op>
906         <value>8</value>
907       </op>
908     </list>
909   </request>
910
911   <request name="DeleteProperty" opcode="19">
912     <pad bytes="1" />
913     <field type="WINDOW" name="window" />
914     <field type="ATOM" name="property" />
915   </request>
916   
917   <enum name="GetPropertyType">
918     <item name="Any"><value>0</value></item>
919   </enum>
920
921   <request name="GetProperty" opcode="20">
922     <field type="BOOL" name="delete" />
923     <field type="WINDOW" name="window" />
924     <field type="ATOM" name="property" />
925     <field type="ATOM" name="type" />
926     <field type="CARD32" name="long_offset" />
927     <field type="CARD32" name="long_length" />
928     <reply>
929       <field type="CARD8" name="format" />
930       <field type="ATOM" name="type" />
931       <field type="CARD32" name="bytes_after" />
932       <field type="CARD32" name="value_len" />
933       <pad bytes="12" />
934       <list type="void" name="value">
935         <fieldref>value_len</fieldref>
936       </list>
937     </reply>
938   </request>
939
940   <request name="ListProperties" opcode="21">
941     <pad bytes="1" />
942     <field type="WINDOW" name="window" />
943     <reply>
944       <pad bytes="1" />
945       <field type="CARD16" name="atoms_len" />
946       <pad bytes="22" />
947       <list type="ATOM" name="atoms">
948         <fieldref>atoms_len</fieldref>
949       </list>
950     </reply>
951   </request>
952
953   <request name="SetSelectionOwner" opcode="22">
954     <pad bytes="1" />
955     <field type="WINDOW" name="owner" />
956     <field type="ATOM" name="selection" />
957     <field type="TIMESTAMP" name="time" />
958   </request>
959
960   <request name="GetSelectionOwner" opcode="23">
961     <pad bytes="1" />
962     <field type="ATOM" name="selection" />
963     <reply>
964       <pad bytes="1" />
965       <field type="WINDOW" name="owner" />
966     </reply>
967   </request>
968
969   <request name="ConvertSelection" opcode="24">
970     <pad bytes="1" />
971     <field type="WINDOW" name="requestor" />
972     <field type="ATOM" name="selection" />
973     <field type="ATOM" name="target" />
974     <field type="ATOM" name="property" />
975     <field type="TIMESTAMP" name="time" />
976   </request>
977
978   <enum name="SendEventDest">
979     <item name="PointerWindow"><value>0</value></item>
980     <item name="ItemFocus">    <value>1</value></item>
981   </enum>
982
983   <request name="SendEvent" opcode="25">
984     <field type="BOOL" name="propagate" />
985     <field type="WINDOW" name="destination" />
986     <field type="CARD32" name="event_mask" />
987     <list type="char" name="event"><value>32</value></list>
988   </request>
989
990   <enum name="GrabMode">
991     <item name="Sync"> <value>0</value></item>
992     <item name="Async"><value>1</value></item>
993   </enum>
994
995   <enum name="GrabStatus">
996     <item name="Success">       <value>0</value></item>
997     <item name="AlreadyGrabbed"><value>1</value></item>
998     <item name="InvalidTime">   <value>2</value></item>
999     <item name="NotViewable">   <value>3</value></item>
1000     <item name="Frozen">        <value>4</value></item>
1001   </enum>
1002
1003   <request name="GrabPointer" opcode="26">
1004     <field type="BOOL" name="owner_events" />
1005     <field type="WINDOW" name="grab_window" />
1006     <field type="CARD16" name="event_mask" />
1007     <field type="BYTE" name="pointer_mode" />
1008     <field type="BYTE" name="keyboard_mode" />
1009     <field type="WINDOW" name="confine_to" />
1010     <field type="CURSOR" name="cursor" />
1011     <field type="TIMESTAMP" name="time" />
1012     <reply>
1013       <field type="BYTE" name="status" />
1014     </reply>
1015   </request>
1016
1017   <request name="UngrabPointer" opcode="27">
1018     <pad bytes="1" />
1019     <field type="TIMESTAMP" name="time" />
1020   </request>
1021
1022   <enum name="ButtonIndex">
1023      <item name="Any"><value>0</value></item>
1024      <item name="1">  <value>1</value></item>
1025      <item name="2">  <value>2</value></item>
1026      <item name="3">  <value>3</value></item>
1027      <item name="4">  <value>4</value></item>
1028      <item name="5">  <value>5</value></item>
1029   </enum>
1030
1031   <request name="GrabButton" opcode="28">
1032     <field type="BOOL" name="owner_events" />
1033     <field type="WINDOW" name="grab_window" />
1034     <field type="CARD16" name="event_mask" />
1035     <field type="CARD8" name="pointer_mode" />
1036     <field type="CARD8" name="keyboard_mode" />
1037     <field type="WINDOW" name="confine_to" />
1038     <field type="CURSOR" name="cursor" />
1039     <field type="CARD8" name="button" />
1040     <pad bytes="1" />
1041     <field type="CARD16" name="modifiers" />
1042   </request>
1043
1044   <request name="UngrabButton" opcode="29">
1045     <field type="CARD8" name="button" />
1046     <field type="WINDOW" name="grab_window" />
1047     <field type="CARD16" name="modifiers" />
1048     <pad bytes="2" />
1049   </request>
1050
1051   <request name="ChangeActivePointerGrab" opcode="30">
1052     <pad bytes="1" />
1053     <field type="CURSOR" name="cursor" />
1054     <field type="TIMESTAMP" name="time" />
1055     <field type="CARD16" name="event_mask" />
1056   </request>
1057
1058   <request name="GrabKeyboard" opcode="31">
1059     <field type="BOOL" name="owner_events" />
1060     <field type="WINDOW" name="grab_window" />
1061     <field type="TIMESTAMP" name="time" />
1062     <field type="BYTE" name="pointer_mode" />
1063     <field type="BYTE" name="keyboard_mode" />
1064     <reply>
1065       <field type="BYTE" name="status" />
1066     </reply>
1067   </request>
1068
1069   <request name="UngrabKeyboard" opcode="32">
1070     <pad bytes="1" />
1071     <field type="TIMESTAMP" name="time" />
1072   </request>
1073
1074   <!-- Use KEYCODE any = { XCBGrabAny }; to grab any key -->
1075   <enum name="Grab">
1076     <item name="Any"><value>0</value></item>
1077   </enum>
1078
1079   <request name="GrabKey" opcode="33">
1080     <field type="BOOL" name="owner_events" />
1081     <field type="WINDOW" name="grab_window" />
1082     <field type="CARD16" name="modifiers" />
1083     <field type="KEYCODE" name="key" />
1084     <field type="CARD8" name="pointer_mode" />
1085     <field type="CARD8" name="keyboard_mode" />
1086   </request>
1087
1088   <request name="UngrabKey" opcode="34">
1089     <field type="KEYCODE" name="key" />
1090     <field type="WINDOW" name="grab_window" />
1091     <field type="CARD16" name="modifiers" />
1092   </request>
1093
1094   <enum name="Allow">
1095     <item name="AsyncPointer">  <value>0</value></item>
1096     <item name="SyncPointer">   <value>1</value></item>
1097     <item name="ReplayPointer"> <value>2</value></item>
1098     <item name="AsyncKeyboard"> <value>3</value></item>
1099     <item name="SyncKeyboard">  <value>4</value></item>
1100     <item name="ReplayKeyboard"><value>5</value></item>
1101     <item name="AsyncBoth">     <value>6</value></item>
1102     <item name="SyncBoth">      <value>7</value></item>
1103   </enum>
1104
1105   <request name="AllowEvents" opcode="35">
1106     <field type="CARD8" name="mode" />
1107     <field type="TIMESTAMP" name="time" />
1108   </request>
1109
1110   <request name="GrabServer" opcode="36" />
1111
1112   <request name="UngrabServer" opcode="37" />
1113
1114   <request name="QueryPointer" opcode="38">
1115     <pad bytes="1" />
1116     <field type="WINDOW" name="window" />
1117     <reply>
1118       <field type="BOOL" name="same_screen" />
1119       <field type="WINDOW" name="root" />
1120       <field type="WINDOW" name="child" />
1121       <field type="INT16" name="root_x" />
1122       <field type="INT16" name="root_y" />
1123       <field type="INT16" name="win_x" />
1124       <field type="INT16" name="win_y" />
1125       <field type="CARD16" name="mask" />
1126     </reply>
1127   </request>
1128
1129   <struct name="TIMECOORD">
1130     <field type="TIMESTAMP" name="time" />
1131     <field type="INT16" name="x" />
1132     <field type="INT16" name="y" />
1133   </struct>
1134
1135   <request name="GetMotionEvents" opcode="39">
1136     <pad bytes="1" />
1137     <field type="WINDOW" name="window" />
1138     <field type="TIMESTAMP" name="start" />
1139     <field type="TIMESTAMP" name="stop" />
1140     <reply>
1141       <pad bytes="1" />
1142       <field type="CARD32" name="events_len" />
1143       <pad bytes="20" />
1144       <list type="TIMECOORD" name="events">
1145         <fieldref>events_len</fieldref>
1146       </list>
1147     </reply>
1148   </request>
1149
1150   <request name="TranslateCoordinates" opcode="40">
1151     <pad bytes="1" />
1152     <field type="WINDOW" name="src_window" />
1153     <field type="WINDOW" name="dst_window" />
1154     <field type="INT16" name="src_x" />
1155     <field type="INT16" name="src_y" />
1156     <reply>
1157       <field type="BOOL" name="same_screen" />
1158       <field type="WINDOW" name="child" />
1159       <field type="CARD16" name="dst_x" />
1160       <field type="CARD16" name="dst_y" />
1161     </reply>
1162   </request>
1163
1164   <request name="WarpPointer" opcode="41">
1165     <pad bytes="1" />
1166     <field type="WINDOW" name="src_window" />
1167     <field type="WINDOW" name="dst_window" />
1168     <field type="INT16" name="src_x" />
1169     <field type="INT16" name="src_y" />
1170     <field type="CARD16" name="src_width" />
1171     <field type="CARD16" name="src_height" />
1172     <field type="INT16" name="dst_x" />
1173     <field type="INT16" name="dst_y" />
1174   </request>
1175
1176   <!-- used for revert_to and focus -->
1177   <enum name="InputFocus">
1178     <item name="None">       <value>0</value></item>
1179     <item name="PointerRoot"><value>1</value></item>
1180     <item name="Parent">     <value>2</value></item>  <!-- revert_to only -->
1181   </enum>
1182
1183   <request name="SetInputFocus" opcode="42">
1184     <field type="CARD8" name="revert_to" />
1185     <field type="WINDOW" name="focus" />
1186     <field type="TIMESTAMP" name="time" />
1187   </request>
1188
1189   <request name="GetInputFocus" opcode="43">
1190     <reply>
1191       <field type="CARD8" name="revert_to" />
1192       <field type="WINDOW" name="focus" />
1193     </reply>
1194   </request>
1195
1196   <request name="QueryKeymap" opcode="44">
1197     <reply>
1198       <pad bytes="1" />
1199       <list type="CARD8" name="keys"><value>32</value></list>
1200     </reply>
1201   </request>
1202
1203   <request name="OpenFont" opcode="45">
1204     <pad bytes="1" />
1205     <field type="FONT" name="fid" />
1206     <field type="CARD16" name="name_len" />
1207     <list type="char" name="name">
1208       <fieldref>name_len</fieldref>
1209     </list>
1210   </request>
1211
1212   <request name="CloseFont" opcode="46">
1213     <pad bytes="1" />
1214     <field type="FONT" name="font" />
1215   </request>
1216
1217   <enum name="FontDraw">
1218     <item name="LeftToRight"><value>0</value></item>
1219     <item name="RightToLeft"><value>1</value></item>
1220   </enum>
1221
1222   <struct name="FONTPROP">
1223     <field type="ATOM" name="name" />
1224     <field type="CARD32" name="value" />
1225   </struct>
1226
1227   <struct name="CHARINFO">
1228     <field type="INT16" name="left_side_bearing" />
1229     <field type="INT16" name="right_side_bearing" />
1230     <field type="INT16" name="character_width" />
1231     <field type="INT16" name="ascent" />
1232     <field type="INT16" name="descent" />
1233     <field type="CARD16" name="attributes" />
1234   </struct>
1235
1236   <request name="QueryFont" opcode="47">
1237     <pad bytes="1" />
1238     <field type="FONTABLE" name="font" />
1239     <reply>
1240       <pad bytes="1" />
1241       <field type="CHARINFO" name="min_bounds" />
1242       <pad bytes="4" />
1243       <field type="CHARINFO" name="max_bounds" />
1244       <pad bytes="4" />
1245       <field type="CARD16" name="min_char_or_byte2" />
1246       <field type="CARD16" name="max_char_or_byte2" />
1247       <field type="CARD16" name="default_char" />
1248       <field type="CARD16" name="properties_len" />
1249       <field type="BYTE" name="draw_direction" />
1250       <field type="CARD8" name="min_byte1" />
1251       <field type="CARD8" name="max_byte1" />
1252       <field type="BOOL" name="all_chars_exist" />
1253       <field type="INT16" name="font_ascent" />
1254       <field type="INT16" name="font_descent" />
1255       <field type="CARD32" name="char_infos_len" />
1256       <list type="FONTPROP" name="properties">
1257         <fieldref>properties_len</fieldref>
1258       </list>
1259       <list type="CHARINFO" name="char_infos">
1260         <fieldref>char_infos_len</fieldref>
1261       </list>
1262     </reply>
1263   </request>
1264
1265   <request name="QueryTextExtents" opcode="48">
1266     <exprfield type="BOOL" name="odd_length">
1267       <op op="&amp;"><fieldref>string_len</fieldref><value>1</value></op>
1268     </exprfield>
1269     <field type="FONTABLE" name="font" />
1270     <list type="CHAR2B" name="string" />
1271     <reply>
1272       <field type="BYTE" name="draw_direction" />
1273       <field type="INT16" name="font_ascent" />
1274       <field type="INT16" name="font_descent" />
1275       <field type="INT16" name="overall_ascent" />
1276       <field type="INT16" name="overall_descent" />
1277       <field type="INT32" name="overall_width" />
1278       <field type="INT32" name="overall_left" />
1279       <field type="INT32" name="overall_right" />
1280     </reply>
1281   </request>
1282
1283   <struct name="STR">
1284     <field type="CARD8" name="name_len" />
1285     <list type="char" name="name">
1286       <fieldref>name_len</fieldref>
1287     </list>
1288   </struct>
1289
1290   <request name="ListFonts" opcode="49">
1291     <pad bytes="1" />
1292     <field type="CARD16" name="max_names" />
1293     <field type="CARD16" name="pattern_len" />
1294     <list type="char" name="pattern">
1295       <fieldref>pattern_len</fieldref>
1296     </list>
1297     <reply>
1298       <pad bytes="1" />
1299       <field type="CARD16" name="names_len" />
1300       <pad bytes="22" />
1301       <list type="STR" name="names">
1302         <fieldref>names_len</fieldref>
1303       </list>
1304     </reply>
1305   </request>
1306
1307   <request name="ListFontsWithInfo" opcode="50">
1308     <pad bytes="1" />
1309     <field type="CARD16" name="max_names" />
1310     <field type="CARD16" name="pattern_len" />
1311     <list type="char" name="pattern">
1312       <fieldref>pattern_len</fieldref>
1313     </list>
1314     <reply>
1315       <field type="CARD8" name="name_len" />
1316       <field type="CHARINFO" name="min_bounds" />
1317       <pad bytes="4" />
1318       <field type="CHARINFO" name="max_bounds" />
1319       <pad bytes="4" />
1320       <field type="CARD16" name="min_char_or_byte2" />
1321       <field type="CARD16" name="max_char_or_byte2" />
1322       <field type="CARD16" name="default_char" />
1323       <field type="CARD16" name="properties_len" />
1324       <field type="BYTE" name="draw_direction" />
1325       <field type="CARD8" name="min_byte1" />
1326       <field type="CARD8" name="max_byte1" />
1327       <field type="BOOL" name="all_chars_exist" />
1328       <field type="INT16" name="font_ascent" />
1329       <field type="INT16" name="font_descent" />
1330       <field type="CARD32" name="replies_hint" />
1331       <list type="FONTPROP" name="properties">
1332         <fieldref>properties_len</fieldref>
1333       </list>
1334       <list type="char" name="name">
1335         <fieldref>name_len</fieldref>
1336       </list>
1337     </reply>
1338   </request>
1339
1340   <request name="SetFontPath" opcode="51">
1341     <pad bytes="1" />
1342     <field type="CARD16" name="font_qty" />
1343     <list type="char" name="path" />
1344   </request>
1345
1346   <request name="GetFontPath" opcode="52">
1347     <reply>
1348       <pad bytes="1" />
1349       <field type="CARD16" name="path_len" />
1350       <pad bytes="22" />
1351       <list type="STR" name="path">
1352         <fieldref>path_len</fieldref>
1353       </list>
1354     </reply>
1355   </request>
1356
1357   <request name="CreatePixmap" opcode="53">
1358     <field type="CARD8" name="depth" />
1359     <field type="PIXMAP" name="pid" />
1360     <field type="DRAWABLE" name="drawable" />
1361     <field type="CARD16" name="width" />
1362     <field type="CARD16" name="height" />
1363   </request>
1364
1365   <request name="FreePixmap" opcode="54">
1366     <pad bytes="1" />
1367     <field type="PIXMAP" name="pixmap" />
1368   </request>
1369   
1370   <enum name="GC">
1371     <item name="Function">          <bit>0</bit></item>
1372     <item name="PlaneMask">         <bit>1</bit></item>
1373     <item name="Foreground">        <bit>2</bit></item>
1374     <item name="Background">        <bit>3</bit></item>
1375     <item name="LineWidth">         <bit>4</bit></item>
1376     <item name="LineStyle">         <bit>5</bit></item>
1377     <item name="CapStyle">          <bit>6</bit></item>
1378     <item name="JoinStyle">         <bit>7</bit></item>
1379     <item name="FillStyle">         <bit>8</bit></item>
1380     <item name="FillRule">          <bit>9</bit></item>
1381     <item name="Tile">              <bit>10</bit></item>
1382     <item name="Stipple">           <bit>11</bit></item>
1383     <item name="TileStippleOriginX"><bit>12</bit></item>
1384     <item name="TileStippleOriginY"><bit>13</bit></item>
1385     <item name="Font">              <bit>14</bit></item>
1386     <item name="SubwindowMode">     <bit>15</bit></item>
1387     <item name="GraphicsExposures"> <bit>16</bit></item>
1388     <item name="ClipOriginX">       <bit>17</bit></item>
1389     <item name="ClipOriginY">       <bit>18</bit></item>
1390     <item name="ClipMask">          <bit>19</bit></item>
1391     <item name="DashOffset">        <bit>20</bit></item>
1392     <item name="DashList">          <bit>21</bit></item>
1393     <item name="ArcMode">           <bit>22</bit></item>
1394   </enum>
1395
1396   <!-- GC Function values -->
1397   <enum name="GX">
1398     <item name="clear">       <value>0x0</value></item>
1399     <item name="and">         <value>0x1</value></item>
1400     <item name="andReverse">  <value>0x2</value></item>
1401     <item name="copy">        <value>0x3</value></item>
1402     <item name="andInverted"> <value>0x4</value></item>
1403     <item name="noop">        <value>0x5</value></item>
1404     <item name="xor">         <value>0x6</value></item>
1405     <item name="or">          <value>0x7</value></item>
1406     <item name="nor">         <value>0x8</value></item>
1407     <item name="equiv">       <value>0x9</value></item>
1408     <item name="invert">      <value>0xa</value></item>
1409     <item name="orReverse">   <value>0xb</value></item>
1410     <item name="copyInverted"><value>0xc</value></item>
1411     <item name="orInverted">  <value>0xd</value></item>
1412     <item name="nand">        <value>0xe</value></item>
1413     <item name="set">         <value>0xf</value></item>
1414   </enum>
1415
1416   <enum name="LineStyle">
1417     <item name="Solid">     <value>0</value></item>
1418     <item name="OnOffDash"> <value>1</value></item>
1419     <item name="DoubleDash"><value>2</value></item>
1420   </enum>
1421
1422   <enum name="CapStyle">
1423     <item name="NotLast">   <value>0</value></item>
1424     <item name="Butt">      <value>1</value></item>
1425     <item name="Round">     <value>2</value></item>
1426     <item name="Projecting"><value>3</value></item>
1427   </enum>
1428
1429   <enum name="JoinStyle">
1430     <item name="Mitre">     <value>0</value></item>
1431     <item name="Round">     <value>1</value></item>
1432     <item name="Bevel">     <value>2</value></item>
1433   </enum>
1434
1435   <enum name="FillStyle">
1436     <item name="Solid">         <value>0</value></item>
1437     <item name="Tiled">         <value>1</value></item>
1438     <item name="Stippled">      <value>2</value></item>
1439     <item name="OpaqueStippled"><value>3</value></item>
1440   </enum>
1441
1442   <enum name="FillRule">
1443     <item name="EvenOdd"><value>0</value></item>
1444     <item name="Winding"><value>1</value></item>
1445   </enum>
1446
1447   <enum name="SubwindowMode">
1448     <item name="ClipByChildren">  <value>0</value></item>
1449     <item name="IncludeInferiors"><value>1</value></item>
1450   </enum>
1451
1452   <enum name="ArcMode">
1453     <item name="Chord">   <value>0</value></item>
1454     <item name="PieSlice"><value>1</value></item>
1455   </enum>
1456
1457   <request name="CreateGC" opcode="55">
1458     <pad bytes="1" />
1459     <field type="GCONTEXT" name="cid" />
1460     <field type="DRAWABLE" name="drawable" />
1461     <valueparam value-mask-type="CARD32"
1462                 value-mask-name="value_mask"
1463                 value-list-name="value_list" />
1464   </request>
1465
1466   <request name="ChangeGC" opcode="56">
1467     <pad bytes="1" />
1468     <field type="GCONTEXT" name="gc" />
1469     <valueparam value-mask-type="CARD32"
1470                 value-mask-name="value_mask"
1471                 value-list-name="value_list" />
1472   </request>
1473
1474   <request name="CopyGC" opcode="57">
1475     <pad bytes="1" />
1476     <field type="GCONTEXT" name="src_gc" />
1477     <field type="GCONTEXT" name="dst_gc" />
1478     <field type="CARD32" name="value_mask" />
1479   </request>
1480
1481   <request name="SetDashes" opcode="58">
1482     <pad bytes="1" />
1483     <field type="GCONTEXT" name="gc" />
1484     <field type="CARD16" name="dash_offset" />
1485     <field type="CARD16" name="dashes_len" />
1486     <list type="CARD8" name="dashes">
1487       <fieldref>dashes_len</fieldref>
1488     </list>
1489   </request>
1490
1491   <enum name="ClipOrdering">
1492     <item name="Unsorted"><value>0</value></item>
1493     <item name="YSorted"> <value>1</value></item>
1494     <item name="YXSorted"><value>2</value></item>
1495     <item name="YXBanded"><value>3</value></item>
1496   </enum>
1497
1498   <request name="SetClipRectangles" opcode="59">
1499     <field type="BYTE" name="ordering" />
1500     <field type="GCONTEXT" name="gc" />
1501     <field type="INT16" name="clip_x_origin" />
1502     <field type="INT16" name="clip_y_origin" />
1503     <list type="RECTANGLE" name="rectangles" />
1504   </request>
1505
1506   <request name="FreeGC" opcode="60">
1507     <pad bytes="1" />
1508     <field type="GCONTEXT" name="gc" />
1509   </request>
1510
1511   <request name="ClearArea" opcode="61">
1512     <field type="BOOL" name="exposures" />
1513     <field type="WINDOW" name="window" />
1514     <field type="INT16" name="x" />
1515     <field type="INT16" name="y" />
1516     <field type="CARD16" name="width" />
1517     <field type="CARD16" name="height" />
1518   </request>
1519
1520   <request name="CopyArea" opcode="62">
1521     <pad bytes="1" />
1522     <field type="DRAWABLE" name="src_drawable" />
1523     <field type="DRAWABLE" name="dst_drawable" />
1524     <field type="GCONTEXT" name="gc" />
1525     <field type="INT16" name="src_x" />
1526     <field type="INT16" name="src_y" />
1527     <field type="INT16" name="dst_x" />
1528     <field type="INT16" name="dst_y" />
1529     <field type="CARD16" name="width" />
1530     <field type="CARD16" name="height" />
1531   </request>
1532
1533   <request name="CopyPlane" opcode="63">
1534     <pad bytes="1" />
1535     <field type="DRAWABLE" name="src_drawable" />
1536     <field type="DRAWABLE" name="dst_drawable" />
1537     <field type="GCONTEXT" name="gc" />
1538     <field type="INT16" name="src_x" />
1539     <field type="INT16" name="src_y" />
1540     <field type="INT16" name="dst_x" />
1541     <field type="INT16" name="dst_y" />
1542     <field type="CARD16" name="width" />
1543     <field type="CARD16" name="height" />
1544     <field type="CARD32" name="bit_plane" />
1545   </request>
1546   
1547   <enum name="CoordMode">
1548     <item name="Origin">  <value>0</value></item>
1549     <item name="Previous"><value>1</value></item>
1550   </enum>
1551
1552   <!-- combine-adjacent doesn't work for mode==Relative -->
1553   <request name="PolyPoint" opcode="64">
1554     <field type="BYTE" name="coordinate_mode" />
1555     <field type="DRAWABLE" name="drawable" />
1556     <field type="GCONTEXT" name="gc" />
1557     <list type="POINT" name="points" />
1558   </request>
1559
1560   <request name="PolyLine" opcode="65" combine-adjacent="true">
1561     <field type="BYTE" name="coordinate_mode" />
1562     <field type="DRAWABLE" name="drawable" />
1563     <field type="GCONTEXT" name="gc" />
1564     <list type="POINT" name="points" />
1565   </request>
1566
1567   <struct name="SEGMENT">
1568     <field type="INT16" name="x1" />
1569     <field type="INT16" name="y1" />
1570     <field type="INT16" name="x2" />
1571     <field type="INT16" name="y2" />
1572   </struct>
1573
1574   <request name="PolySegment" opcode="66" combine-adjacent="true">
1575     <pad bytes="1" />
1576     <field type="DRAWABLE" name="drawable" />
1577     <field type="GCONTEXT" name="gc" />
1578     <list type="SEGMENT" name="segments" />
1579   </request>
1580
1581   <request name="PolyRectangle" opcode="67" combine-adjacent="true">
1582     <pad bytes="1" />
1583     <field type="DRAWABLE" name="drawable" />
1584     <field type="GCONTEXT" name="gc" />
1585     <list type="RECTANGLE" name="rectangles" />
1586   </request>
1587
1588   <!--
1589     The semantics of PolyArc change after the first arc: the GC's
1590     join style may be applied to successive arcs under some circumstances.
1591     So using combine-adjacent here is bad.
1592   -->
1593   <request name="PolyArc" opcode="68">
1594     <pad bytes="1" />
1595     <field type="DRAWABLE" name="drawable" />
1596     <field type="GCONTEXT" name="gc" />
1597     <list type="ARC" name="arcs" />
1598   </request>
1599
1600   <enum name="PolyShape">
1601     <item name="Complex">  <value>0</value></item>
1602     <item name="Nonconvex"><value>1</value></item>
1603     <item name="Convex">   <value>2</value></item>
1604   </enum>
1605
1606   <request name="FillPoly" opcode="69">
1607     <pad bytes="1" />
1608     <field type="DRAWABLE" name="drawable" />
1609     <field type="GCONTEXT" name="gc" />
1610     <field type="CARD8" name="shape" />
1611     <field type="CARD8" name="coordinate_mode" />
1612     <list type="POINT" name="points" />
1613   </request>
1614
1615   <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
1616     <pad bytes="1" />
1617     <field type="DRAWABLE" name="drawable" />
1618     <field type="GCONTEXT" name="gc" />
1619     <list type="RECTANGLE" name="rectangles" />
1620   </request>
1621
1622   <request name="PolyFillArc" opcode="71" combine-adjacent="true">
1623     <pad bytes="1" />
1624     <field type="DRAWABLE" name="drawable" />
1625     <field type="GCONTEXT" name="gc" />
1626     <list type="ARC" name="arcs" />
1627   </request>
1628   
1629   <enum name="ImageFormat">
1630     <item name="XYBitmap"><value>0</value></item>
1631     <item name="XYPixmap"><value>1</value></item>
1632     <item name="ZPixmap"> <value>2</value></item>
1633   </enum>
1634
1635   <request name="PutImage" opcode="72">
1636     <field type="CARD8" name="format" />
1637     <field type="DRAWABLE" name="drawable" />
1638     <field type="GCONTEXT" name="gc" />
1639     <field type="CARD16" name="width" />
1640     <field type="CARD16" name="height" />
1641     <field type="INT16" name="dst_x" />
1642     <field type="INT16" name="dst_y" />
1643     <field type="CARD8" name="left_pad" />
1644     <field type="CARD8" name="depth" />
1645     <list type="BYTE" name="data" />
1646   </request>
1647
1648   <!-- FIXME: data array in reply will include padding, but ought not to. -->
1649   <request name="GetImage" opcode="73">
1650     <field type="CARD8" name="format" />
1651     <field type="DRAWABLE" name="drawable" />
1652     <field type="INT16" name="x" />
1653     <field type="INT16" name="y" />
1654     <field type="CARD16" name="width" />
1655     <field type="CARD16" name="height" />
1656     <field type="CARD32" name="plane_mask" />
1657     <reply>
1658       <field type="CARD8" name="depth" />
1659       <field type="VISUALID" name="visual" />
1660       <pad bytes="20" />
1661       <list type="BYTE" name="data">
1662         <op op="*">
1663           <fieldref>length</fieldref>
1664           <value>4</value>
1665         </op>
1666       </list>
1667     </reply>
1668   </request>
1669
1670   <request name="PolyText8" opcode="74">
1671     <pad bytes="1" />
1672     <field type="DRAWABLE" name="drawable" />
1673     <field type="GCONTEXT" name="gc" />
1674     <field type="INT16" name="x" />
1675     <field type="INT16" name="y" />
1676     <list type="BYTE" name="items" />
1677   </request>
1678
1679   <request name="PolyText16" opcode="75">
1680     <pad bytes="1" />
1681     <field type="DRAWABLE" name="drawable" />
1682     <field type="GCONTEXT" name="gc" />
1683     <field type="INT16" name="x" />
1684     <field type="INT16" name="y" />
1685     <list type="BYTE" name="items" />
1686   </request>
1687
1688   <request name="ImageText8" opcode="76">
1689     <field type="BYTE" name="string_len" />
1690     <field type="DRAWABLE" name="drawable" />
1691     <field type="GCONTEXT" name="gc" />
1692     <field type="INT16" name="x" />
1693     <field type="INT16" name="y" />
1694     <list type="char" name="string">
1695       <fieldref>string_len</fieldref>
1696     </list>
1697   </request>
1698
1699   <request name="ImageText16" opcode="77">
1700     <field type="BYTE" name="string_len" />
1701     <field type="DRAWABLE" name="drawable" />
1702     <field type="GCONTEXT" name="gc" />
1703     <field type="INT16" name="x" />
1704     <field type="INT16" name="y" />
1705     <list type="CHAR2B" name="string">
1706       <fieldref>string_len</fieldref>
1707     </list>
1708   </request>
1709
1710   <enum name= "ColormapAlloc">
1711     <item name="None"><value>0</value></item>
1712     <item name="All"> <value>1</value></item>
1713   </enum>
1714
1715   <request name="CreateColormap" opcode="78">
1716     <field type="BYTE" name="alloc" />
1717     <field type="COLORMAP" name="mid" />
1718     <field type="WINDOW" name="window" />
1719     <field type="VISUALID" name="visual" />
1720   </request>
1721
1722   <request name="FreeColormap" opcode="79">
1723     <pad bytes="1" />
1724     <field type="COLORMAP" name="cmap" />
1725   </request>
1726
1727   <request name="CopyColormapAndFree" opcode="80">
1728     <pad bytes="1" />
1729     <field type="COLORMAP" name="mid" />
1730     <field type="COLORMAP" name="src_cmap" />
1731   </request>
1732
1733   <request name="InstallColormap" opcode="81">
1734     <pad bytes="1" />
1735     <field type="COLORMAP" name="cmap" />
1736   </request>
1737
1738   <request name="UninstallColormap" opcode="82">
1739     <pad bytes="1" />
1740     <field type="COLORMAP" name="cmap" />
1741   </request>
1742
1743   <request name="ListInstalledColormaps" opcode="83">
1744     <pad bytes="1" />
1745     <field type="WINDOW" name="window" />
1746     <reply>
1747       <pad bytes="1" />
1748       <field type="CARD16" name="cmaps_len" />
1749       <pad bytes="22" />
1750       <list type="COLORMAP" name="cmaps">
1751         <fieldref>cmaps_len</fieldref>
1752       </list>
1753     </reply>
1754   </request>
1755
1756   <request name="AllocColor" opcode="84">
1757     <pad bytes="1" />
1758     <field type="COLORMAP" name="cmap" />
1759     <field type="CARD16" name="red" />
1760     <field type="CARD16" name="green" />
1761     <field type="CARD16" name="blue" />
1762     <reply>
1763       <pad bytes="1" />
1764       <field type="CARD16" name="red" />
1765       <field type="CARD16" name="green" />
1766       <field type="CARD16" name="blue" />
1767       <pad bytes="2" />
1768       <field type="CARD32" name="pixel" />
1769     </reply>
1770   </request>
1771
1772   <request name="AllocNamedColor" opcode="85">
1773     <pad bytes="1" />
1774     <field type="COLORMAP" name="cmap" />
1775     <field type="CARD16" name="name_len" />
1776     <list type="char" name="name">
1777       <fieldref>name_len</fieldref>
1778     </list>
1779     <reply>
1780       <pad bytes="1" />
1781       <field type="CARD32" name="pixel" />
1782       <field type="CARD16" name="exact_red" />
1783       <field type="CARD16" name="exact_green" />
1784       <field type="CARD16" name="exact_blue" />
1785       <field type="CARD16" name="visual_red" />
1786       <field type="CARD16" name="visual_green" />
1787       <field type="CARD16" name="visual_blue" />
1788     </reply>
1789   </request>
1790
1791   <request name="AllocColorCells" opcode="86">
1792     <field type="BOOL" name="contiguous" />
1793     <field type="COLORMAP" name="cmap" />
1794     <field type="CARD16" name="colors" />
1795     <field type="CARD16" name="planes" />
1796     <reply>
1797       <pad bytes="1" />
1798       <field type="CARD16" name="pixels_len" />
1799       <field type="CARD16" name="masks_len" />
1800       <pad bytes="20" />
1801       <list type="CARD32" name="pixels">
1802         <fieldref>pixels_len</fieldref>
1803       </list>
1804       <list type="CARD32" name="masks">
1805         <fieldref>masks_len</fieldref>
1806       </list>
1807     </reply>
1808   </request>
1809
1810   <request name="AllocColorPlanes" opcode="87">
1811     <field type="BOOL" name="contiguous" />
1812     <field type="COLORMAP" name="cmap" />
1813     <field type="CARD16" name="colors" />
1814     <field type="CARD16" name="reds" />
1815     <field type="CARD16" name="greens" />
1816     <field type="CARD16" name="blues" />
1817     <reply>
1818       <pad bytes="1" />
1819       <field type="CARD16" name="pixels_len" />
1820       <pad bytes="2" />
1821       <field type="CARD32" name="red_mask" />
1822       <field type="CARD32" name="green_mask" />
1823       <field type="CARD32" name="blue_mask" />
1824       <pad bytes="8" />
1825       <list type="CARD32" name="pixels">
1826         <fieldref>pixels_len</fieldref>
1827       </list>
1828     </reply>
1829   </request>
1830
1831   <request name="FreeColors" opcode="88">
1832     <pad bytes="1" />
1833     <field type="COLORMAP" name="cmap" />
1834     <field type="CARD32" name="plane_mask" />
1835     <list type="CARD32" name="pixels" />
1836   </request>
1837
1838   <enum name="ColorFlag">
1839     <item name="Red">  <bit>0</bit></item>
1840     <item name="Green"><bit>1</bit></item>
1841     <item name="Blue"> <bit>2</bit></item>
1842   </enum>
1843
1844   <struct name="COLORITEM">
1845     <field type="CARD32" name="pixel" />
1846     <field type="CARD16" name="red" />
1847     <field type="CARD16" name="green" />
1848     <field type="CARD16" name="blue" />
1849     <field type="BYTE" name="flags" />
1850     <pad bytes="1" />
1851   </struct>
1852   
1853   <request name="StoreColors" opcode="89" combine-adjacent="true">
1854     <pad bytes="1" />
1855     <field type="COLORMAP" name="cmap" />
1856     <list type="COLORITEM" name="items" />
1857   </request>
1858
1859   <request name="StoreNamedColor" opcode="90">
1860     <field type="CARD8" name="flags" />
1861     <field type="COLORMAP" name="cmap" />
1862     <field type="CARD32" name="pixel" />
1863     <field type="CARD16" name="name_len" />
1864     <list type="char" name="name">
1865       <fieldref>name_len</fieldref>
1866     </list>
1867   </request>
1868
1869   <struct name="RGB">
1870     <field type="CARD16" name="red" />
1871     <field type="CARD16" name="green" />
1872     <field type="CARD16" name="blue" />
1873     <pad bytes="2" />
1874   </struct>
1875
1876   <request name="QueryColors" opcode="91">
1877     <pad bytes="1" />
1878     <field type="COLORMAP" name="cmap" />
1879     <list type="CARD32" name="pixels" />
1880     <reply>
1881       <pad bytes="1" />
1882       <field type="CARD16" name="colors_len" />
1883       <pad bytes="22" />
1884       <list type="RGB" name="colors">
1885         <fieldref>colors_len</fieldref>
1886       </list>
1887     </reply>
1888   </request>
1889
1890   <request name="LookupColor" opcode="92">
1891     <pad bytes="1" />
1892     <field type="COLORMAP" name="cmap" />
1893     <field type="CARD16" name="name_len" />
1894     <list type="char" name="name">
1895       <fieldref>name_len</fieldref>
1896     </list>
1897     <reply>
1898       <pad bytes="1" />
1899       <field type="CARD16" name="exact_red" />
1900       <field type="CARD16" name="exact_green" />
1901       <field type="CARD16" name="exact_blue" />
1902       <field type="CARD16" name="visual_red" />
1903       <field type="CARD16" name="visual_green" />
1904       <field type="CARD16" name="visual_blue" />
1905     </reply>
1906   </request>
1907
1908   <request name="CreateCursor" opcode="93">
1909     <pad bytes="1" />
1910     <field type="CURSOR" name="cid" />
1911     <field type="PIXMAP" name="source" />
1912     <field type="PIXMAP" name="mask" />
1913     <field type="CARD16" name="fore_red" />
1914     <field type="CARD16" name="fore_green" />
1915     <field type="CARD16" name="fore_blue" />
1916     <field type="CARD16" name="back_red" />
1917     <field type="CARD16" name="back_green" />
1918     <field type="CARD16" name="back_blue" />
1919     <field type="CARD16" name="x" />
1920     <field type="CARD16" name="y" />
1921   </request>
1922
1923   <request name="CreateGlyphCursor" opcode="94">
1924     <pad bytes="1" />
1925     <field type="CURSOR" name="cid" />
1926     <field type="FONT" name="source_font" />
1927     <field type="FONT" name="mask_font" />
1928     <field type="CARD16" name="source_char" />
1929     <field type="CARD16" name="mask_char" />
1930     <field type="CARD16" name="fore_red" />
1931     <field type="CARD16" name="fore_green" />
1932     <field type="CARD16" name="fore_blue" />
1933     <field type="CARD16" name="back_red" />
1934     <field type="CARD16" name="back_green" />
1935     <field type="CARD16" name="back_blue" />
1936   </request>
1937
1938   <request name="FreeCursor" opcode="95">
1939     <pad bytes="1" />
1940     <field type="CURSOR" name="cursor" />
1941   </request>
1942
1943   <request name="RecolorCursor" opcode="96">
1944     <pad bytes="1" />
1945     <field type="CURSOR" name="cursor" />
1946     <field type="CARD16" name="fore_red" />
1947     <field type="CARD16" name="fore_green" />
1948     <field type="CARD16" name="fore_blue" />
1949     <field type="CARD16" name="back_red" />
1950     <field type="CARD16" name="back_green" />
1951     <field type="CARD16" name="back_blue" />
1952   </request>
1953
1954   <enum name="QueryShapeOf">
1955     <item name="LargestCursor"> <value>0</value></item>
1956     <item name="FastestTile">   <value>1</value></item>
1957     <item name="FastestStipple"><value>2</value></item>    
1958   </enum>
1959
1960   <request name="QueryBestSize" opcode="97">
1961     <field type="CARD8" name="class" />
1962     <field type="DRAWABLE" name="drawable" />
1963     <field type="CARD16" name="width" />
1964     <field type="CARD16" name="height" />
1965     <reply>
1966       <pad bytes="1" />
1967       <field type="CARD16" name="width" />
1968       <field type="CARD16" name="height" />
1969     </reply>
1970   </request>
1971
1972   <request name="QueryExtension" opcode="98">
1973     <pad bytes="1" />
1974     <field type="CARD16" name="name_len" />
1975     <list type="char" name="name">
1976       <fieldref>name_len</fieldref>
1977     </list>
1978     <reply>
1979       <pad bytes="1" />
1980       <field type="BOOL" name="present" />
1981       <field type="CARD8" name="major_opcode" />
1982       <field type="CARD8" name="first_event" />
1983       <field type="CARD8" name="first_error" />
1984     </reply>
1985   </request>
1986
1987   <request name="ListExtensions" opcode="99">
1988     <reply>
1989       <field type="CARD8" name="names_len" />
1990       <pad bytes="24" />
1991       <list type="STR" name="names">
1992         <fieldref>names_len</fieldref>
1993       </list>
1994     </reply>
1995   </request>
1996
1997   <request name="ChangeKeyboardMapping" opcode="100">
1998     <field type="CARD8" name="keycode_count" />
1999     <field type="KEYCODE" name="first_keycode" />
2000     <field type="CARD8" name="keysyms_per_keycode" />
2001     <list type="KEYSYM" name="keysyms">
2002       <op op="*">
2003         <fieldref>keycode_count</fieldref>
2004         <fieldref>keysyms_per_keycode</fieldref>
2005       </op>
2006     </list>
2007   </request>
2008
2009   <request name="GetKeyboardMapping" opcode="101">
2010     <pad bytes="1" />
2011     <field type="KEYCODE" name="first_keycode" />
2012     <field type="CARD8" name="count" />
2013     <reply>
2014       <field type="BYTE" name="keysyms_per_keycode" />
2015       <pad bytes="24" />
2016       <list type="KEYSYM" name="keysyms">
2017         <fieldref>length</fieldref>
2018       </list>
2019     </reply>
2020   </request>
2021
2022   <enum name="KB">
2023     <item name="KeyClickPercent"><bit>0</bit></item>
2024     <item name="BellPercent">    <bit>1</bit></item>
2025     <item name="BellPitch">      <bit>2</bit></item>
2026     <item name="BellDuration">   <bit>3</bit></item>
2027     <item name="Led">            <bit>4</bit></item>
2028     <item name="LedMode">        <bit>5</bit></item>
2029     <item name="Key">            <bit>6</bit></item>
2030     <item name="AutoRepeatMode"> <bit>7</bit></item>
2031   </enum>
2032
2033   <enum name="LedMode">
2034     <item name="Off"><value>0</value></item>
2035     <item name="On"> <value>1</value></item>
2036   </enum>
2037
2038   <enum name="AutoRepeatMode">
2039     <item name="Off">    <value>0</value></item>
2040     <item name="On">     <value>1</value></item>
2041     <item name="Default"><value>2</value></item>
2042   </enum>
2043
2044   <request name="ChangeKeyboardControl" opcode="102">
2045     <pad bytes="1" />
2046     <valueparam value-mask-type="CARD32"
2047                 value-mask-name="value_mask"
2048                 value-list-name="value_list" />
2049   </request>
2050
2051   <request name="GetKeyboardControl" opcode="103">
2052     <reply>
2053       <field type="BYTE" name="global_auto_repeat" />
2054       <field type="CARD32" name="led_mask" />
2055       <field type="CARD8" name="key_click_percent" />
2056       <field type="CARD8" name="bell_percent" />
2057       <field type="CARD16" name="bell_pitch" />
2058       <field type="CARD16" name="bell_duration" />
2059       <pad bytes="2" />
2060       <list type="CARD8" name="auto_repeats"><value>32</value></list>
2061     </reply>
2062   </request>
2063
2064   <request name="Bell" opcode="104">
2065     <field type="INT8" name="percent" />
2066   </request>
2067
2068   <request name="ChangePointerControl" opcode="105">
2069     <pad bytes="1" />
2070     <field type="INT16" name="acceleration_numerator" />
2071     <field type="INT16" name="acceleration_denominator" />
2072     <field type="INT16" name="threshold" />
2073     <field type="BOOL" name="do_acceleration" />
2074     <field type="BOOL" name="do_threshold" />
2075   </request>
2076
2077   <request name="GetPointerControl" opcode="106">
2078     <reply>
2079       <pad bytes="1" />
2080       <field type="CARD16" name="acceleration_numerator" />
2081       <field type="CARD16" name="acceleration_denominator" />
2082       <field type="CARD16" name="threshold" />
2083     </reply>
2084   </request>
2085
2086   <!-- Screen saver timeout and interval can be set to -1 to restore defaults
2087        and set to 0 to disable the screen saver. -->
2088
2089   <enum name="Blanking">
2090     <item name="NotPreferred"><value>0</value></item>
2091     <item name="Preferred">   <value>1</value></item>
2092     <item name="Default">     <value>2</value></item>
2093   </enum>
2094
2095   <enum name="Exposures">
2096     <item name="NotAllowed"><value>0</value></item>
2097     <item name="Allowed">   <value>1</value></item>
2098     <item name="Default">   <value>2</value></item>
2099   </enum>
2100
2101   <request name="SetScreenSaver" opcode="107">
2102     <pad bytes="1" />
2103     <field type="INT16" name="timeout" />
2104     <field type="INT16" name="interval" />
2105     <field type="CARD8" name="prefer_blanking" />
2106     <field type="CARD8" name="allow_exposures" />
2107   </request>
2108
2109   <request name="GetScreenSaver" opcode="108">
2110     <reply>
2111       <pad bytes="1" />
2112       <field type="CARD16" name="timeout" />
2113       <field type="CARD16" name="interval" />
2114       <field type="BYTE" name="prefer_blanking" />
2115       <field type="BYTE" name="allow_exposures" />
2116     </reply>
2117   </request>
2118
2119   <enum name="HostMode">
2120     <item name="Insert"><value>0</value></item>
2121     <item name="Delete"><value>1</value></item>
2122   </enum>
2123
2124   <!-- also used and extended for Xau authentication -->
2125   <enum name="Family">
2126     <item name="Internet">         <value>0</value></item>
2127     <item name="DECnet">           <value>1</value></item>
2128     <item name="Chaos">            <value>2</value></item>
2129     <item name="ServerInterpreted"><value>5</value></item>
2130     <item name="Internet6">        <value>6</value></item>
2131   </enum>
2132
2133   <request name="ChangeHosts" opcode="109">
2134     <field type="CARD8" name="mode" />
2135     <field type="CARD8" name="family" />
2136     <pad bytes="1" />
2137     <field type="CARD16" name="address_len" />
2138     <list type="char" name="address">
2139       <fieldref>address_len</fieldref>
2140     </list>
2141   </request>
2142
2143   <struct name="HOST">
2144     <field type="CARD8" name="family" />
2145     <pad bytes="1" />
2146     <field type="CARD16" name="address_len" />
2147     <list type="BYTE" name="address">
2148       <fieldref>address_len</fieldref>
2149     </list>
2150   </struct>
2151
2152   <request name="ListHosts" opcode="110">
2153     <reply>
2154       <field type="BYTE" name="mode" />
2155       <field type="CARD16" name="hosts_len" />
2156       <pad bytes="22" />
2157       <list type="HOST" name="hosts">
2158         <fieldref>hosts_len</fieldref>
2159       </list>
2160     </reply>
2161   </request>
2162
2163   <enum name="AccessControl">
2164     <item name="Disable"><value>0</value></item>
2165     <item name="Enable"> <value>1</value></item>
2166   </enum>
2167
2168   <request name="SetAccessControl" opcode="111">
2169     <field type="CARD8" name="mode" />
2170   </request>
2171
2172   <enum name="CloseDown">
2173     <item name="DestroyAll">     <value>0</value></item>
2174     <item name="RetainPermanent"><value>1</value></item>
2175     <item name="RetainTemporary"><value>2</value></item>
2176   </enum>
2177
2178   <request name="SetCloseDownMode" opcode="112">
2179     <field type="CARD8" name="mode" />
2180   </request>
2181
2182   <enum name="Kill">
2183     <item name="AllTemporary"><value>0</value></item>
2184   </enum>
2185
2186   <request name="KillClient" opcode="113">
2187     <pad bytes="1" />
2188     <field type="CARD32" name="resource" />
2189   </request>
2190
2191   <request name="RotateProperties" opcode="114">
2192     <pad bytes="1" />
2193     <field type="WINDOW" name="window" />
2194     <field type="CARD16" name="atoms_len" />
2195     <field type="INT16" name="delta" />
2196     <list type="ATOM" name="atoms">
2197       <fieldref>atoms_len</fieldref>
2198     </list>
2199   </request>
2200
2201   <enum name="ScreenSaver">
2202     <item name="Reset"> <value>0</value></item>
2203     <item name="Active"><value>1</value></item>
2204   </enum>
2205
2206   <request name="ForceScreenSaver" opcode="115">
2207     <field type="CARD8" name="mode" />
2208   </request>
2209
2210   <!-- Reply from SetPointerMapping or SetModifierMapping -->
2211   <enum name="MappingStatus">
2212     <item name="Success"><value>0</value></item>
2213     <item name="Busy">   <value>1</value></item>
2214     <item name="Failure"><value>2</value></item>
2215   </enum>
2216
2217   <request name="SetPointerMapping" opcode="116">
2218     <field type="CARD8" name="map_len" />
2219     <list type="CARD8" name="map">
2220       <fieldref>map_len</fieldref>
2221     </list>
2222     <reply>
2223       <field type="BYTE" name="status" />
2224     </reply>
2225   </request>
2226
2227   <request name="GetPointerMapping" opcode="117">
2228     <reply>
2229       <field type="CARD8" name="map_len" />
2230       <pad bytes="24" />
2231       <list type="CARD8" name="map">
2232         <fieldref>map_len</fieldref>
2233       </list>
2234     </reply>
2235   </request>
2236   
2237   <enum name="MapIndex">
2238     <item name="Shift">  <value>0</value></item>
2239     <item name="Lock">   <value>1</value></item>
2240     <item name="Control"><value>2</value></item>
2241     <item name="1">      <value>3</value></item>
2242     <item name="2">      <value>4</value></item>
2243     <item name="3">      <value>5</value></item>
2244     <item name="4">      <value>6</value></item>
2245     <item name="5">      <value>7</value></item>
2246   </enum>
2247
2248   <request name="SetModifierMapping" opcode="118">
2249     <field type="CARD8" name="keycodes_per_modifier" />
2250     <list type="KEYCODE" name="keycodes">
2251       <op op="*">
2252         <fieldref>keycodes_per_modifier</fieldref>
2253         <value>8</value>
2254       </op>
2255     </list>
2256     <reply>
2257       <field type="BYTE" name="status" />
2258     </reply>
2259   </request>
2260
2261   <request name="GetModifierMapping" opcode="119">
2262     <reply>
2263       <field type="CARD8" name="keycodes_per_modifier" />
2264       <pad bytes="24" />
2265       <list type="KEYCODE" name="keycodes">
2266         <op op="*">
2267           <fieldref>keycodes_per_modifier</fieldref>
2268           <value>8</value>
2269         </op>
2270       </list>
2271     </reply>
2272   </request>
2273
2274   <!--
2275     FIXME: NoOperation should allow specifying payload length
2276     but geez, malloc()ing a 262140 byte buffer just so I have something
2277     to hand to write(2) seems silly...!
2278   -->
2279   <request name="NoOperation" opcode="127" />
2280
2281 </xcb>