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