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