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