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