5a056e82e92946fda732f658f3d1ab8a2680db3a
[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   </enum>
592
593   <event name="SelectionRequest" number="30">
594     <pad bytes="1" />
595     <field type="TIMESTAMP" name="time" altenum="Time" />
596     <field type="WINDOW" name="owner" />
597     <field type="WINDOW" name="requestor" />
598     <field type="ATOM" name="selection" />
599     <field type="ATOM" name="target" />
600     <field type="ATOM" name="property" altenum="Atom" />
601   </event>
602
603   <event name="SelectionNotify" number="31">
604     <pad bytes="1" />
605     <field type="TIMESTAMP" name="time" altenum="Time" />
606     <field type="WINDOW" name="requestor" />
607     <field type="ATOM" name="selection" />
608     <field type="ATOM" name="target" />
609     <field type="ATOM" name="property" altenum="Atom" />
610   </event>
611
612   <enum name="ColormapState">
613     <item name="Uninstalled"><value>0</value></item>
614     <item name="Installed">  <value>1</value></item>
615   </enum>
616
617   <enum name="Colormap">
618     <item name="None"> <value>0</value></item>
619   </enum>
620
621   <event name="ColormapNotify" number="32">
622     <pad bytes="1" />
623     <field type="WINDOW" name="window" />
624     <field type="COLORMAP" name="colormap" altenum="Colormap" />
625     <field type="BOOL" name="new" />
626     <field type="BYTE" name="state" enum="ColormapState" />
627     <pad bytes="2" />
628   </event>
629
630   <union name="ClientMessageData">
631     <!-- The format member of the ClientMessage event determines which array
632          to use. -->
633     <list type="CARD8"  name="data8" ><value>20</value></list> <!--  8 -->
634     <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
635     <list type="CARD32" name="data32"><value>5</value></list>  <!-- 32 -->
636   </union>
637
638   <event name="ClientMessage" number="33">
639     <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
640     <field type="WINDOW" name="window" />
641     <field type="ATOM" name="type" />
642     <field type="ClientMessageData" name="data" />
643   </event>
644
645   <enum name="Mapping">
646     <item name="Modifier"><value>0</value></item>
647     <item name="Keyboard"><value>1</value></item>
648     <item name="Pointer"> <value>2</value></item>
649   </enum>
650
651   <event name="MappingNotify" number="34">
652     <pad bytes="1" />
653     <field type="BYTE" name="request" enum="Mapping" />
654     <field type="KEYCODE" name="first_keycode" />
655     <field type="CARD8" name="count" />
656     <pad bytes="1" />
657   </event>
658
659
660
661   <!-- Core error types -->
662
663
664
665   <error name="Request" number="1">
666     <field type="CARD32" name="bad_value" />
667     <field type="CARD16" name="minor_opcode" />
668     <field type="CARD8" name="major_opcode" />
669     <pad bytes="1" />
670   </error>
671
672   <error name="Value" number="2">
673     <field type="CARD32" name="bad_value" />
674     <field type="CARD16" name="minor_opcode" />
675     <field type="CARD8" name="major_opcode" />
676     <pad bytes="1" />
677   </error>
678
679   <errorcopy name="Window" number="3" ref="Value" />
680   <errorcopy name="Pixmap" number="4" ref="Value" />
681   <errorcopy name="Atom" number="5" ref="Value" />
682   <errorcopy name="Cursor" number="6" ref="Value" />
683   <errorcopy name="Font" number="7" ref="Value" />
684   <errorcopy name="Match" number="8" ref="Request" />
685   <errorcopy name="Drawable" number="9" ref="Value" />
686   <errorcopy name="Access" number="10" ref="Request" />
687   <errorcopy name="Alloc" number="11" ref="Request" />
688   <errorcopy name="Colormap" number="12" ref="Value" />
689   <errorcopy name="GContext" number="13" ref="Value" />
690   <errorcopy name="IDChoice" number="14" ref="Value" />
691   <errorcopy name="Name" number="15" ref="Request" />
692   <errorcopy name="Length" number="16" ref="Request" />
693   <errorcopy name="Implementation" number="17" ref="Request" />
694
695
696
697   <!-- The core requests, in major number order. -->
698   <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
699
700
701
702   <enum name="WindowClass">
703     <item name="CopyFromParent"><value>0</value></item>
704     <item name="InputOutput">   <value>1</value></item>
705     <item name="InputOnly">     <value>2</value></item>
706   </enum>
707
708   <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
709   <enum name="CW">
710     <item name="BackPixmap">      <bit>0</bit></item>
711     <item name="BackPixel">       <bit>1</bit></item>
712     <item name="BorderPixmap">    <bit>2</bit></item>
713     <item name="BorderPixel">     <bit>3</bit></item>
714     <item name="BitGravity">      <bit>4</bit></item>
715     <item name="WinGravity">      <bit>5</bit></item>
716     <item name="BackingStore">    <bit>6</bit></item>
717     <item name="BackingPlanes">   <bit>7</bit></item>
718     <item name="BackingPixel">    <bit>8</bit></item>
719     <item name="OverrideRedirect"><bit>9</bit></item>
720     <item name="SaveUnder">       <bit>10</bit></item>
721     <item name="EventMask">       <bit>11</bit></item>
722     <item name="DontPropagate">   <bit>12</bit></item>
723     <item name="Colormap">        <bit>13</bit></item>
724     <item name="Cursor">          <bit>14</bit></item>
725   </enum>
726   
727   <enum name="BackPixmap">
728     <item name="None">          <value>0</value></item>
729     <item name="ParentRelative"><value>1</value></item>
730   </enum>
731
732   <enum name="Gravity">
733     <item name="BitForget"><value>0</value></item>
734     <item name="WinUnmap"> <value>0</value></item>
735     <item name="NorthWest"><value>1</value></item>
736     <item name="North">    <value>2</value></item>
737     <item name="NorthEast"><value>3</value></item>
738     <item name="West">     <value>4</value></item>
739     <item name="Center">   <value>5</value></item>
740     <item name="East">     <value>6</value></item>
741     <item name="SouthWest"><value>7</value></item>
742     <item name="South">    <value>8</value></item>
743     <item name="SouthEast"><value>9</value></item>
744     <item name="Static">   <value>10</value></item>
745   </enum>
746
747   <request name="CreateWindow" opcode="1">
748     <field type="CARD8" name="depth" />
749     <field type="WINDOW" name="wid" />
750     <field type="WINDOW" name="parent" />
751     <field type="INT16" name="x" />
752     <field type="INT16" name="y" />
753     <field type="CARD16" name="width" />
754     <field type="CARD16" name="height" />
755     <field type="CARD16" name="border_width" />
756     <field type="CARD16" name="class" enum="WindowClass" />
757     <field type="VISUALID" name="visual" />
758     <valueparam value-mask-type="CARD32"
759                 value-mask-name="value_mask"
760                 value-list-name="value_list" />
761   </request>
762
763   <request name="ChangeWindowAttributes" opcode="2">
764     <pad bytes="1" />
765     <field type="WINDOW" name="window" />
766     <valueparam value-mask-type="CARD32"
767                 value-mask-name="value_mask"
768                 value-list-name="value_list" />
769   </request>
770   
771   <enum name="MapState">
772     <item name="Unmapped">  <value>0</value></item>
773     <item name="Unviewable"><value>1</value></item>
774     <item name="Viewable">  <value>2</value></item>
775   </enum>
776
777   <request name="GetWindowAttributes" opcode="3">
778     <pad bytes="1" />
779     <field type="WINDOW" name="window" />
780     <reply>
781       <field type="CARD8" name="backing_store" enum="BackingStore" />
782       <field type="VISUALID" name="visual" />
783       <field type="CARD16" name="class" enum="WindowClass" />
784       <field type="CARD8" name="bit_gravity" enum="Gravity" />
785       <field type="CARD8" name="win_gravity" enum="Gravity" />
786       <field type="CARD32" name="backing_planes" />
787       <field type="CARD32" name="backing_pixel" />
788       <field type="BOOL" name="save_under" />
789       <field type="BOOL" name="map_is_installed" />
790       <field type="CARD8" name="map_state" enum="MapState" />
791       <field type="BOOL" name="override_redirect" />
792       <field type="COLORMAP" name="colormap" altenum="Colormap" />
793       <field type="CARD32" name="all_event_masks" mask="EventMask" />
794       <field type="CARD32" name="your_event_mask" mask="EventMask" />
795       <field type="CARD16" name="do_not_propagate_mask" mask="EventMask" />
796       <pad bytes="2" />
797     </reply>
798   </request>
799
800   <request name="DestroyWindow" opcode="4">
801     <pad bytes="1" />
802     <field type="WINDOW" name="window" />
803   </request>
804
805   <request name="DestroySubwindows" opcode="5">
806     <pad bytes="1" />
807     <field type="WINDOW" name="window" />
808   </request>
809   
810   <enum name="SetMode">
811     <item name="Insert"><value>0</value></item>
812     <item name="Delete"><value>1</value></item>
813   </enum>
814
815   <request name="ChangeSaveSet" opcode="6">
816     <field type="BYTE" name="mode" enum="SetMode" />
817     <field type="WINDOW" name="window" />
818   </request>
819
820   <request name="ReparentWindow" opcode="7">
821     <pad bytes="1" />
822     <field type="WINDOW" name="window" />
823     <field type="WINDOW" name="parent" />
824     <field type="INT16" name="x" />
825     <field type="INT16" name="y" />
826   </request>
827
828   <request name="MapWindow" opcode="8">
829     <pad bytes="1" />
830     <field type="WINDOW" name="window" />
831   </request>
832
833   <request name="MapSubwindows" opcode="9">
834     <pad bytes="1" />
835     <field type="WINDOW" name="window" />
836   </request>
837
838   <request name="UnmapWindow" opcode="10">
839     <pad bytes="1" />
840     <field type="WINDOW" name="window" />
841   </request>
842
843   <request name="UnmapSubwindows" opcode="11">
844     <pad bytes="1" />
845     <field type="WINDOW" name="window" />
846   </request>
847   
848   <enum name="ConfigWindow">
849     <item name="X">          <bit>0</bit></item>
850     <item name="Y">          <bit>1</bit></item>
851     <item name="Width">      <bit>2</bit></item>
852     <item name="Height">     <bit>3</bit></item>
853     <item name="BorderWidth"><bit>4</bit></item>
854     <item name="Sibling">    <bit>5</bit></item>
855     <item name="StackMode">  <bit>6</bit></item>
856   </enum>
857   
858   <enum name="StackMode">
859     <item name="Above">   <value>0</value></item>
860     <item name="Below">   <value>1</value></item>
861     <item name="TopIf">   <value>2</value></item>
862     <item name="BottomIf"><value>3</value></item>
863     <item name="Opposite"><value>4</value></item>
864   </enum>
865
866   <request name="ConfigureWindow" opcode="12">
867     <pad bytes="1" />
868     <field type="WINDOW" name="window" />
869     <field type="CARD16" name="value_mask" />
870     <pad bytes="2" />
871     <valueparam value-mask-type="CARD16"
872                 value-mask-name="value_mask"
873                 value-list-name="value_list" />
874   </request>
875
876   <enum name="Circulate">
877     <item name="RaiseLowest"> <value>0</value></item>
878     <item name="LowerHighest"><value>1</value></item>
879   </enum>
880
881   <request name="CirculateWindow" opcode="13">
882     <field type="CARD8" name="direction" enum="Circulate" />
883     <field type="WINDOW" name="window" />
884   </request>
885
886   <request name="GetGeometry" opcode="14">
887     <pad bytes="1" />
888     <field type="DRAWABLE" name="drawable" />
889     <reply>
890       <field type="CARD8" name="depth" />
891       <field type="WINDOW" name="root" />
892       <field type="INT16" name="x" />
893       <field type="INT16" name="y" />
894       <field type="CARD16" name="width" />
895       <field type="CARD16" name="height" />
896       <field type="CARD16" name="border_width" />
897       <pad bytes="2" />
898     </reply>
899   </request>
900
901   <request name="QueryTree" opcode="15">
902     <pad bytes="1" />
903     <field type="WINDOW" name="window" />
904     <reply>
905       <pad bytes="1" />
906       <field type="WINDOW" name="root" />
907       <field type="WINDOW" name="parent" altenum="Window" />
908       <field type="CARD16" name="children_len" />
909       <pad bytes="14" />
910       <list type="WINDOW" name="children">
911         <fieldref>children_len</fieldref>
912       </list>
913     </reply>
914   </request>
915
916   <request name="InternAtom" opcode="16">
917     <field type="BOOL" name="only_if_exists" />
918     <field type="CARD16" name="name_len" />
919     <pad bytes="2" />
920     <list type="char" name="name">
921       <fieldref>name_len</fieldref>
922     </list>
923     <reply>
924       <pad bytes="1" />
925       <field type="ATOM" name="atom" altenum="Atom" />
926     </reply>
927   </request>
928
929   <request name="GetAtomName" opcode="17">
930     <pad bytes="1" />
931     <field type="ATOM" name="atom" />
932     <reply>
933       <pad bytes="1" />
934       <field type="CARD16" name="name_len" />
935       <pad bytes="22" />
936       <list type="char" name="name">
937         <fieldref>name_len</fieldref>
938       </list>
939     </reply>
940   </request>
941   
942   <enum name="PropMode">
943     <item name="Replace"><value>0</value></item>
944     <item name="Prepend"><value>1</value></item>
945     <item name="Append"> <value>2</value></item>
946   </enum>
947
948   <request name="ChangeProperty" opcode="18">
949     <field type="CARD8" name="mode" enum="PropMode" />
950     <field type="WINDOW" name="window" />
951     <field type="ATOM" name="property" />
952     <field type="ATOM" name="type" />
953     <field type="CARD8" name="format" />
954     <pad bytes="3" />
955     <field type="CARD32" name="data_len" />
956     <list type="void" name="data">
957       <op op="/">
958         <op op="*">
959           <fieldref>data_len</fieldref>
960           <fieldref>format</fieldref>
961         </op>
962         <value>8</value>
963       </op>
964     </list>
965   </request>
966
967   <request name="DeleteProperty" opcode="19">
968     <pad bytes="1" />
969     <field type="WINDOW" name="window" />
970     <field type="ATOM" name="property" />
971   </request>
972   
973   <enum name="GetPropertyType">
974     <item name="Any"><value>0</value></item>
975   </enum>
976
977   <request name="GetProperty" opcode="20">
978     <field type="BOOL" name="delete" />
979     <field type="WINDOW" name="window" />
980     <field type="ATOM" name="property" />
981     <field type="ATOM" name="type" altenum="GetPropertyType" />
982     <field type="CARD32" name="long_offset" />
983     <field type="CARD32" name="long_length" />
984     <reply>
985       <field type="CARD8" name="format" />
986       <field type="ATOM" name="type" />
987       <field type="CARD32" name="bytes_after" />
988       <field type="CARD32" name="value_len" />
989       <pad bytes="12" />
990       <list type="void" name="value">
991         <op op="*">
992           <fieldref>value_len</fieldref>
993           <op op="/">
994             <fieldref>format</fieldref>
995             <value>8</value>
996           </op>
997         </op>
998       </list>
999     </reply>
1000   </request>
1001
1002   <request name="ListProperties" opcode="21">
1003     <pad bytes="1" />
1004     <field type="WINDOW" name="window" />
1005     <reply>
1006       <pad bytes="1" />
1007       <field type="CARD16" name="atoms_len" />
1008       <pad bytes="22" />
1009       <list type="ATOM" name="atoms">
1010         <fieldref>atoms_len</fieldref>
1011       </list>
1012     </reply>
1013   </request>
1014
1015   <request name="SetSelectionOwner" opcode="22">
1016     <pad bytes="1" />
1017     <field type="WINDOW" name="owner" altenum="Window" />
1018     <field type="ATOM" name="selection" />
1019     <field type="TIMESTAMP" name="time" altenum="Time" />
1020   </request>
1021
1022   <request name="GetSelectionOwner" opcode="23">
1023     <pad bytes="1" />
1024     <field type="ATOM" name="selection" />
1025     <reply>
1026       <pad bytes="1" />
1027       <field type="WINDOW" name="owner" altenum="Window" />
1028     </reply>
1029   </request>
1030
1031   <request name="ConvertSelection" opcode="24">
1032     <pad bytes="1" />
1033     <field type="WINDOW" name="requestor" />
1034     <field type="ATOM" name="selection" />
1035     <field type="ATOM" name="target" />
1036     <field type="ATOM" name="property" altenum="Atom" />
1037     <field type="TIMESTAMP" name="time" altenum="Time" />
1038   </request>
1039
1040   <enum name="SendEventDest">
1041     <item name="PointerWindow"><value>0</value></item>
1042     <item name="ItemFocus">    <value>1</value></item>
1043   </enum>
1044
1045   <request name="SendEvent" opcode="25">
1046     <field type="BOOL" name="propagate" />
1047     <field type="WINDOW" name="destination" altenum="SendEventDest" />
1048     <field type="CARD32" name="event_mask" mask="EventMask" />
1049     <list type="char" name="event"><value>32</value></list>
1050   </request>
1051
1052   <enum name="GrabMode">
1053     <item name="Sync"> <value>0</value></item>
1054     <item name="Async"><value>1</value></item>
1055   </enum>
1056
1057   <enum name="GrabStatus">
1058     <item name="Success">       <value>0</value></item>
1059     <item name="AlreadyGrabbed"><value>1</value></item>
1060     <item name="InvalidTime">   <value>2</value></item>
1061     <item name="NotViewable">   <value>3</value></item>
1062     <item name="Frozen">        <value>4</value></item>
1063   </enum>
1064
1065   <enum name="Cursor">
1066     <item name="None"> <value>0</value></item>
1067   </enum>
1068
1069   <request name="GrabPointer" opcode="26">
1070     <field type="BOOL" name="owner_events" />
1071     <field type="WINDOW" name="grab_window" />
1072     <field type="CARD16" name="event_mask" mask="EventMask" />
1073     <field type="BYTE" name="pointer_mode" enum="GrabMode" />
1074     <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
1075     <field type="WINDOW" name="confine_to" altenum="Window" />
1076     <field type="CURSOR" name="cursor" altenum="Cursor" />
1077     <field type="TIMESTAMP" name="time" altenum="Time" />
1078     <reply>
1079       <field type="BYTE" name="status" enum="GrabStatus" />
1080     </reply>
1081   </request>
1082
1083   <request name="UngrabPointer" opcode="27">
1084     <pad bytes="1" />
1085     <field type="TIMESTAMP" name="time" altenum="Time" />
1086   </request>
1087
1088   <enum name="ButtonIndex">
1089      <item name="Any"><value>0</value></item>
1090      <item name="1">  <value>1</value></item>
1091      <item name="2">  <value>2</value></item>
1092      <item name="3">  <value>3</value></item>
1093      <item name="4">  <value>4</value></item>
1094      <item name="5">  <value>5</value></item>
1095   </enum>
1096
1097   <request name="GrabButton" opcode="28">
1098     <field type="BOOL" name="owner_events" />
1099     <field type="WINDOW" name="grab_window" />
1100     <field type="CARD16" name="event_mask" mask="EventMask" />
1101     <field type="CARD8" name="pointer_mode" enum="GrabMode" />
1102     <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
1103     <field type="WINDOW" name="confine_to" altenum="Window" />
1104     <field type="CURSOR" name="cursor" altenum="Cursor" />
1105     <field type="CARD8" name="button" enum="ButtonIndex" />
1106     <pad bytes="1" />
1107     <field type="CARD16" name="modifiers" mask="ModMask" />
1108   </request>
1109
1110   <request name="UngrabButton" opcode="29">
1111     <field type="CARD8" name="button" enum="ButtonIndex" />
1112     <field type="WINDOW" name="grab_window" />
1113     <field type="CARD16" name="modifiers" mask="ModMask" />
1114     <pad bytes="2" />
1115   </request>
1116
1117   <request name="ChangeActivePointerGrab" opcode="30">
1118     <pad bytes="1" />
1119     <field type="CURSOR" name="cursor" altenum="Cursor" />
1120     <field type="TIMESTAMP" name="time" altenum="Time" />
1121     <field type="CARD16" name="event_mask" mask="EventMask" />
1122     <pad bytes="2" />
1123   </request>
1124
1125   <request name="GrabKeyboard" opcode="31">
1126     <field type="BOOL" name="owner_events" />
1127     <field type="WINDOW" name="grab_window" />
1128     <field type="TIMESTAMP" name="time" altenum="Time" />
1129     <field type="BYTE" name="pointer_mode" enum="GrabMode" />
1130     <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
1131     <pad bytes="2" />
1132     <reply>
1133       <field type="BYTE" name="status" enum="GrabStatus" />
1134     </reply>
1135   </request>
1136
1137   <request name="UngrabKeyboard" opcode="32">
1138     <pad bytes="1" />
1139     <field type="TIMESTAMP" name="time" altenum="Time" />
1140   </request>
1141
1142   <!-- Use KEYCODE any = { XCBGrabAny }; to grab any key -->
1143   <enum name="Grab">
1144     <item name="Any"><value>0</value></item>
1145   </enum>
1146
1147   <request name="GrabKey" opcode="33">
1148     <field type="BOOL" name="owner_events" />
1149     <field type="WINDOW" name="grab_window" />
1150     <field type="CARD16" name="modifiers" mask="ModMask" />
1151     <field type="KEYCODE" name="key" altenum="Grab" />
1152     <field type="CARD8" name="pointer_mode" enum="GrabMode" />
1153     <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
1154     <pad bytes="3" />
1155   </request>
1156
1157   <request name="UngrabKey" opcode="34">
1158     <field type="KEYCODE" name="key" altenum="Grab" />
1159     <field type="WINDOW" name="grab_window" />
1160     <field type="CARD16" name="modifiers" mask="ModMask" />
1161     <pad bytes="2" />
1162   </request>
1163
1164   <enum name="Allow">
1165     <item name="AsyncPointer">  <value>0</value></item>
1166     <item name="SyncPointer">   <value>1</value></item>
1167     <item name="ReplayPointer"> <value>2</value></item>
1168     <item name="AsyncKeyboard"> <value>3</value></item>
1169     <item name="SyncKeyboard">  <value>4</value></item>
1170     <item name="ReplayKeyboard"><value>5</value></item>
1171     <item name="AsyncBoth">     <value>6</value></item>
1172     <item name="SyncBoth">      <value>7</value></item>
1173   </enum>
1174
1175   <request name="AllowEvents" opcode="35">
1176     <field type="CARD8" name="mode" enum="Allow" />
1177     <field type="TIMESTAMP" name="time" altenum="Time" />
1178   </request>
1179
1180   <request name="GrabServer" opcode="36" />
1181
1182   <request name="UngrabServer" opcode="37" />
1183
1184   <request name="QueryPointer" opcode="38">
1185     <pad bytes="1" />
1186     <field type="WINDOW" name="window" />
1187     <reply>
1188       <field type="BOOL" name="same_screen" />
1189       <field type="WINDOW" name="root" />
1190       <field type="WINDOW" name="child" altenum="Window" />
1191       <field type="INT16" name="root_x" />
1192       <field type="INT16" name="root_y" />
1193       <field type="INT16" name="win_x" />
1194       <field type="INT16" name="win_y" />
1195       <field type="CARD16" name="mask" mask="KeyButMask" />
1196       <pad bytes="2" />
1197     </reply>
1198   </request>
1199
1200   <struct name="TIMECOORD">
1201     <field type="TIMESTAMP" name="time" />
1202     <field type="INT16" name="x" />
1203     <field type="INT16" name="y" />
1204   </struct>
1205
1206   <request name="GetMotionEvents" opcode="39">
1207     <pad bytes="1" />
1208     <field type="WINDOW" name="window" />
1209     <field type="TIMESTAMP" name="start" altenum="Time" />
1210     <field type="TIMESTAMP" name="stop" altenum="Time" />
1211     <reply>
1212       <pad bytes="1" />
1213       <field type="CARD32" name="events_len" />
1214       <pad bytes="20" />
1215       <list type="TIMECOORD" name="events">
1216         <fieldref>events_len</fieldref>
1217       </list>
1218     </reply>
1219   </request>
1220
1221   <request name="TranslateCoordinates" opcode="40">
1222     <pad bytes="1" />
1223     <field type="WINDOW" name="src_window" />
1224     <field type="WINDOW" name="dst_window" />
1225     <field type="INT16" name="src_x" />
1226     <field type="INT16" name="src_y" />
1227     <reply>
1228       <field type="BOOL" name="same_screen" />
1229       <field type="WINDOW" name="child" altenum="Window" />
1230       <field type="CARD16" name="dst_x" />
1231       <field type="CARD16" name="dst_y" />
1232     </reply>
1233   </request>
1234
1235   <request name="WarpPointer" opcode="41">
1236     <pad bytes="1" />
1237     <field type="WINDOW" name="src_window" altenum="Window" />
1238     <field type="WINDOW" name="dst_window" altenum="Window" />
1239     <field type="INT16" name="src_x" />
1240     <field type="INT16" name="src_y" />
1241     <field type="CARD16" name="src_width" />
1242     <field type="CARD16" name="src_height" />
1243     <field type="INT16" name="dst_x" />
1244     <field type="INT16" name="dst_y" />
1245   </request>
1246
1247   <!-- used for revert_to and focus -->
1248   <enum name="InputFocus">
1249     <item name="None">       <value>0</value></item>
1250     <item name="PointerRoot"><value>1</value></item>
1251     <item name="Parent">     <value>2</value></item>  <!-- revert_to only -->
1252     <item name="FollowKeyboard"><value>3</value></item>  <!-- xinput extension only -->
1253   </enum>
1254
1255   <request name="SetInputFocus" opcode="42">
1256     <field type="CARD8" name="revert_to" enum="InputFocus" />
1257     <field type="WINDOW" name="focus" altenum="InputFocus" />
1258     <field type="TIMESTAMP" name="time" altenum="Time" />
1259   </request>
1260
1261   <request name="GetInputFocus" opcode="43">
1262     <reply>
1263       <field type="CARD8" name="revert_to" enum="InputFocus" />
1264       <field type="WINDOW" name="focus" altenum="InputFocus" />
1265     </reply>
1266   </request>
1267
1268   <request name="QueryKeymap" opcode="44">
1269     <reply>
1270       <pad bytes="1" />
1271       <list type="CARD8" name="keys"><value>32</value></list>
1272     </reply>
1273   </request>
1274
1275   <request name="OpenFont" opcode="45">
1276     <pad bytes="1" />
1277     <field type="FONT" name="fid" />
1278     <field type="CARD16" name="name_len" />
1279     <pad bytes="2" />
1280     <list type="char" name="name">
1281       <fieldref>name_len</fieldref>
1282     </list>
1283   </request>
1284
1285   <request name="CloseFont" opcode="46">
1286     <pad bytes="1" />
1287     <field type="FONT" name="font" />
1288   </request>
1289
1290   <enum name="FontDraw">
1291     <item name="LeftToRight"><value>0</value></item>
1292     <item name="RightToLeft"><value>1</value></item>
1293   </enum>
1294
1295   <struct name="FONTPROP">
1296     <field type="ATOM" name="name" />
1297     <field type="CARD32" name="value" />
1298   </struct>
1299
1300   <struct name="CHARINFO">
1301     <field type="INT16" name="left_side_bearing" />
1302     <field type="INT16" name="right_side_bearing" />
1303     <field type="INT16" name="character_width" />
1304     <field type="INT16" name="ascent" />
1305     <field type="INT16" name="descent" />
1306     <field type="CARD16" name="attributes" />
1307   </struct>
1308
1309   <request name="QueryFont" opcode="47">
1310     <pad bytes="1" />
1311     <field type="FONTABLE" name="font" />
1312     <reply>
1313       <pad bytes="1" />
1314       <field type="CHARINFO" name="min_bounds" />
1315       <pad bytes="4" />
1316       <field type="CHARINFO" name="max_bounds" />
1317       <pad bytes="4" />
1318       <field type="CARD16" name="min_char_or_byte2" />
1319       <field type="CARD16" name="max_char_or_byte2" />
1320       <field type="CARD16" name="default_char" />
1321       <field type="CARD16" name="properties_len" />
1322       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1323       <field type="CARD8" name="min_byte1" />
1324       <field type="CARD8" name="max_byte1" />
1325       <field type="BOOL" name="all_chars_exist" />
1326       <field type="INT16" name="font_ascent" />
1327       <field type="INT16" name="font_descent" />
1328       <field type="CARD32" name="char_infos_len" />
1329       <list type="FONTPROP" name="properties">
1330         <fieldref>properties_len</fieldref>
1331       </list>
1332       <list type="CHARINFO" name="char_infos">
1333         <fieldref>char_infos_len</fieldref>
1334       </list>
1335     </reply>
1336   </request>
1337
1338   <request name="QueryTextExtents" opcode="48">
1339     <exprfield type="BOOL" name="odd_length">
1340       <op op="&amp;"><fieldref>string_len</fieldref><value>1</value></op>
1341     </exprfield>
1342     <field type="FONTABLE" name="font" />
1343     <list type="CHAR2B" name="string" />
1344     <reply>
1345       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1346       <field type="INT16" name="font_ascent" />
1347       <field type="INT16" name="font_descent" />
1348       <field type="INT16" name="overall_ascent" />
1349       <field type="INT16" name="overall_descent" />
1350       <field type="INT32" name="overall_width" />
1351       <field type="INT32" name="overall_left" />
1352       <field type="INT32" name="overall_right" />
1353     </reply>
1354   </request>
1355
1356   <struct name="STR">
1357     <field type="CARD8" name="name_len" />
1358     <list type="char" name="name">
1359       <fieldref>name_len</fieldref>
1360     </list>
1361   </struct>
1362
1363   <request name="ListFonts" opcode="49">
1364     <pad bytes="1" />
1365     <field type="CARD16" name="max_names" />
1366     <field type="CARD16" name="pattern_len" />
1367     <list type="char" name="pattern">
1368       <fieldref>pattern_len</fieldref>
1369     </list>
1370     <reply>
1371       <pad bytes="1" />
1372       <field type="CARD16" name="names_len" />
1373       <pad bytes="22" />
1374       <list type="STR" name="names">
1375         <fieldref>names_len</fieldref>
1376       </list>
1377     </reply>
1378   </request>
1379
1380   <request name="ListFontsWithInfo" opcode="50">
1381     <pad bytes="1" />
1382     <field type="CARD16" name="max_names" />
1383     <field type="CARD16" name="pattern_len" />
1384     <list type="char" name="pattern">
1385       <fieldref>pattern_len</fieldref>
1386     </list>
1387     <reply>
1388       <field type="CARD8" name="name_len" />
1389       <field type="CHARINFO" name="min_bounds" />
1390       <pad bytes="4" />
1391       <field type="CHARINFO" name="max_bounds" />
1392       <pad bytes="4" />
1393       <field type="CARD16" name="min_char_or_byte2" />
1394       <field type="CARD16" name="max_char_or_byte2" />
1395       <field type="CARD16" name="default_char" />
1396       <field type="CARD16" name="properties_len" />
1397       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1398       <field type="CARD8" name="min_byte1" />
1399       <field type="CARD8" name="max_byte1" />
1400       <field type="BOOL" name="all_chars_exist" />
1401       <field type="INT16" name="font_ascent" />
1402       <field type="INT16" name="font_descent" />
1403       <field type="CARD32" name="replies_hint" />
1404       <list type="FONTPROP" name="properties">
1405         <fieldref>properties_len</fieldref>
1406       </list>
1407       <list type="char" name="name">
1408         <fieldref>name_len</fieldref>
1409       </list>
1410     </reply>
1411   </request>
1412
1413   <request name="SetFontPath" opcode="51">
1414     <pad bytes="1" />
1415     <field type="CARD16" name="font_qty" />
1416     <list type="char" name="path" />
1417   </request>
1418
1419   <request name="GetFontPath" opcode="52">
1420     <reply>
1421       <pad bytes="1" />
1422       <field type="CARD16" name="path_len" />
1423       <pad bytes="22" />
1424       <list type="STR" name="path">
1425         <fieldref>path_len</fieldref>
1426       </list>
1427     </reply>
1428   </request>
1429
1430   <request name="CreatePixmap" opcode="53">
1431     <field type="CARD8" name="depth" />
1432     <field type="PIXMAP" name="pid" />
1433     <field type="DRAWABLE" name="drawable" />
1434     <field type="CARD16" name="width" />
1435     <field type="CARD16" name="height" />
1436   </request>
1437
1438   <request name="FreePixmap" opcode="54">
1439     <pad bytes="1" />
1440     <field type="PIXMAP" name="pixmap" />
1441   </request>
1442   
1443   <enum name="GC">
1444     <item name="Function">          <bit>0</bit></item>
1445     <item name="PlaneMask">         <bit>1</bit></item>
1446     <item name="Foreground">        <bit>2</bit></item>
1447     <item name="Background">        <bit>3</bit></item>
1448     <item name="LineWidth">         <bit>4</bit></item>
1449     <item name="LineStyle">         <bit>5</bit></item>
1450     <item name="CapStyle">          <bit>6</bit></item>
1451     <item name="JoinStyle">         <bit>7</bit></item>
1452     <item name="FillStyle">         <bit>8</bit></item>
1453     <item name="FillRule">          <bit>9</bit></item>
1454     <item name="Tile">              <bit>10</bit></item>
1455     <item name="Stipple">           <bit>11</bit></item>
1456     <item name="TileStippleOriginX"><bit>12</bit></item>
1457     <item name="TileStippleOriginY"><bit>13</bit></item>
1458     <item name="Font">              <bit>14</bit></item>
1459     <item name="SubwindowMode">     <bit>15</bit></item>
1460     <item name="GraphicsExposures"> <bit>16</bit></item>
1461     <item name="ClipOriginX">       <bit>17</bit></item>
1462     <item name="ClipOriginY">       <bit>18</bit></item>
1463     <item name="ClipMask">          <bit>19</bit></item>
1464     <item name="DashOffset">        <bit>20</bit></item>
1465     <item name="DashList">          <bit>21</bit></item>
1466     <item name="ArcMode">           <bit>22</bit></item>
1467   </enum>
1468
1469   <!-- GC Function values -->
1470   <enum name="GX">
1471     <item name="clear">       <value>0</value></item>
1472     <item name="and">         <value>1</value></item>
1473     <item name="andReverse">  <value>2</value></item>
1474     <item name="copy">        <value>3</value></item>
1475     <item name="andInverted"> <value>4</value></item>
1476     <item name="noop">        <value>5</value></item>
1477     <item name="xor">         <value>6</value></item>
1478     <item name="or">          <value>7</value></item>
1479     <item name="nor">         <value>8</value></item>
1480     <item name="equiv">       <value>9</value></item>
1481     <item name="invert">      <value>10</value></item>
1482     <item name="orReverse">   <value>11</value></item>
1483     <item name="copyInverted"><value>12</value></item>
1484     <item name="orInverted">  <value>13</value></item>
1485     <item name="nand">        <value>14</value></item>
1486     <item name="set">         <value>15</value></item>
1487   </enum>
1488
1489   <enum name="LineStyle">
1490     <item name="Solid">     <value>0</value></item>
1491     <item name="OnOffDash"> <value>1</value></item>
1492     <item name="DoubleDash"><value>2</value></item>
1493   </enum>
1494
1495   <enum name="CapStyle">
1496     <item name="NotLast">   <value>0</value></item>
1497     <item name="Butt">      <value>1</value></item>
1498     <item name="Round">     <value>2</value></item>
1499     <item name="Projecting"><value>3</value></item>
1500   </enum>
1501
1502   <enum name="JoinStyle">
1503     <item name="Miter">     <value>0</value></item>
1504     <item name="Round">     <value>1</value></item>
1505     <item name="Bevel">     <value>2</value></item>
1506   </enum>
1507
1508   <enum name="FillStyle">
1509     <item name="Solid">         <value>0</value></item>
1510     <item name="Tiled">         <value>1</value></item>
1511     <item name="Stippled">      <value>2</value></item>
1512     <item name="OpaqueStippled"><value>3</value></item>
1513   </enum>
1514
1515   <enum name="FillRule">
1516     <item name="EvenOdd"><value>0</value></item>
1517     <item name="Winding"><value>1</value></item>
1518   </enum>
1519
1520   <enum name="SubwindowMode">
1521     <item name="ClipByChildren">  <value>0</value></item>
1522     <item name="IncludeInferiors"><value>1</value></item>
1523   </enum>
1524
1525   <enum name="ArcMode">
1526     <item name="Chord">   <value>0</value></item>
1527     <item name="PieSlice"><value>1</value></item>
1528   </enum>
1529
1530   <request name="CreateGC" opcode="55">
1531     <pad bytes="1" />
1532     <field type="GCONTEXT" name="cid" />
1533     <field type="DRAWABLE" name="drawable" />
1534     <valueparam value-mask-type="CARD32"
1535                 value-mask-name="value_mask"
1536                 value-list-name="value_list" />
1537   </request>
1538
1539   <request name="ChangeGC" opcode="56">
1540     <pad bytes="1" />
1541     <field type="GCONTEXT" name="gc" />
1542     <valueparam value-mask-type="CARD32"
1543                 value-mask-name="value_mask"
1544                 value-list-name="value_list" />
1545   </request>
1546
1547   <request name="CopyGC" opcode="57">
1548     <pad bytes="1" />
1549     <field type="GCONTEXT" name="src_gc" />
1550     <field type="GCONTEXT" name="dst_gc" />
1551     <field type="CARD32" name="value_mask" mask="GC" />
1552   </request>
1553
1554   <request name="SetDashes" opcode="58">
1555     <pad bytes="1" />
1556     <field type="GCONTEXT" name="gc" />
1557     <field type="CARD16" name="dash_offset" />
1558     <field type="CARD16" name="dashes_len" />
1559     <list type="CARD8" name="dashes">
1560       <fieldref>dashes_len</fieldref>
1561     </list>
1562   </request>
1563
1564   <enum name="ClipOrdering">
1565     <item name="Unsorted"><value>0</value></item>
1566     <item name="YSorted"> <value>1</value></item>
1567     <item name="YXSorted"><value>2</value></item>
1568     <item name="YXBanded"><value>3</value></item>
1569   </enum>
1570
1571   <request name="SetClipRectangles" opcode="59">
1572     <field type="BYTE" name="ordering" enum="ClipOrdering" />
1573     <field type="GCONTEXT" name="gc" />
1574     <field type="INT16" name="clip_x_origin" />
1575     <field type="INT16" name="clip_y_origin" />
1576     <list type="RECTANGLE" name="rectangles" />
1577   </request>
1578
1579   <request name="FreeGC" opcode="60">
1580     <pad bytes="1" />
1581     <field type="GCONTEXT" name="gc" />
1582   </request>
1583
1584   <request name="ClearArea" opcode="61">
1585     <field type="BOOL" name="exposures" />
1586     <field type="WINDOW" name="window" />
1587     <field type="INT16" name="x" />
1588     <field type="INT16" name="y" />
1589     <field type="CARD16" name="width" />
1590     <field type="CARD16" name="height" />
1591   </request>
1592
1593   <request name="CopyArea" opcode="62">
1594     <pad bytes="1" />
1595     <field type="DRAWABLE" name="src_drawable" />
1596     <field type="DRAWABLE" name="dst_drawable" />
1597     <field type="GCONTEXT" name="gc" />
1598     <field type="INT16" name="src_x" />
1599     <field type="INT16" name="src_y" />
1600     <field type="INT16" name="dst_x" />
1601     <field type="INT16" name="dst_y" />
1602     <field type="CARD16" name="width" />
1603     <field type="CARD16" name="height" />
1604   </request>
1605
1606   <request name="CopyPlane" opcode="63">
1607     <pad bytes="1" />
1608     <field type="DRAWABLE" name="src_drawable" />
1609     <field type="DRAWABLE" name="dst_drawable" />
1610     <field type="GCONTEXT" name="gc" />
1611     <field type="INT16" name="src_x" />
1612     <field type="INT16" name="src_y" />
1613     <field type="INT16" name="dst_x" />
1614     <field type="INT16" name="dst_y" />
1615     <field type="CARD16" name="width" />
1616     <field type="CARD16" name="height" />
1617     <field type="CARD32" name="bit_plane" />
1618   </request>
1619   
1620   <enum name="CoordMode">
1621     <item name="Origin">  <value>0</value></item>
1622     <item name="Previous"><value>1</value></item>
1623   </enum>
1624
1625   <!-- combine-adjacent doesn't work for mode==Relative -->
1626   <request name="PolyPoint" opcode="64">
1627     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1628     <field type="DRAWABLE" name="drawable" />
1629     <field type="GCONTEXT" name="gc" />
1630     <list type="POINT" name="points" />
1631   </request>
1632
1633   <request name="PolyLine" opcode="65" combine-adjacent="true">
1634     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1635     <field type="DRAWABLE" name="drawable" />
1636     <field type="GCONTEXT" name="gc" />
1637     <list type="POINT" name="points" />
1638   </request>
1639
1640   <struct name="SEGMENT">
1641     <field type="INT16" name="x1" />
1642     <field type="INT16" name="y1" />
1643     <field type="INT16" name="x2" />
1644     <field type="INT16" name="y2" />
1645   </struct>
1646
1647   <request name="PolySegment" opcode="66" combine-adjacent="true">
1648     <pad bytes="1" />
1649     <field type="DRAWABLE" name="drawable" />
1650     <field type="GCONTEXT" name="gc" />
1651     <list type="SEGMENT" name="segments" />
1652   </request>
1653
1654   <request name="PolyRectangle" opcode="67" combine-adjacent="true">
1655     <pad bytes="1" />
1656     <field type="DRAWABLE" name="drawable" />
1657     <field type="GCONTEXT" name="gc" />
1658     <list type="RECTANGLE" name="rectangles" />
1659   </request>
1660
1661   <!--
1662     The semantics of PolyArc change after the first arc: the GC's
1663     join style may be applied to successive arcs under some circumstances.
1664     So using combine-adjacent here is bad.
1665   -->
1666   <request name="PolyArc" opcode="68">
1667     <pad bytes="1" />
1668     <field type="DRAWABLE" name="drawable" />
1669     <field type="GCONTEXT" name="gc" />
1670     <list type="ARC" name="arcs" />
1671   </request>
1672
1673   <enum name="PolyShape">
1674     <item name="Complex">  <value>0</value></item>
1675     <item name="Nonconvex"><value>1</value></item>
1676     <item name="Convex">   <value>2</value></item>
1677   </enum>
1678
1679   <request name="FillPoly" opcode="69">
1680     <pad bytes="1" />
1681     <field type="DRAWABLE" name="drawable" />
1682     <field type="GCONTEXT" name="gc" />
1683     <field type="CARD8" name="shape" enum="PolyShape" />
1684     <field type="CARD8" name="coordinate_mode" enum="CoordMode" />
1685     <pad bytes="2" />
1686     <list type="POINT" name="points" />
1687   </request>
1688
1689   <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
1690     <pad bytes="1" />
1691     <field type="DRAWABLE" name="drawable" />
1692     <field type="GCONTEXT" name="gc" />
1693     <list type="RECTANGLE" name="rectangles" />
1694   </request>
1695
1696   <request name="PolyFillArc" opcode="71" combine-adjacent="true">
1697     <pad bytes="1" />
1698     <field type="DRAWABLE" name="drawable" />
1699     <field type="GCONTEXT" name="gc" />
1700     <list type="ARC" name="arcs" />
1701   </request>
1702   
1703   <enum name="ImageFormat">
1704     <item name="XYBitmap"><value>0</value></item>
1705     <item name="XYPixmap"><value>1</value></item>
1706     <item name="ZPixmap"> <value>2</value></item>
1707   </enum>
1708
1709   <request name="PutImage" opcode="72">
1710     <field type="CARD8" name="format" enum="ImageFormat" />
1711     <field type="DRAWABLE" name="drawable" />
1712     <field type="GCONTEXT" name="gc" />
1713     <field type="CARD16" name="width" />
1714     <field type="CARD16" name="height" />
1715     <field type="INT16" name="dst_x" />
1716     <field type="INT16" name="dst_y" />
1717     <field type="CARD8" name="left_pad" />
1718     <field type="CARD8" name="depth" />
1719     <pad bytes="2" />
1720     <list type="BYTE" name="data" />
1721   </request>
1722
1723   <!-- FIXME: data array in reply will include padding, but ought not to. -->
1724   <request name="GetImage" opcode="73">
1725     <field type="CARD8" name="format" enum="ImageFormat" />
1726     <field type="DRAWABLE" name="drawable" />
1727     <field type="INT16" name="x" />
1728     <field type="INT16" name="y" />
1729     <field type="CARD16" name="width" />
1730     <field type="CARD16" name="height" />
1731     <field type="CARD32" name="plane_mask" />
1732     <reply>
1733       <field type="CARD8" name="depth" />
1734       <field type="VISUALID" name="visual" />
1735       <pad bytes="20" />
1736       <list type="BYTE" name="data">
1737         <op op="*">
1738           <fieldref>length</fieldref>
1739           <value>4</value>
1740         </op>
1741       </list>
1742     </reply>
1743   </request>
1744
1745   <request name="PolyText8" opcode="74">
1746     <pad bytes="1" />
1747     <field type="DRAWABLE" name="drawable" />
1748     <field type="GCONTEXT" name="gc" />
1749     <field type="INT16" name="x" />
1750     <field type="INT16" name="y" />
1751     <list type="BYTE" name="items" />
1752   </request>
1753
1754   <request name="PolyText16" opcode="75">
1755     <pad bytes="1" />
1756     <field type="DRAWABLE" name="drawable" />
1757     <field type="GCONTEXT" name="gc" />
1758     <field type="INT16" name="x" />
1759     <field type="INT16" name="y" />
1760     <list type="BYTE" name="items" />
1761   </request>
1762
1763   <request name="ImageText8" opcode="76">
1764     <field type="BYTE" name="string_len" />
1765     <field type="DRAWABLE" name="drawable" />
1766     <field type="GCONTEXT" name="gc" />
1767     <field type="INT16" name="x" />
1768     <field type="INT16" name="y" />
1769     <list type="char" name="string">
1770       <fieldref>string_len</fieldref>
1771     </list>
1772   </request>
1773
1774   <request name="ImageText16" opcode="77">
1775     <field type="BYTE" name="string_len" />
1776     <field type="DRAWABLE" name="drawable" />
1777     <field type="GCONTEXT" name="gc" />
1778     <field type="INT16" name="x" />
1779     <field type="INT16" name="y" />
1780     <list type="CHAR2B" name="string">
1781       <fieldref>string_len</fieldref>
1782     </list>
1783   </request>
1784
1785   <enum name= "ColormapAlloc">
1786     <item name="None"><value>0</value></item>
1787     <item name="All"> <value>1</value></item>
1788   </enum>
1789
1790   <request name="CreateColormap" opcode="78">
1791     <field type="BYTE" name="alloc" enum="ColormapAlloc" />
1792     <field type="COLORMAP" name="mid" />
1793     <field type="WINDOW" name="window" />
1794     <field type="VISUALID" name="visual" />
1795   </request>
1796
1797   <request name="FreeColormap" opcode="79">
1798     <pad bytes="1" />
1799     <field type="COLORMAP" name="cmap" />
1800   </request>
1801
1802   <request name="CopyColormapAndFree" opcode="80">
1803     <pad bytes="1" />
1804     <field type="COLORMAP" name="mid" />
1805     <field type="COLORMAP" name="src_cmap" />
1806   </request>
1807
1808   <request name="InstallColormap" opcode="81">
1809     <pad bytes="1" />
1810     <field type="COLORMAP" name="cmap" />
1811   </request>
1812
1813   <request name="UninstallColormap" opcode="82">
1814     <pad bytes="1" />
1815     <field type="COLORMAP" name="cmap" />
1816   </request>
1817
1818   <request name="ListInstalledColormaps" opcode="83">
1819     <pad bytes="1" />
1820     <field type="WINDOW" name="window" />
1821     <reply>
1822       <pad bytes="1" />
1823       <field type="CARD16" name="cmaps_len" />
1824       <pad bytes="22" />
1825       <list type="COLORMAP" name="cmaps">
1826         <fieldref>cmaps_len</fieldref>
1827       </list>
1828     </reply>
1829   </request>
1830
1831   <request name="AllocColor" opcode="84">
1832     <pad bytes="1" />
1833     <field type="COLORMAP" name="cmap" />
1834     <field type="CARD16" name="red" />
1835     <field type="CARD16" name="green" />
1836     <field type="CARD16" name="blue" />
1837     <pad bytes="2" />
1838     <reply>
1839       <pad bytes="1" />
1840       <field type="CARD16" name="red" />
1841       <field type="CARD16" name="green" />
1842       <field type="CARD16" name="blue" />
1843       <pad bytes="2" />
1844       <field type="CARD32" name="pixel" />
1845     </reply>
1846   </request>
1847
1848   <request name="AllocNamedColor" opcode="85">
1849     <pad bytes="1" />
1850     <field type="COLORMAP" name="cmap" />
1851     <field type="CARD16" name="name_len" />
1852     <pad bytes="2" />
1853     <list type="char" name="name">
1854       <fieldref>name_len</fieldref>
1855     </list>
1856     <reply>
1857       <pad bytes="1" />
1858       <field type="CARD32" name="pixel" />
1859       <field type="CARD16" name="exact_red" />
1860       <field type="CARD16" name="exact_green" />
1861       <field type="CARD16" name="exact_blue" />
1862       <field type="CARD16" name="visual_red" />
1863       <field type="CARD16" name="visual_green" />
1864       <field type="CARD16" name="visual_blue" />
1865     </reply>
1866   </request>
1867
1868   <request name="AllocColorCells" opcode="86">
1869     <field type="BOOL" name="contiguous" />
1870     <field type="COLORMAP" name="cmap" />
1871     <field type="CARD16" name="colors" />
1872     <field type="CARD16" name="planes" />
1873     <reply>
1874       <pad bytes="1" />
1875       <field type="CARD16" name="pixels_len" />
1876       <field type="CARD16" name="masks_len" />
1877       <pad bytes="20" />
1878       <list type="CARD32" name="pixels">
1879         <fieldref>pixels_len</fieldref>
1880       </list>
1881       <list type="CARD32" name="masks">
1882         <fieldref>masks_len</fieldref>
1883       </list>
1884     </reply>
1885   </request>
1886
1887   <request name="AllocColorPlanes" opcode="87">
1888     <field type="BOOL" name="contiguous" />
1889     <field type="COLORMAP" name="cmap" />
1890     <field type="CARD16" name="colors" />
1891     <field type="CARD16" name="reds" />
1892     <field type="CARD16" name="greens" />
1893     <field type="CARD16" name="blues" />
1894     <reply>
1895       <pad bytes="1" />
1896       <field type="CARD16" name="pixels_len" />
1897       <pad bytes="2" />
1898       <field type="CARD32" name="red_mask" />
1899       <field type="CARD32" name="green_mask" />
1900       <field type="CARD32" name="blue_mask" />
1901       <pad bytes="8" />
1902       <list type="CARD32" name="pixels">
1903         <fieldref>pixels_len</fieldref>
1904       </list>
1905     </reply>
1906   </request>
1907
1908   <request name="FreeColors" opcode="88">
1909     <pad bytes="1" />
1910     <field type="COLORMAP" name="cmap" />
1911     <field type="CARD32" name="plane_mask" />
1912     <list type="CARD32" name="pixels" />
1913   </request>
1914
1915   <enum name="ColorFlag">
1916     <item name="Red">  <bit>0</bit></item>
1917     <item name="Green"><bit>1</bit></item>
1918     <item name="Blue"> <bit>2</bit></item>
1919   </enum>
1920
1921   <struct name="COLORITEM">
1922     <field type="CARD32" name="pixel" />
1923     <field type="CARD16" name="red" />
1924     <field type="CARD16" name="green" />
1925     <field type="CARD16" name="blue" />
1926     <field type="BYTE" name="flags" mask="ColorFlag" />
1927     <pad bytes="1" />
1928   </struct>
1929   
1930   <request name="StoreColors" opcode="89" combine-adjacent="true">
1931     <pad bytes="1" />
1932     <field type="COLORMAP" name="cmap" />
1933     <list type="COLORITEM" name="items" />
1934   </request>
1935
1936   <request name="StoreNamedColor" opcode="90">
1937     <field type="CARD8" name="flags" mask="ColorFlag" />
1938     <field type="COLORMAP" name="cmap" />
1939     <field type="CARD32" name="pixel" />
1940     <field type="CARD16" name="name_len" />
1941     <pad bytes="2" />
1942     <list type="char" name="name">
1943       <fieldref>name_len</fieldref>
1944     </list>
1945   </request>
1946
1947   <struct name="RGB">
1948     <field type="CARD16" name="red" />
1949     <field type="CARD16" name="green" />
1950     <field type="CARD16" name="blue" />
1951     <pad bytes="2" />
1952   </struct>
1953
1954   <request name="QueryColors" opcode="91">
1955     <pad bytes="1" />
1956     <field type="COLORMAP" name="cmap" />
1957     <list type="CARD32" name="pixels" />
1958     <reply>
1959       <pad bytes="1" />
1960       <field type="CARD16" name="colors_len" />
1961       <pad bytes="22" />
1962       <list type="RGB" name="colors">
1963         <fieldref>colors_len</fieldref>
1964       </list>
1965     </reply>
1966   </request>
1967
1968   <request name="LookupColor" opcode="92">
1969     <pad bytes="1" />
1970     <field type="COLORMAP" name="cmap" />
1971     <field type="CARD16" name="name_len" />
1972     <pad bytes="2" />
1973     <list type="char" name="name">
1974       <fieldref>name_len</fieldref>
1975     </list>
1976     <reply>
1977       <pad bytes="1" />
1978       <field type="CARD16" name="exact_red" />
1979       <field type="CARD16" name="exact_green" />
1980       <field type="CARD16" name="exact_blue" />
1981       <field type="CARD16" name="visual_red" />
1982       <field type="CARD16" name="visual_green" />
1983       <field type="CARD16" name="visual_blue" />
1984     </reply>
1985   </request>
1986
1987   <enum name="Pixmap">
1988     <item name="None"> <value>0</value></item>
1989   </enum>
1990
1991   <request name="CreateCursor" opcode="93">
1992     <pad bytes="1" />
1993     <field type="CURSOR" name="cid" />
1994     <field type="PIXMAP" name="source" />
1995     <field type="PIXMAP" name="mask" altenum="Pixmap" />
1996     <field type="CARD16" name="fore_red" />
1997     <field type="CARD16" name="fore_green" />
1998     <field type="CARD16" name="fore_blue" />
1999     <field type="CARD16" name="back_red" />
2000     <field type="CARD16" name="back_green" />
2001     <field type="CARD16" name="back_blue" />
2002     <field type="CARD16" name="x" />
2003     <field type="CARD16" name="y" />
2004   </request>
2005
2006   <enum name="Font">
2007     <item name="None"> <value>0</value></item>
2008   </enum>
2009
2010   <request name="CreateGlyphCursor" opcode="94">
2011     <pad bytes="1" />
2012     <field type="CURSOR" name="cid" />
2013     <field type="FONT" name="source_font" />
2014     <field type="FONT" name="mask_font" altenum="Font" />
2015     <field type="CARD16" name="source_char" />
2016     <field type="CARD16" name="mask_char" />
2017     <field type="CARD16" name="fore_red" />
2018     <field type="CARD16" name="fore_green" />
2019     <field type="CARD16" name="fore_blue" />
2020     <field type="CARD16" name="back_red" />
2021     <field type="CARD16" name="back_green" />
2022     <field type="CARD16" name="back_blue" />
2023   </request>
2024
2025   <request name="FreeCursor" opcode="95">
2026     <pad bytes="1" />
2027     <field type="CURSOR" name="cursor" />
2028   </request>
2029
2030   <request name="RecolorCursor" opcode="96">
2031     <pad bytes="1" />
2032     <field type="CURSOR" name="cursor" />
2033     <field type="CARD16" name="fore_red" />
2034     <field type="CARD16" name="fore_green" />
2035     <field type="CARD16" name="fore_blue" />
2036     <field type="CARD16" name="back_red" />
2037     <field type="CARD16" name="back_green" />
2038     <field type="CARD16" name="back_blue" />
2039   </request>
2040
2041   <enum name="QueryShapeOf">
2042     <item name="LargestCursor"> <value>0</value></item>
2043     <item name="FastestTile">   <value>1</value></item>
2044     <item name="FastestStipple"><value>2</value></item>    
2045   </enum>
2046
2047   <request name="QueryBestSize" opcode="97">
2048     <field type="CARD8" name="class" enum="QueryShapeOf" />
2049     <field type="DRAWABLE" name="drawable" />
2050     <field type="CARD16" name="width" />
2051     <field type="CARD16" name="height" />
2052     <reply>
2053       <pad bytes="1" />
2054       <field type="CARD16" name="width" />
2055       <field type="CARD16" name="height" />
2056     </reply>
2057   </request>
2058
2059   <request name="QueryExtension" opcode="98">
2060     <pad bytes="1" />
2061     <field type="CARD16" name="name_len" />
2062     <pad bytes="2" />
2063     <list type="char" name="name">
2064       <fieldref>name_len</fieldref>
2065     </list>
2066     <reply>
2067       <pad bytes="1" />
2068       <field type="BOOL" name="present" />
2069       <field type="CARD8" name="major_opcode" />
2070       <field type="CARD8" name="first_event" />
2071       <field type="CARD8" name="first_error" />
2072     </reply>
2073   </request>
2074
2075   <request name="ListExtensions" opcode="99">
2076     <reply>
2077       <field type="CARD8" name="names_len" />
2078       <pad bytes="24" />
2079       <list type="STR" name="names">
2080         <fieldref>names_len</fieldref>
2081       </list>
2082     </reply>
2083   </request>
2084
2085   <request name="ChangeKeyboardMapping" opcode="100">
2086     <field type="CARD8" name="keycode_count" />
2087     <field type="KEYCODE" name="first_keycode" />
2088     <field type="CARD8" name="keysyms_per_keycode" />
2089     <list type="KEYSYM" name="keysyms">
2090       <op op="*">
2091         <fieldref>keycode_count</fieldref>
2092         <fieldref>keysyms_per_keycode</fieldref>
2093       </op>
2094     </list>
2095   </request>
2096
2097   <request name="GetKeyboardMapping" opcode="101">
2098     <pad bytes="1" />
2099     <field type="KEYCODE" name="first_keycode" />
2100     <field type="CARD8" name="count" />
2101     <reply>
2102       <field type="BYTE" name="keysyms_per_keycode" />
2103       <pad bytes="24" />
2104       <list type="KEYSYM" name="keysyms">
2105         <fieldref>length</fieldref>
2106       </list>
2107     </reply>
2108   </request>
2109
2110   <enum name="KB">
2111     <item name="KeyClickPercent"><bit>0</bit></item>
2112     <item name="BellPercent">    <bit>1</bit></item>
2113     <item name="BellPitch">      <bit>2</bit></item>
2114     <item name="BellDuration">   <bit>3</bit></item>
2115     <item name="Led">            <bit>4</bit></item>
2116     <item name="LedMode">        <bit>5</bit></item>
2117     <item name="Key">            <bit>6</bit></item>
2118     <item name="AutoRepeatMode"> <bit>7</bit></item>
2119   </enum>
2120
2121   <enum name="LedMode">
2122     <item name="Off"><value>0</value></item>
2123     <item name="On"> <value>1</value></item>
2124   </enum>
2125
2126   <enum name="AutoRepeatMode">
2127     <item name="Off">    <value>0</value></item>
2128     <item name="On">     <value>1</value></item>
2129     <item name="Default"><value>2</value></item>
2130   </enum>
2131
2132   <request name="ChangeKeyboardControl" opcode="102">
2133     <pad bytes="1" />
2134     <valueparam value-mask-type="CARD32"
2135                 value-mask-name="value_mask"
2136                 value-list-name="value_list" />
2137   </request>
2138
2139   <request name="GetKeyboardControl" opcode="103">
2140     <reply>
2141       <field type="BYTE" name="global_auto_repeat" enum="AutoRepeatMode" />
2142       <field type="CARD32" name="led_mask" />
2143       <field type="CARD8" name="key_click_percent" />
2144       <field type="CARD8" name="bell_percent" />
2145       <field type="CARD16" name="bell_pitch" />
2146       <field type="CARD16" name="bell_duration" />
2147       <pad bytes="2" />
2148       <list type="CARD8" name="auto_repeats"><value>32</value></list>
2149     </reply>
2150   </request>
2151
2152   <request name="Bell" opcode="104">
2153     <field type="INT8" name="percent" />
2154   </request>
2155
2156   <request name="ChangePointerControl" opcode="105">
2157     <pad bytes="1" />
2158     <field type="INT16" name="acceleration_numerator" />
2159     <field type="INT16" name="acceleration_denominator" />
2160     <field type="INT16" name="threshold" />
2161     <field type="BOOL" name="do_acceleration" />
2162     <field type="BOOL" name="do_threshold" />
2163   </request>
2164
2165   <request name="GetPointerControl" opcode="106">
2166     <reply>
2167       <pad bytes="1" />
2168       <field type="CARD16" name="acceleration_numerator" />
2169       <field type="CARD16" name="acceleration_denominator" />
2170       <field type="CARD16" name="threshold" />
2171       <pad bytes="18" />
2172     </reply>
2173   </request>
2174
2175   <!-- Screen saver timeout and interval can be set to -1 to restore defaults
2176        and set to 0 to disable the screen saver. -->
2177
2178   <enum name="Blanking">
2179     <item name="NotPreferred"><value>0</value></item>
2180     <item name="Preferred">   <value>1</value></item>
2181     <item name="Default">     <value>2</value></item>
2182   </enum>
2183
2184   <enum name="Exposures">
2185     <item name="NotAllowed"><value>0</value></item>
2186     <item name="Allowed">   <value>1</value></item>
2187     <item name="Default">   <value>2</value></item>
2188   </enum>
2189
2190   <request name="SetScreenSaver" opcode="107">
2191     <pad bytes="1" />
2192     <field type="INT16" name="timeout" />
2193     <field type="INT16" name="interval" />
2194     <field type="CARD8" name="prefer_blanking" enum="Blanking" />
2195     <field type="CARD8" name="allow_exposures" enum="Exposures" />
2196   </request>
2197
2198   <request name="GetScreenSaver" opcode="108">
2199     <reply>
2200       <pad bytes="1" />
2201       <field type="CARD16" name="timeout" />
2202       <field type="CARD16" name="interval" />
2203       <field type="BYTE" name="prefer_blanking" enum="Blanking" />
2204       <field type="BYTE" name="allow_exposures" enum="Exposures" />
2205       <pad bytes="18" />
2206     </reply>
2207   </request>
2208
2209   <enum name="HostMode">
2210     <item name="Insert"><value>0</value></item>
2211     <item name="Delete"><value>1</value></item>
2212   </enum>
2213
2214   <!-- also used and extended for Xau authentication -->
2215   <enum name="Family">
2216     <item name="Internet">         <value>0</value></item>
2217     <item name="DECnet">           <value>1</value></item>
2218     <item name="Chaos">            <value>2</value></item>
2219     <item name="ServerInterpreted"><value>5</value></item>
2220     <item name="Internet6">        <value>6</value></item>
2221   </enum>
2222
2223   <request name="ChangeHosts" opcode="109">
2224     <field type="CARD8" name="mode" enum="HostMode" />
2225     <field type="CARD8" name="family" enum="Family" />
2226     <pad bytes="1" />
2227     <field type="CARD16" name="address_len" />
2228     <list type="char" name="address">
2229       <fieldref>address_len</fieldref>
2230     </list>
2231   </request>
2232
2233   <struct name="HOST">
2234     <field type="CARD8" name="family" enum="Family" />
2235     <pad bytes="1" />
2236     <field type="CARD16" name="address_len" />
2237     <list type="BYTE" name="address">
2238       <fieldref>address_len</fieldref>
2239     </list>
2240   </struct>
2241
2242   <request name="ListHosts" opcode="110">
2243     <reply>
2244       <field type="BYTE" name="mode" enum="AccessControl" />
2245       <field type="CARD16" name="hosts_len" />
2246       <pad bytes="22" />
2247       <list type="HOST" name="hosts">
2248         <fieldref>hosts_len</fieldref>
2249       </list>
2250     </reply>
2251   </request>
2252
2253   <enum name="AccessControl">
2254     <item name="Disable"><value>0</value></item>
2255     <item name="Enable"> <value>1</value></item>
2256   </enum>
2257
2258   <request name="SetAccessControl" opcode="111">
2259     <field type="CARD8" name="mode" enum="AccessControl" />
2260   </request>
2261
2262   <enum name="CloseDown">
2263     <item name="DestroyAll">     <value>0</value></item>
2264     <item name="RetainPermanent"><value>1</value></item>
2265     <item name="RetainTemporary"><value>2</value></item>
2266   </enum>
2267
2268   <request name="SetCloseDownMode" opcode="112">
2269     <field type="CARD8" name="mode" enum="CloseDown" />
2270   </request>
2271
2272   <enum name="Kill">
2273     <item name="AllTemporary"><value>0</value></item>
2274   </enum>
2275
2276   <request name="KillClient" opcode="113">
2277     <pad bytes="1" />
2278     <field type="CARD32" name="resource" altenum="Kill" />
2279   </request>
2280
2281   <request name="RotateProperties" opcode="114">
2282     <pad bytes="1" />
2283     <field type="WINDOW" name="window" />
2284     <field type="CARD16" name="atoms_len" />
2285     <field type="INT16" name="delta" />
2286     <list type="ATOM" name="atoms">
2287       <fieldref>atoms_len</fieldref>
2288     </list>
2289   </request>
2290
2291   <enum name="ScreenSaver">
2292     <item name="Reset"> <value>0</value></item>
2293     <item name="Active"><value>1</value></item>
2294   </enum>
2295
2296   <request name="ForceScreenSaver" opcode="115">
2297     <field type="CARD8" name="mode" enum="ScreenSaver" />
2298   </request>
2299
2300   <!-- Reply from SetPointerMapping or SetModifierMapping -->
2301   <enum name="MappingStatus">
2302     <item name="Success"><value>0</value></item>
2303     <item name="Busy">   <value>1</value></item>
2304     <item name="Failure"><value>2</value></item>
2305   </enum>
2306
2307   <request name="SetPointerMapping" opcode="116">
2308     <field type="CARD8" name="map_len" />
2309     <list type="CARD8" name="map">
2310       <fieldref>map_len</fieldref>
2311     </list>
2312     <reply>
2313       <field type="BYTE" name="status" enum="MappingStatus" />
2314     </reply>
2315   </request>
2316
2317   <request name="GetPointerMapping" opcode="117">
2318     <reply>
2319       <field type="CARD8" name="map_len" />
2320       <pad bytes="24" />
2321       <list type="CARD8" name="map">
2322         <fieldref>map_len</fieldref>
2323       </list>
2324     </reply>
2325   </request>
2326   
2327   <enum name="MapIndex">
2328     <item name="Shift">  <value>0</value></item>
2329     <item name="Lock">   <value>1</value></item>
2330     <item name="Control"><value>2</value></item>
2331     <item name="1">      <value>3</value></item>
2332     <item name="2">      <value>4</value></item>
2333     <item name="3">      <value>5</value></item>
2334     <item name="4">      <value>6</value></item>
2335     <item name="5">      <value>7</value></item>
2336   </enum>
2337
2338   <request name="SetModifierMapping" opcode="118">
2339     <field type="CARD8" name="keycodes_per_modifier" />
2340     <list type="KEYCODE" name="keycodes">
2341       <op op="*">
2342         <fieldref>keycodes_per_modifier</fieldref>
2343         <value>8</value>
2344       </op>
2345     </list>
2346     <reply>
2347       <field type="BYTE" name="status" enum="MappingStatus" />
2348     </reply>
2349   </request>
2350
2351   <request name="GetModifierMapping" opcode="119">
2352     <reply>
2353       <field type="CARD8" name="keycodes_per_modifier" />
2354       <pad bytes="24" />
2355       <list type="KEYCODE" name="keycodes">
2356         <op op="*">
2357           <fieldref>keycodes_per_modifier</fieldref>
2358           <value>8</value>
2359         </op>
2360       </list>
2361     </reply>
2362   </request>
2363
2364   <!--
2365     FIXME: NoOperation should allow specifying payload length
2366     but geez, malloc()ing a 262140 byte buffer just so I have something
2367     to hand to write(2) seems silly...!
2368   -->
2369   <request name="NoOperation" opcode="127" />
2370
2371 </xcb>