7b6f4d5154c02ef52ab350d2e976482b3abab1b1
[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 event and error types -->
30   
31   <enum name="ModMask">
32     <item name="Shift">  <bit>0</bit></item>
33     <item name="Lock">   <bit>1</bit></item>
34     <item name="Control"><bit>2</bit></item>
35     <item name="1">      <bit>3</bit></item>
36     <item name="2">      <bit>4</bit></item>
37     <item name="3">      <bit>5</bit></item>
38     <item name="4">      <bit>6</bit></item>
39     <item name="5">      <bit>7</bit></item>
40   </enum>
41
42   <event name="KeyPress" number="2">
43     <field type="KEYCODE" name="detail" />
44     <field type="TIMESTAMP" name="time" />
45     <field type="WINDOW" name="root" />
46     <field type="WINDOW" name="event" />
47     <field type="WINDOW" name="child" />
48     <field type="INT16" name="root_x" />
49     <field type="INT16" name="root_y" />
50     <field type="INT16" name="event_x" />
51     <field type="INT16" name="event_y" />
52     <field type="CARD16" name="state" />
53     <field type="BOOL" name="same_screen" />
54   </event>
55
56   <eventcopy name="KeyRelease" number="3" ref="KeyPress" />
57
58   <enum name="ButtonMask">
59     <item name="1">      <bit>8</bit></item>
60     <item name="2">      <bit>9</bit></item>
61     <item name="3">      <bit>10</bit></item>
62     <item name="4">      <bit>11</bit></item>
63     <item name="5">      <bit>12</bit></item>
64     <item name="Any">    <bit>15</bit></item>
65   </enum>
66
67   <event name="ButtonPress" number="4">
68     <field type="BUTTON" name="detail" />
69     <field type="TIMESTAMP" name="time" />
70     <field type="WINDOW" name="root" />
71     <field type="WINDOW" name="event" />
72     <field type="WINDOW" name="child" />
73     <field type="INT16" name="root_x" />
74     <field type="INT16" name="root_y" />
75     <field type="INT16" name="event_x" />
76     <field type="INT16" name="event_y" />
77     <field type="CARD16" name="state" />
78     <field type="BOOL" name="same_screen" />
79   </event>
80
81   <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
82
83   <event name="MotionNotify" number="6">
84     <field type="BYTE" name="detail" />
85     <field type="TIMESTAMP" name="time" />
86     <field type="WINDOW" name="root" />
87     <field type="WINDOW" name="event" />
88     <field type="WINDOW" name="child" />
89     <field type="INT16" name="root_x" />
90     <field type="INT16" name="root_y" />
91     <field type="INT16" name="event_x" />
92     <field type="INT16" name="event_y" />
93     <field type="CARD16" name="state" />
94     <field type="BOOL" name="same_screen" />
95   </event>
96
97   <event name="EnterNotify" number="7">
98     <field type="BYTE" name="detail" />
99     <field type="TIMESTAMP" name="time" />
100     <field type="WINDOW" name="root" />
101     <field type="WINDOW" name="event" />
102     <field type="WINDOW" name="child" />
103     <field type="INT16" name="root_x" />
104     <field type="INT16" name="root_y" />
105     <field type="INT16" name="event_x" />
106     <field type="INT16" name="event_y" />
107     <field type="CARD16" name="state" />
108     <field type="BYTE" name="mode" />
109     <field type="BYTE" name="same_screen_focus" />
110   </event>
111
112   <eventcopy name="LeaveNotify" number="8" ref="EnterNotify" />
113
114   <event name="FocusIn" number="9">
115     <field type="BYTE" name="detail" />
116     <field type="WINDOW" name="event" />
117     <field type="BYTE" name="mode" />
118   </event>
119
120   <eventcopy name="FocusOut" number="10" ref="FocusIn" />
121
122   <event name="KeymapNotify" number="11" no-sequence-number="true">
123     <list type="CARD8" name="keys"><value>31</value></list>
124   </event>
125
126   <event name="Expose" number="12">
127     <pad bytes="1" />
128     <field type="WINDOW" name="window" />
129     <field type="CARD16" name="x" />
130     <field type="CARD16" name="y" />
131     <field type="CARD16" name="width" />
132     <field type="CARD16" name="height" />
133     <field type="CARD16" name="count" />
134   </event>
135
136   <event name="GraphicsExposure" number="13">
137     <pad bytes="1" />
138     <field type="DRAWABLE" name="drawable" />
139     <field type="CARD16" name="x" />
140     <field type="CARD16" name="y" />
141     <field type="CARD16" name="width" />
142     <field type="CARD16" name="height" />
143     <field type="CARD16" name="minor_opcode" />
144     <field type="CARD16" name="count" />
145     <field type="CARD8" name="major_opcode" />
146   </event>
147
148   <event name="NoExposure" number="14">
149     <pad bytes="1" />
150     <field type="DRAWABLE" name="drawable" />
151     <field type="CARD16" name="minor_opcode" />
152     <field type="CARD8" name="major_opcode" />
153   </event>
154
155   <event name="VisibilityNotify" number="15">
156     <pad bytes="1" />
157     <field type="WINDOW" name="window" />
158     <field type="BYTE" name="state" />
159   </event>
160
161   <event name="CreateNotify" number="16">
162     <pad bytes="1" />
163     <field type="WINDOW" name="parent" />
164     <field type="WINDOW" name="window" />
165     <field type="INT16" name="x" />
166     <field type="INT16" name="y" />
167     <field type="CARD16" name="width" />
168     <field type="CARD16" name="height" />
169     <field type="CARD16" name="border_width" />
170     <field type="BOOL" name="override_redirect" />
171   </event>
172
173   <event name="DestroyNotify" number="17">
174     <pad bytes="1" />
175     <field type="WINDOW" name="event" />
176     <field type="WINDOW" name="window" />
177   </event>
178
179   <event name="UnmapNotify" number="18">
180     <pad bytes="1" />
181     <field type="WINDOW" name="event" />
182     <field type="WINDOW" name="window" />
183     <field type="BOOL" name="from_configure" />
184   </event>
185
186   <event name="MapNotify" number="19">
187     <pad bytes="1" />
188     <field type="WINDOW" name="event" />
189     <field type="WINDOW" name="window" />
190     <field type="BOOL" name="override_redirect" />
191   </event>
192
193   <event name="MapRequest" number="20">
194     <pad bytes="1" />
195     <field type="WINDOW" name="parent" />
196     <field type="WINDOW" name="window" />
197   </event>
198
199   <event name="ReparentNotify" number="21">
200     <pad bytes="1" />
201     <field type="WINDOW" name="event" />
202     <field type="WINDOW" name="window" />
203     <field type="WINDOW" name="parent" />
204     <field type="INT16" name="x" />
205     <field type="INT16" name="y" />
206     <field type="BOOL" name="override_redirect" />
207   </event>
208
209   <event name="ConfigureNotify" number="22">
210     <pad bytes="1" />
211     <field type="WINDOW" name="event" />
212     <field type="WINDOW" name="window" />
213     <field type="WINDOW" name="above_sibling" />
214     <field type="INT16" name="x" />
215     <field type="INT16" name="y" />
216     <field type="CARD16" name="width" />
217     <field type="CARD16" name="height" />
218     <field type="CARD16" name="border_width" />
219     <field type="BOOL" name="override_redirect" />
220   </event>
221
222   <event name="ConfigureRequest" number="23">
223     <field type="BYTE" name="stack_mode" />
224     <field type="WINDOW" name="parent" />
225     <field type="WINDOW" name="window" />
226     <field type="WINDOW" name="sibling" />
227     <field type="INT16" name="x" />
228     <field type="INT16" name="y" />
229     <field type="CARD16" name="width" />
230     <field type="CARD16" name="height" />
231     <field type="CARD16" name="border_width" />
232     <field type="CARD16" name="value_mask" />
233   </event>
234
235   <event name="GravityNotify" number="24">
236     <pad bytes="1" />
237     <field type="WINDOW" name="event" />
238     <field type="WINDOW" name="window" />
239     <field type="INT16" name="x" />
240     <field type="INT16" name="y" />
241   </event>
242
243   <event name="ResizeRequest" number="25">
244     <pad bytes="1" />
245     <field type="WINDOW" name="window" />
246     <field type="CARD16" name="width" />
247     <field type="CARD16" name="height" />
248   </event>
249
250   <event name="CirculateNotify" number="26">
251     <pad bytes="1" />
252     <field type="WINDOW" name="event" />
253     <field type="WINDOW" name="window" />
254     <pad bytes="4" />
255     <field type="BYTE" name="place" />
256   </event>
257
258   <eventcopy name="CirculateRequest" number="27" ref="CirculateNotify" />
259
260   <enum name="Property">
261     <item name="NewValue"><value>0</value></item>
262     <item name="Delete">  <value>1</value></item>
263   </enum>
264
265   <event name="PropertyNotify" number="28">
266     <pad bytes="1" />
267     <field type="WINDOW" name="window" />
268     <field type="ATOM" name="atom" />
269     <field type="TIMESTAMP" name="time" />
270     <field type="BYTE" name="state" />
271   </event>
272
273   <event name="SelectionClear" number="29">
274     <pad bytes="1" />
275     <field type="TIMESTAMP" name="time" />
276     <field type="WINDOW" name="owner" />
277     <field type="ATOM" name="selection" />
278   </event>
279
280   <event name="SelectionRequest" number="30">
281     <pad bytes="1" />
282     <field type="TIMESTAMP" name="time" />
283     <field type="WINDOW" name="owner" />
284     <field type="WINDOW" name="requestor" />
285     <field type="ATOM" name="selection" />
286     <field type="ATOM" name="target" />
287     <field type="ATOM" name="property" />
288   </event>
289
290   <event name="SelectionNotify" number="31">
291     <pad bytes="1" />
292     <field type="TIMESTAMP" name="time" />
293     <field type="WINDOW" name="requestor" />
294     <field type="ATOM" name="selection" />
295     <field type="ATOM" name="target" />
296     <field type="ATOM" name="property" />
297   </event>
298
299   <event name="ColormapNotify" number="32">
300     <pad bytes="1" />
301     <field type="WINDOW" name="window" />
302     <field type="COLORMAP" name="colormap" />
303     <field type="BOOL" name="new" />
304     <field type="BYTE" name="state" />
305   </event>
306
307   <union name="ClientMessageData">
308     <!-- The format member of the ClientMessage event determines which array
309          to use. -->
310     <list type="CARD8"  name="data8" ><value>20</value></list> <!--  8 -->
311     <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
312     <list type="CARD32" name="data32"><value>5</value></list>  <!-- 32 -->
313   </union>
314
315   <event name="ClientMessage" number="33">
316     <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
317     <field type="WINDOW" name="window" />
318     <field type="ATOM" name="type" />
319     <field type="ClientMessageData" name="data" />
320   </event>
321
322   <enum name="Mapping">
323     <item name="Modifier"><value>0</value></item>
324     <item name="Keyboard"><value>1</value></item>
325     <item name="Pointer"> <value>2</value></item>
326   </enum>
327
328   <event name="MappingNotify" number="34">
329     <pad bytes="1" />
330     <field type="BYTE" name="request" />
331     <field type="KEYCODE" name="first_keycode" />
332     <field type="CARD8" name="count" />
333   </event>
334
335   <error name="Request" number="1">
336     <field type="CARD32" name="bad_value" />
337     <field type="CARD16" name="minor_opcode" />
338     <field type="CARD8" name="major_opcode" />
339   </error>
340
341   <error name="Value" number="2">
342     <field type="CARD32" name="bad_value" />
343     <field type="CARD16" name="minor_opcode" />
344     <field type="CARD8" name="major_opcode" />
345   </error>
346
347   <errorcopy name="Window" number="3" ref="Value" />
348   <errorcopy name="Pixmap" number="4" ref="Value" />
349   <errorcopy name="Atom" number="5" ref="Value" />
350   <errorcopy name="Cursor" number="6" ref="Value" />
351   <errorcopy name="Font" number="7" ref="Value" />
352   <errorcopy name="Match" number="8" ref="Request" />
353   <errorcopy name="Drawable" number="9" ref="Value" />
354   <errorcopy name="Access" number="10" ref="Request" />
355   <errorcopy name="Alloc" number="11" ref="Request" />
356   <errorcopy name="Colormap" number="12" ref="Value" />
357   <errorcopy name="GContext" number="13" ref="Value" />
358   <errorcopy name="IDChoice" number="14" ref="Value" />
359   <errorcopy name="Name" number="15" ref="Request" />
360   <errorcopy name="Length" number="16" ref="Request" />
361   <errorcopy name="Implementation" number="17" ref="Request" />
362
363   <!-- The requests, in major number order. -->
364   <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
365
366   <!-- FIXME: The ListFontsWithInfo request is not supported by XCB. -->
367
368   <enum name="WindowClass">
369     <item name="CopyFromParent"><value>0</value></item>
370     <item name="InputOutput">   <value>1</value></item>
371     <item name="InputOnly">     <value>2</value></item>
372   </enum>
373
374   <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
375   <enum name="CW">
376     <item name="BackPixmap">      <bit>0</bit></item>
377     <item name="BackPixel">       <bit>1</bit></item>
378     <item name="BorderPixmap">    <bit>2</bit></item>
379     <item name="BorderPixel">     <bit>3</bit></item>
380     <item name="BitGravity">      <bit>4</bit></item>
381     <item name="WinGravity">      <bit>5</bit></item>
382     <item name="BackingStore">    <bit>6</bit></item>
383     <item name="BackingPlanes">   <bit>7</bit></item>
384     <item name="BackingPixel">    <bit>8</bit></item>
385     <item name="OverrideRedirect"><bit>9</bit></item>
386     <item name="SaveUnder">       <bit>10</bit></item>
387     <item name="EventMask">       <bit>11</bit></item>
388     <item name="DontPropagate">   <bit>12</bit></item>
389     <item name="Colormap">        <bit>13</bit></item>
390     <item name="Cursor">          <bit>14</bit></item>
391   </enum>
392   
393   <enum name="BackingStore">
394     <item name="NotUseful"> <value>0</value></item>
395     <item name="WhenMapped"><value>1</value></item>
396     <item name="Always">    <value>2</value></item>
397   </enum>
398
399   <enum name="EventMask">
400     <item name="NoEvent">           <value>0</value></item>
401     <item name="KeyPress">            <bit>0</bit></item>
402     <item name="KeyRelease">          <bit>1</bit></item>
403     <item name="ButtonPress">         <bit>2</bit></item>
404     <item name="ButtonRelease">       <bit>3</bit></item>
405     <item name="EnterWindow">         <bit>4</bit></item>
406     <item name="LeaveWindow">         <bit>5</bit></item>
407     <item name="PointerMotion">       <bit>6</bit></item>
408     <item name="PointerMotionHint">   <bit>7</bit></item>
409     <item name="Button1Motion">       <bit>8</bit></item>
410     <item name="Button2Motion">       <bit>9</bit></item>
411     <item name="Button3Motion">       <bit>10</bit></item>
412     <item name="Button4Motion">       <bit>11</bit></item>
413     <item name="Button5Motion">       <bit>12</bit></item>
414     <item name="ButtonMotion">        <bit>13</bit></item>
415     <item name="KeymapState">         <bit>14</bit></item>
416     <item name="Exposure">            <bit>15</bit></item>
417     <item name="VisibilityChange">    <bit>16</bit></item>
418     <item name="StructureNotify">     <bit>17</bit></item>
419     <item name="ResizeRedirect">      <bit>18</bit></item>
420     <item name="SubstructureNotify">  <bit>19</bit></item>
421     <item name="SubstructureRedirect"><bit>20</bit></item>
422     <item name="FocusChange">         <bit>21</bit></item>
423     <item name="PropertyChange">      <bit>22</bit></item>
424     <item name="ColorMapChange">      <bit>23</bit></item>
425     <item name="OwnerGrabButton">     <bit>24</bit></item>
426   </enum>
427
428   <request name="CreateWindow" opcode="1">
429     <field type="CARD8" name="depth" />
430     <field type="WINDOW" name="wid" />
431     <field type="WINDOW" name="parent" />
432     <field type="INT16" name="x" />
433     <field type="INT16" name="y" />
434     <field type="CARD16" name="width" />
435     <field type="CARD16" name="height" />
436     <field type="CARD16" name="border_width" />
437     <field type="CARD16" name="class" />
438     <field type="VISUALID" name="visual" />
439     <valueparam value-mask-type="CARD32"
440                 value-mask-name="value_mask"
441                 value-list-name="value_list" />
442   </request>
443
444   <request name="ChangeWindowAttributes" opcode="2">
445     <pad bytes="1" />
446     <field type="WINDOW" name="window" />
447     <valueparam value-mask-type="CARD32"
448                 value-mask-name="value_mask"
449                 value-list-name="value_list" />
450   </request>
451   
452   <enum name="MapState">
453     <item name="Unmapped">  <value>0</value></item>
454     <item name="Unviewable"><value>1</value></item>
455     <item name="Viewable">  <value>2</value></item>
456   </enum>
457
458   <request name="GetWindowAttributes" opcode="3">
459     <pad bytes="1" />
460     <field type="WINDOW" name="window" />
461     <reply>
462       <field type="CARD8" name="backing_store" />
463       <field type="VISUALID" name="visual" />
464       <field type="CARD16" name="class" />
465       <field type="CARD8" name="bit_gravity" />
466       <field type="CARD8" name="win_gravity" />
467       <field type="CARD32" name="backing_planes" />
468       <field type="CARD32" name="backing_pixel" />
469       <field type="BOOL" name="save_under" />
470       <field type="BOOL" name="map_is_installed" />
471       <field type="CARD8" name="map_state" />
472       <field type="BOOL" name="override_redirect" />
473       <field type="COLORMAP" name="colormap" />
474       <field type="CARD32" name="all_event_masks" />
475       <field type="CARD32" name="your_event_mask" />
476       <field type="CARD16" name="do_not_propagate_mask" />
477     </reply>
478   </request>
479
480   <request name="DestroyWindow" opcode="4">
481     <pad bytes="1" />
482     <field type="WINDOW" name="window" />
483   </request>
484
485   <request name="DestroySubwindows" opcode="5">
486     <pad bytes="1" />
487     <field type="WINDOW" name="window" />
488   </request>
489   
490   <enum name="SetMode">
491     <item name="Insert"><value>0</value></item>
492     <item name="Delete"><value>1</value></item>
493   </enum>
494
495   <request name="ChangeSaveSet" opcode="6">
496     <field type="BYTE" name="mode" />
497     <field type="WINDOW" name="window" />
498   </request>
499
500   <request name="ReparentWindow" opcode="7">
501     <pad bytes="1" />
502     <field type="WINDOW" name="window" />
503     <field type="WINDOW" name="parent" />
504     <field type="INT16" name="x" />
505     <field type="INT16" name="y" />
506   </request>
507
508   <request name="MapWindow" opcode="8">
509     <pad bytes="1" />
510     <field type="WINDOW" name="window" />
511   </request>
512
513   <request name="MapSubwindows" opcode="9">
514     <pad bytes="1" />
515     <field type="WINDOW" name="window" />
516   </request>
517
518   <request name="UnmapWindow" opcode="10">
519     <pad bytes="1" />
520     <field type="WINDOW" name="window" />
521   </request>
522
523   <request name="UnmapSubwindows" opcode="11">
524     <pad bytes="1" />
525     <field type="WINDOW" name="window" />
526   </request>
527   
528   <enum name="ConfigWindow">
529     <item name="X">          <bit>0</bit></item>
530     <item name="Y">          <bit>1</bit></item>
531     <item name="Width">      <bit>2</bit></item>
532     <item name="Height">     <bit>3</bit></item>
533     <item name="BorderWidth"><bit>4</bit></item>
534     <item name="Sibling">    <bit>5</bit></item>
535     <item name="StackMode">  <bit>6</bit></item>
536   </enum>
537
538   <request name="ConfigureWindow" opcode="12">
539     <pad bytes="1" />
540     <field type="WINDOW" name="window" />
541     <valueparam value-mask-type="CARD16"
542                 value-mask-name="value_mask"
543                 value-list-name="value_list" />
544   </request>
545
546   <request name="CirculateWindow" opcode="13">
547     <field type="CARD8" name="direction" />
548     <field type="WINDOW" name="window" />
549   </request>
550
551   <request name="GetGeometry" opcode="14">
552     <pad bytes="1" />
553     <field type="DRAWABLE" name="drawable" />
554     <reply>
555       <field type="CARD8" name="depth" />
556       <field type="WINDOW" name="root" />
557       <field type="INT16" name="x" />
558       <field type="INT16" name="y" />
559       <field type="CARD16" name="width" />
560       <field type="CARD16" name="height" />
561       <field type="CARD16" name="border_width" />
562     </reply>
563   </request>
564
565   <request name="QueryTree" opcode="15">
566     <pad bytes="1" />
567     <field type="WINDOW" name="window" />
568     <reply>
569       <pad bytes="1" />
570       <field type="WINDOW" name="root" />
571       <field type="WINDOW" name="parent" />
572       <field type="CARD16" name="children_len" />
573       <pad bytes="14" />
574       <list type="WINDOW" name="children">
575         <fieldref>children_len</fieldref>
576       </list>
577     </reply>
578   </request>
579
580   <request name="InternAtom" opcode="16">
581     <field type="BOOL" name="only_if_exists" />
582     <field type="CARD16" name="name_len" />
583     <pad bytes="2" />
584     <list type="char" name="name">
585       <fieldref>name_len</fieldref>
586     </list>
587     <reply>
588       <pad bytes="1" />
589       <field type="ATOM" name="atom" />
590     </reply>
591   </request>
592
593   <request name="GetAtomName" opcode="17">
594     <pad bytes="1" />
595     <field type="ATOM" name="atom" />
596     <reply>
597       <pad bytes="1" />
598       <field type="CARD16" name="name_len" />
599       <pad bytes="22" />
600       <list type="CARD8" name="name">
601         <fieldref>name_len</fieldref>
602       </list>
603     </reply>
604   </request>
605   
606   <enum name="PropMode">
607     <item name="Replace"><value>0</value></item>
608     <item name="Prepend"><value>1</value></item>
609     <item name="Append"> <value>2</value></item>
610   </enum>
611
612   <request name="ChangeProperty" opcode="18">
613     <field type="CARD8" name="mode" />
614     <field type="WINDOW" name="window" />
615     <field type="ATOM" name="property" />
616     <field type="ATOM" name="type" />
617     <field type="CARD8" name="format" />
618     <pad bytes="3" />
619     <field type="CARD32" name="data_len" />
620     <list type="void" name="data">
621       <op op="/">
622         <op op="*">
623           <fieldref>data_len</fieldref>
624           <fieldref>format</fieldref>
625         </op>
626         <value>8</value>
627       </op>
628     </list>
629   </request>
630
631   <request name="DeleteProperty" opcode="19">
632     <pad bytes="1" />
633     <field type="WINDOW" name="window" />
634     <field type="ATOM" name="property" />
635   </request>
636   
637   <enum name="GetPropertyType">
638     <item name="Any"><value>0</value></item>
639   </enum>
640
641   <request name="GetProperty" opcode="20">
642     <field type="BOOL" name="delete" />
643     <field type="WINDOW" name="window" />
644     <field type="ATOM" name="property" />
645     <field type="ATOM" name="type" />
646     <field type="CARD32" name="long_offset" />
647     <field type="CARD32" name="long_length" />
648     <reply>
649       <field type="CARD8" name="format" />
650       <field type="ATOM" name="type" />
651       <field type="CARD32" name="bytes_after" />
652       <field type="CARD32" name="value_len" />
653       <pad bytes="12" />
654       <list type="void" name="value">
655         <fieldref>value_len</fieldref>
656       </list>
657     </reply>
658   </request>
659
660   <request name="ListProperties" opcode="21">
661     <pad bytes="1" />
662     <field type="WINDOW" name="window" />
663     <reply>
664       <pad bytes="1" />
665       <field type="CARD16" name="atoms_len" />
666       <pad bytes="22" />
667       <list type="ATOM" name="atoms">
668         <fieldref>atoms_len</fieldref>
669       </list>
670     </reply>
671   </request>
672
673   <request name="SetSelectionOwner" opcode="22">
674     <pad bytes="1" />
675     <field type="WINDOW" name="owner" />
676     <field type="ATOM" name="selection" />
677     <field type="TIMESTAMP" name="time" />
678   </request>
679
680   <request name="GetSelectionOwner" opcode="23">
681     <pad bytes="1" />
682     <field type="ATOM" name="selection" />
683     <reply>
684       <pad bytes="1" />
685       <field type="WINDOW" name="owner" />
686     </reply>
687   </request>
688
689   <request name="ConvertSelection" opcode="24">
690     <pad bytes="1" />
691     <field type="WINDOW" name="requestor" />
692     <field type="ATOM" name="selection" />
693     <field type="ATOM" name="target" />
694     <field type="ATOM" name="property" />
695     <field type="TIMESTAMP" name="time" />
696   </request>
697
698   <request name="SendEvent" opcode="25">
699     <field type="BOOL" name="propagate" />
700     <field type="WINDOW" name="destination" />
701     <field type="CARD32" name="event_mask" />
702     <list type="char" name="event"><value>32</value></list>
703   </request>
704
705   <request name="GrabPointer" opcode="26">
706     <field type="BOOL" name="owner_events" />
707     <field type="WINDOW" name="grab_window" />
708     <field type="CARD16" name="event_mask" />
709     <field type="BYTE" name="pointer_mode" />
710     <field type="BYTE" name="keyboard_mode" />
711     <field type="WINDOW" name="confine_to" />
712     <field type="CURSOR" name="cursor" />
713     <field type="TIMESTAMP" name="time" />
714     <reply>
715       <field type="BYTE" name="status" />
716     </reply>
717   </request>
718
719   <request name="UngrabPointer" opcode="27">
720     <pad bytes="1" />
721     <field type="TIMESTAMP" name="time" />
722   </request>
723
724   <enum name="Button">
725      <item name="Any"><value>0</value></item>
726      <item name="1">  <value>1</value></item>
727      <item name="2">  <value>2</value></item>
728      <item name="3">  <value>3</value></item>
729      <item name="4">  <value>4</value></item>
730      <item name="5">  <value>5</value></item>
731   </enum>
732
733   <request name="GrabButton" opcode="28">
734     <field type="BOOL" name="owner_events" />
735     <field type="WINDOW" name="grab_window" />
736     <field type="CARD16" name="event_mask" />
737     <field type="CARD8" name="pointer_mode" />
738     <field type="CARD8" name="keyboard_mode" />
739     <field type="WINDOW" name="confine_to" />
740     <field type="CURSOR" name="cursor" />
741     <field type="CARD8" name="button" />
742     <pad bytes="1" />
743     <field type="CARD16" name="modifiers" />
744   </request>
745
746   <request name="UngrabButton" opcode="29">
747     <field type="CARD8" name="button" />
748     <field type="WINDOW" name="grab_window" />
749     <field type="CARD16" name="modifiers" />
750     <pad bytes="2" />
751   </request>
752
753   <request name="ChangeActivePointerGrab" opcode="30">
754     <pad bytes="1" />
755     <field type="CURSOR" name="cursor" />
756     <field type="TIMESTAMP" name="time" />
757     <field type="CARD16" name="event_mask" />
758   </request>
759
760   <request name="GrabKeyboard" opcode="31">
761     <field type="BOOL" name="owner_events" />
762     <field type="WINDOW" name="grab_window" />
763     <field type="TIMESTAMP" name="time" />
764     <field type="BYTE" name="pointer_mode" />
765     <field type="BYTE" name="keyboard_mode" />
766     <reply>
767       <field type="BYTE" name="status" />
768     </reply>
769   </request>
770
771   <request name="UngrabKeyboard" opcode="32">
772     <pad bytes="1" />
773     <field type="TIMESTAMP" name="time" />
774   </request>
775
776   <request name="GrabKey" opcode="33">
777     <field type="BOOL" name="owner_events" />
778     <field type="WINDOW" name="grab_window" />
779     <field type="CARD16" name="modifiers" />
780     <field type="KEYCODE" name="key" />
781     <field type="CARD8" name="pointer_mode" />
782     <field type="CARD8" name="keyboard_mode" />
783   </request>
784
785   <request name="UngrabKey" opcode="34">
786     <field type="CARD8" name="key" />
787     <field type="WINDOW" name="grab_window" />
788     <field type="CARD16" name="modifiers" />
789   </request>
790
791   <request name="AllowEvents" opcode="35">
792     <field type="CARD8" name="mode" />
793     <field type="TIMESTAMP" name="time" />
794   </request>
795
796   <request name="GrabServer" opcode="36" />
797
798   <request name="UngrabServer" opcode="37" />
799
800   <request name="QueryPointer" opcode="38">
801     <pad bytes="1" />
802     <field type="WINDOW" name="window" />
803     <reply>
804       <field type="BOOL" name="same_screen" />
805       <field type="WINDOW" name="root" />
806       <field type="WINDOW" name="child" />
807       <field type="INT16" name="root_x" />
808       <field type="INT16" name="root_y" />
809       <field type="INT16" name="win_x" />
810       <field type="INT16" name="win_y" />
811       <field type="CARD16" name="mask" />
812     </reply>
813   </request>
814
815   <struct name="TIMECOORD">
816     <field type="TIMESTAMP" name="time" />
817     <field type="INT16" name="x" />
818     <field type="INT16" name="y" />
819   </struct>
820
821   <request name="GetMotionEvents" opcode="39">
822     <pad bytes="1" />
823     <field type="WINDOW" name="window" />
824     <field type="TIMESTAMP" name="start" />
825     <field type="TIMESTAMP" name="stop" />
826     <reply>
827       <pad bytes="1" />
828       <field type="CARD32" name="events_len" />
829       <pad bytes="20" />
830       <list type="TIMECOORD" name="events">
831         <fieldref>events_len</fieldref>
832       </list>
833     </reply>
834   </request>
835
836   <request name="TranslateCoordinates" opcode="40">
837     <pad bytes="1" />
838     <field type="WINDOW" name="src_window" />
839     <field type="WINDOW" name="dst_window" />
840     <field type="INT16" name="src_x" />
841     <field type="INT16" name="src_y" />
842     <reply>
843       <field type="BOOL" name="same_screen" />
844       <field type="WINDOW" name="child" />
845       <field type="CARD16" name="dst_x" />
846       <field type="CARD16" name="dst_y" />
847     </reply>
848   </request>
849
850   <request name="WarpPointer" opcode="41">
851     <pad bytes="1" />
852     <field type="WINDOW" name="src_window" />
853     <field type="WINDOW" name="dst_window" />
854     <field type="INT16" name="src_x" />
855     <field type="INT16" name="src_y" />
856     <field type="CARD16" name="src_width" />
857     <field type="CARD16" name="src_height" />
858     <field type="INT16" name="dst_x" />
859     <field type="INT16" name="dst_y" />
860   </request>
861
862   <request name="SetInputFocus" opcode="42">
863     <field type="CARD8" name="revert_to" />
864     <field type="WINDOW" name="focus" />
865     <field type="TIMESTAMP" name="time" />
866   </request>
867
868   <request name="GetInputFocus" opcode="43">
869     <reply>
870       <field type="CARD8" name="revert_to" />
871       <field type="WINDOW" name="focus" />
872     </reply>
873   </request>
874
875   <request name="QueryKeymap" opcode="44">
876     <reply>
877       <pad bytes="1" />
878       <list type="CARD8" name="keys"><value>32</value></list>
879     </reply>
880   </request>
881
882   <request name="OpenFont" opcode="45">
883     <pad bytes="1" />
884     <field type="FONT" name="fid" />
885     <field type="CARD16" name="name_len" />
886     <list type="char" name="name">
887       <fieldref>name_len</fieldref>
888     </list>
889   </request>
890
891   <request name="CloseFont" opcode="46">
892     <pad bytes="1" />
893     <field type="FONT" name="font" />
894   </request>
895
896   <struct name="FONTPROP">
897     <field type="ATOM" name="name" />
898     <field type="CARD32" name="value" />
899   </struct>
900
901   <struct name="CHARINFO">
902     <field type="INT16" name="left_side_bearing" />
903     <field type="INT16" name="right_side_bearing" />
904     <field type="INT16" name="character_width" />
905     <field type="INT16" name="ascent" />
906     <field type="INT16" name="descent" />
907     <field type="CARD16" name="attributes" />
908   </struct>
909
910   <request name="QueryFont" opcode="47">
911     <pad bytes="1" />
912     <field type="FONTABLE" name="font" />
913     <reply>
914       <pad bytes="1" />
915       <field type="CHARINFO" name="min_bounds" />
916       <pad bytes="4" />
917       <field type="CHARINFO" name="max_bounds" />
918       <pad bytes="4" />
919       <field type="CARD16" name="min_char_or_byte2" />
920       <field type="CARD16" name="max_char_or_byte2" />
921       <field type="CARD16" name="default_char" />
922       <field type="CARD16" name="properties_len" />
923       <field type="BYTE" name="draw_direction" />
924       <field type="CARD8" name="min_byte1" />
925       <field type="CARD8" name="max_byte1" />
926       <field type="BOOL" name="all_chars_exist" />
927       <field type="INT16" name="font_ascent" />
928       <field type="INT16" name="font_descent" />
929       <field type="CARD32" name="char_infos_len" />
930       <list type="FONTPROP" name="properties">
931         <fieldref>properties_len</fieldref>
932       </list>
933       <list type="CHARINFO" name="char_infos">
934         <fieldref>char_infos_len</fieldref>
935       </list>
936     </reply>
937   </request>
938
939   <request name="QueryTextExtents" opcode="48">
940     <exprfield type="BOOL" name="odd_length">
941       <op op="&amp;"><fieldref>string_len</fieldref><value>1</value></op>
942     </exprfield>
943     <field type="FONTABLE" name="font" />
944     <list type="CHAR2B" name="string" />
945     <reply>
946       <field type="BYTE" name="draw_direction" />
947       <field type="INT16" name="font_ascent" />
948       <field type="INT16" name="font_descent" />
949       <field type="INT16" name="overall_ascent" />
950       <field type="INT16" name="overall_descent" />
951       <field type="INT32" name="overall_width" />
952       <field type="INT32" name="overall_left" />
953       <field type="INT32" name="overall_right" />
954     </reply>
955   </request>
956
957   <struct name="STR">
958     <field type="CARD8" name="name_len" />
959     <list type="char" name="name">
960       <fieldref>name_len</fieldref>
961     </list>
962   </struct>
963
964   <request name="ListFonts" opcode="49">
965     <pad bytes="1" />
966     <field type="CARD16" name="max_names" />
967     <field type="CARD16" name="pattern_len" />
968     <list type="char" name="pattern">
969       <fieldref>pattern_len</fieldref>
970     </list>
971     <reply>
972       <pad bytes="1" />
973       <field type="CARD16" name="names_len" />
974       <pad bytes="22" />
975       <list type="STR" name="names">
976         <fieldref>names_len</fieldref>
977       </list>
978     </reply>
979   </request>
980
981   <request name="ListFontsWithInfo" opcode="50">
982     <pad bytes="1" />
983     <field type="CARD16" name="max_names" />
984     <field type="CARD16" name="pattern_len" />
985     <list type="char" name="pattern">
986       <fieldref>pattern_len</fieldref>
987     </list>
988     <reply>
989       <field type="CARD8" name="name_len" />
990       <field type="CHARINFO" name="min_bounds" />
991       <pad bytes="4" />
992       <field type="CHARINFO" name="max_bounds" />
993       <pad bytes="4" />
994       <field type="CARD16" name="min_char_or_byte2" />
995       <field type="CARD16" name="max_char_or_byte2" />
996       <field type="CARD16" name="default_char" />
997       <field type="CARD16" name="properties_len" />
998       <field type="BYTE" name="draw_direction" />
999       <field type="CARD8" name="min_byte1" />
1000       <field type="CARD8" name="max_byte1" />
1001       <field type="BOOL" name="all_chars_exist" />
1002       <field type="INT16" name="font_ascent" />
1003       <field type="INT16" name="font_descent" />
1004       <field type="CARD32" name="replies_hint" />
1005       <list type="FONTPROP" name="properties">
1006         <fieldref>properties_len</fieldref>
1007       </list>
1008       <list type="char" name="name">
1009         <fieldref>name_len</fieldref>
1010       </list>
1011     </reply>
1012   </request>
1013
1014   <request name="SetFontPath" opcode="51">
1015     <pad bytes="1" />
1016     <field type="CARD16" name="font_qty" />
1017     <list type="char" name="path" />
1018   </request>
1019
1020   <request name="GetFontPath" opcode="52">
1021     <reply>
1022       <pad bytes="1" />
1023       <field type="CARD16" name="path_len" />
1024       <pad bytes="22" />
1025       <list type="STR" name="path">
1026         <fieldref>path_len</fieldref>
1027       </list>
1028     </reply>
1029   </request>
1030
1031   <request name="CreatePixmap" opcode="53">
1032     <field type="CARD8" name="depth" />
1033     <field type="PIXMAP" name="pid" />
1034     <field type="DRAWABLE" name="drawable" />
1035     <field type="CARD16" name="width" />
1036     <field type="CARD16" name="height" />
1037   </request>
1038
1039   <request name="FreePixmap" opcode="54">
1040     <pad bytes="1" />
1041     <field type="PIXMAP" name="pixmap" />
1042   </request>
1043   
1044   <enum name="GC">
1045     <item name="Function">          <bit>0</bit></item>
1046     <item name="PlaneMask">         <bit>1</bit></item>
1047     <item name="Foreground">        <bit>2</bit></item>
1048     <item name="Background">        <bit>3</bit></item>
1049     <item name="LineWidth">         <bit>4</bit></item>
1050     <item name="LineStyle">         <bit>5</bit></item>
1051     <item name="CapStyle">          <bit>6</bit></item>
1052     <item name="JoinStyle">         <bit>7</bit></item>
1053     <item name="FillStyle">         <bit>8</bit></item>
1054     <item name="FillRule">          <bit>9</bit></item>
1055     <item name="Tile">              <bit>10</bit></item>
1056     <item name="Stipple">           <bit>11</bit></item>
1057     <item name="TileStippleOriginX"><bit>12</bit></item>
1058     <item name="TileStippleOriginY"><bit>13</bit></item>
1059     <item name="Font">              <bit>14</bit></item>
1060     <item name="SubwindowMode">     <bit>15</bit></item>
1061     <item name="GraphicsExposures"> <bit>16</bit></item>
1062     <item name="ClipOriginX">       <bit>17</bit></item>
1063     <item name="ClipOriginY">       <bit>18</bit></item>
1064     <item name="Mask">              <bit>19</bit></item>
1065     <item name="DashOffset">        <bit>20</bit></item>
1066     <item name="DashList">          <bit>21</bit></item>
1067     <item name="ArcMode">           <bit>22</bit></item>
1068   </enum>
1069
1070   <!-- GC Function values -->
1071   <enum name="GX">
1072     <item name="clear">       <value>0x0</value></item>
1073     <item name="and">         <value>0x1</value></item>
1074     <item name="andReverse">  <value>0x2</value></item>
1075     <item name="copy">        <value>0x3</value></item>
1076     <item name="andInverted"> <value>0x4</value></item>
1077     <item name="noop">        <value>0x5</value></item>
1078     <item name="xor">         <value>0x6</value></item>
1079     <item name="or">          <value>0x7</value></item>
1080     <item name="nor">         <value>0x8</value></item>
1081     <item name="equiv">       <value>0x9</value></item>
1082     <item name="invert">      <value>0xa</value></item>
1083     <item name="orReverse">   <value>0xb</value></item>
1084     <item name="copyInverted"><value>0xc</value></item>
1085     <item name="orInverted">  <value>0xd</value></item>
1086     <item name="nand">        <value>0xe</value></item>
1087     <item name="set">         <value>0xf</value></item>
1088   </enum>
1089
1090   <enum name="LineStyle">
1091     <item name="Solid">     <value>0</value></item>
1092     <item name="OnOffDash"> <value>1</value></item>
1093     <item name="DoubleDash"><value>2</value></item>
1094   </enum>
1095
1096   <enum name="CapStyle">
1097     <item name="NotLast">   <value>0</value></item>
1098     <item name="Cap">       <value>1</value></item>
1099     <item name="Butt">      <value>2</value></item>
1100     <item name="Projecting"><value>3</value></item>
1101   </enum>
1102
1103   <enum name="JoinStyle">
1104     <item name="Mitre">     <value>0</value></item>
1105     <item name="Round">     <value>1</value></item>
1106     <item name="Bevel">     <value>2</value></item>
1107   </enum>
1108
1109   <enum name="FillStyle">
1110     <item name="Solid">         <value>0</value></item>
1111     <item name="Tiled">         <value>1</value></item>
1112     <item name="Stippled">      <value>2</value></item>
1113     <item name="OpaqueStippled"><value>3</value></item>
1114   </enum>
1115
1116   <enum name="FillRule">
1117     <item name="EvenOdd"><value>0</value></item>
1118     <item name="Winding"><value>1</value></item>
1119   </enum>
1120
1121   <enum name="SubwindowMode">
1122     <item name="ClipByChildren">  <value>0</value></item>
1123     <item name="IncludeInferiors"><value>1</value></item>
1124   </enum>
1125
1126   <enum name="ArcMode">
1127     <item name="Chord">   <value>0</value></item>
1128     <item name="PieSlice"><value>1</value></item>
1129   </enum>
1130
1131   <request name="CreateGC" opcode="55">
1132     <pad bytes="1" />
1133     <field type="GCONTEXT" name="cid" />
1134     <field type="DRAWABLE" name="drawable" />
1135     <valueparam value-mask-type="CARD32"
1136                 value-mask-name="value_mask"
1137                 value-list-name="value_list" />
1138   </request>
1139
1140   <request name="ChangeGC" opcode="56">
1141     <pad bytes="1" />
1142     <field type="GCONTEXT" name="gc" />
1143     <valueparam value-mask-type="CARD32"
1144                 value-mask-name="value_mask"
1145                 value-list-name="value_list" />
1146   </request>
1147
1148   <request name="CopyGC" opcode="57">
1149     <pad bytes="1" />
1150     <field type="GCONTEXT" name="src_gc" />
1151     <field type="GCONTEXT" name="dst_gc" />
1152     <field type="CARD32" name="value_mask" />
1153   </request>
1154
1155   <request name="SetDashes" opcode="58">
1156     <pad bytes="1" />
1157     <field type="GCONTEXT" name="gc" />
1158     <field type="CARD16" name="dash_offset" />
1159     <field type="CARD16" name="dashes_len" />
1160     <list type="CARD8" name="dashes">
1161       <fieldref>dashes_len</fieldref>
1162     </list>
1163   </request>
1164
1165   <request name="SetClipRectangles" opcode="59">
1166     <field type="BYTE" name="ordering" />
1167     <field type="GCONTEXT" name="gc" />
1168     <field type="INT16" name="clip_x_origin" />
1169     <field type="INT16" name="clip_y_origin" />
1170     <list type="RECTANGLE" name="rectangles" />
1171   </request>
1172
1173   <request name="FreeGC" opcode="60">
1174     <pad bytes="1" />
1175     <field type="GCONTEXT" name="gc" />
1176   </request>
1177
1178   <request name="ClearArea" opcode="61">
1179     <field type="BOOL" name="exposures" />
1180     <field type="WINDOW" name="window" />
1181     <field type="INT16" name="x" />
1182     <field type="INT16" name="y" />
1183     <field type="CARD16" name="width" />
1184     <field type="CARD16" name="height" />
1185   </request>
1186
1187   <request name="CopyArea" opcode="62">
1188     <pad bytes="1" />
1189     <field type="DRAWABLE" name="src_drawable" />
1190     <field type="DRAWABLE" name="dst_drawable" />
1191     <field type="GCONTEXT" name="gc" />
1192     <field type="INT16" name="src_x" />
1193     <field type="INT16" name="src_y" />
1194     <field type="INT16" name="dst_x" />
1195     <field type="INT16" name="dst_y" />
1196     <field type="CARD16" name="width" />
1197     <field type="CARD16" name="height" />
1198   </request>
1199
1200   <request name="CopyPlane" opcode="63">
1201     <pad bytes="1" />
1202     <field type="DRAWABLE" name="src_drawable" />
1203     <field type="DRAWABLE" name="dst_drawable" />
1204     <field type="GCONTEXT" name="gc" />
1205     <field type="INT16" name="src_x" />
1206     <field type="INT16" name="src_y" />
1207     <field type="INT16" name="dst_x" />
1208     <field type="INT16" name="dst_y" />
1209     <field type="CARD16" name="width" />
1210     <field type="CARD16" name="height" />
1211     <field type="CARD32" name="bit_plane" />
1212   </request>
1213   
1214   <enum name="CoordMode">
1215     <item name="Origin">  <value>0</value></item>
1216     <item name="Previous"><value>1</value></item>
1217   </enum>
1218
1219   <request name="PolyPoint" opcode="64" combine-adjacent="true">
1220     <field type="BYTE" name="coordinate_mode" />
1221     <field type="DRAWABLE" name="drawable" />
1222     <field type="GCONTEXT" name="gc" />
1223     <list type="POINT" name="points" />
1224   </request>
1225
1226   <request name="PolyLine" opcode="65" combine-adjacent="true">
1227     <field type="BYTE" name="coordinate_mode" />
1228     <field type="DRAWABLE" name="drawable" />
1229     <field type="GCONTEXT" name="gc" />
1230     <list type="POINT" name="points" />
1231   </request>
1232
1233   <struct name="SEGMENT">
1234     <field type="INT16" name="x1" />
1235     <field type="INT16" name="y1" />
1236     <field type="INT16" name="x2" />
1237     <field type="INT16" name="y2" />
1238   </struct>
1239
1240   <request name="PolySegment" opcode="66" combine-adjacent="true">
1241     <pad bytes="1" />
1242     <field type="DRAWABLE" name="drawable" />
1243     <field type="GCONTEXT" name="gc" />
1244     <list type="SEGMENT" name="segments" />
1245   </request>
1246
1247   <request name="PolyRectangle" opcode="67" combine-adjacent="true">
1248     <pad bytes="1" />
1249     <field type="DRAWABLE" name="drawable" />
1250     <field type="GCONTEXT" name="gc" />
1251     <list type="RECTANGLE" name="rectangles" />
1252   </request>
1253
1254   <!--
1255     The semantics of PolyArc change after the first arc: the GC's
1256     join style may be applied to successive arcs under some circumstances.
1257     So using combine-adjacent here is bad.
1258   -->
1259   <request name="PolyArc" opcode="68">
1260     <pad bytes="1" />
1261     <field type="DRAWABLE" name="drawable" />
1262     <field type="GCONTEXT" name="gc" />
1263     <list type="ARC" name="arcs" />
1264   </request>
1265
1266   <request name="FillPoly" opcode="69">
1267     <pad bytes="1" />
1268     <field type="DRAWABLE" name="drawable" />
1269     <field type="GCONTEXT" name="gc" />
1270     <field type="CARD8" name="shape" />
1271     <field type="CARD8" name="coordinate_mode" />
1272     <list type="POINT" name="points" />
1273   </request>
1274
1275   <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
1276     <pad bytes="1" />
1277     <field type="DRAWABLE" name="drawable" />
1278     <field type="GCONTEXT" name="gc" />
1279     <list type="RECTANGLE" name="rectangles" />
1280   </request>
1281
1282   <request name="PolyFillArc" opcode="71" combine-adjacent="true">
1283     <pad bytes="1" />
1284     <field type="DRAWABLE" name="drawable" />
1285     <field type="GCONTEXT" name="gc" />
1286     <list type="ARC" name="arcs" />
1287   </request>
1288   
1289   <enum name="ImageFormat">
1290     <item name="XYBitmap"><value>0</value></item>
1291     <item name="XYPixmap"><value>1</value></item>
1292     <item name="ZPixmap"> <value>2</value></item>
1293   </enum>
1294
1295   <enum name="ImageOrder">
1296     <item name="LSBFirst"><value>0</value></item>
1297     <item name="MSBFirst"><value>1</value></item>
1298   </enum>
1299
1300   <request name="PutImage" opcode="72">
1301     <field type="CARD8" name="format" />
1302     <field type="DRAWABLE" name="drawable" />
1303     <field type="GCONTEXT" name="gc" />
1304     <field type="CARD16" name="width" />
1305     <field type="CARD16" name="height" />
1306     <field type="INT16" name="dst_x" />
1307     <field type="INT16" name="dst_y" />
1308     <field type="CARD8" name="left_pad" />
1309     <field type="CARD8" name="depth" />
1310     <list type="BYTE" name="data" />
1311   </request>
1312
1313   <!-- FIXME: data array in reply will include padding, but ought not to. -->
1314   <request name="GetImage" opcode="73">
1315     <field type="CARD8" name="format" />
1316     <field type="DRAWABLE" name="drawable" />
1317     <field type="INT16" name="x" />
1318     <field type="INT16" name="y" />
1319     <field type="CARD16" name="width" />
1320     <field type="CARD16" name="height" />
1321     <field type="CARD32" name="plane_mask" />
1322     <reply>
1323       <field type="CARD8" name="depth" />
1324       <field type="VISUALID" name="visual" />
1325       <pad bytes="20" />
1326       <list type="BYTE" name="data">
1327         <op op="*">
1328           <fieldref>length</fieldref>
1329           <value>4</value>
1330         </op>
1331       </list>
1332     </reply>
1333   </request>
1334
1335   <request name="PolyText8" opcode="74">
1336     <pad bytes="1" />
1337     <field type="DRAWABLE" name="drawable" />
1338     <field type="GCONTEXT" name="gc" />
1339     <field type="INT16" name="x" />
1340     <field type="INT16" name="y" />
1341     <list type="BYTE" name="items" />
1342   </request>
1343
1344   <request name="PolyText16" opcode="75">
1345     <pad bytes="1" />
1346     <field type="DRAWABLE" name="drawable" />
1347     <field type="GCONTEXT" name="gc" />
1348     <field type="INT16" name="x" />
1349     <field type="INT16" name="y" />
1350     <list type="BYTE" name="items" />
1351   </request>
1352
1353   <request name="ImageText8" opcode="76">
1354     <field type="BYTE" name="string_len" />
1355     <field type="DRAWABLE" name="drawable" />
1356     <field type="GCONTEXT" name="gc" />
1357     <field type="INT16" name="x" />
1358     <field type="INT16" name="y" />
1359     <list type="char" name="string">
1360       <fieldref>string_len</fieldref>
1361     </list>
1362   </request>
1363
1364   <request name="ImageText16" opcode="77">
1365     <field type="BYTE" name="string_len" />
1366     <field type="DRAWABLE" name="drawable" />
1367     <field type="GCONTEXT" name="gc" />
1368     <field type="INT16" name="x" />
1369     <field type="INT16" name="y" />
1370     <list type="CHAR2B" name="string">
1371       <fieldref>string_len</fieldref>
1372     </list>
1373   </request>
1374
1375   <request name="CreateColormap" opcode="78">
1376     <field type="BYTE" name="alloc" />
1377     <field type="COLORMAP" name="mid" />
1378     <field type="WINDOW" name="window" />
1379     <field type="VISUALID" name="visual" />
1380   </request>
1381
1382   <request name="FreeColormap" opcode="79">
1383     <pad bytes="1" />
1384     <field type="COLORMAP" name="cmap" />
1385   </request>
1386
1387   <request name="CopyColormapAndFree" opcode="80">
1388     <pad bytes="1" />
1389     <field type="COLORMAP" name="mid" />
1390     <field type="COLORMAP" name="src_cmap" />
1391   </request>
1392
1393   <request name="InstallColormap" opcode="81">
1394     <pad bytes="1" />
1395     <field type="COLORMAP" name="cmap" />
1396   </request>
1397
1398   <request name="UninstallColormap" opcode="82">
1399     <pad bytes="1" />
1400     <field type="COLORMAP" name="cmap" />
1401   </request>
1402
1403   <request name="ListInstalledColormaps" opcode="83">
1404     <pad bytes="1" />
1405     <field type="WINDOW" name="window" />
1406     <reply>
1407       <pad bytes="1" />
1408       <field type="CARD16" name="cmaps_len" />
1409       <pad bytes="22" />
1410       <list type="COLORMAP" name="cmaps">
1411         <fieldref>cmaps_len</fieldref>
1412       </list>
1413     </reply>
1414   </request>
1415
1416   <request name="AllocColor" opcode="84">
1417     <pad bytes="1" />
1418     <field type="COLORMAP" name="cmap" />
1419     <field type="CARD16" name="red" />
1420     <field type="CARD16" name="green" />
1421     <field type="CARD16" name="blue" />
1422     <reply>
1423       <pad bytes="1" />
1424       <field type="CARD16" name="red" />
1425       <field type="CARD16" name="green" />
1426       <field type="CARD16" name="blue" />
1427       <pad bytes="2" />
1428       <field type="CARD32" name="pixel" />
1429     </reply>
1430   </request>
1431
1432   <request name="AllocNamedColor" opcode="85">
1433     <pad bytes="1" />
1434     <field type="COLORMAP" name="cmap" />
1435     <field type="CARD16" name="name_len" />
1436     <list type="char" name="name">
1437       <fieldref>name_len</fieldref>
1438     </list>
1439     <reply>
1440       <pad bytes="1" />
1441       <field type="CARD32" name="pixel" />
1442       <field type="CARD16" name="exact_red" />
1443       <field type="CARD16" name="exact_green" />
1444       <field type="CARD16" name="exact_blue" />
1445       <field type="CARD16" name="visual_red" />
1446       <field type="CARD16" name="visual_green" />
1447       <field type="CARD16" name="visual_blue" />
1448     </reply>
1449   </request>
1450
1451   <request name="AllocColorCells" opcode="86">
1452     <field type="BOOL" name="contiguous" />
1453     <field type="COLORMAP" name="cmap" />
1454     <field type="CARD16" name="colors" />
1455     <field type="CARD16" name="planes" />
1456     <reply>
1457       <pad bytes="1" />
1458       <field type="CARD16" name="pixels_len" />
1459       <field type="CARD16" name="masks_len" />
1460       <pad bytes="20" />
1461       <list type="CARD32" name="pixels">
1462         <fieldref>pixels_len</fieldref>
1463       </list>
1464       <list type="CARD32" name="masks">
1465         <fieldref>masks_len</fieldref>
1466       </list>
1467     </reply>
1468   </request>
1469
1470   <request name="AllocColorPlanes" opcode="87">
1471     <field type="BOOL" name="contiguous" />
1472     <field type="COLORMAP" name="cmap" />
1473     <field type="CARD16" name="colors" />
1474     <field type="CARD16" name="reds" />
1475     <field type="CARD16" name="greens" />
1476     <field type="CARD16" name="blues" />
1477     <reply>
1478       <pad bytes="1" />
1479       <field type="CARD16" name="pixels_len" />
1480       <pad bytes="2" />
1481       <field type="CARD32" name="red_mask" />
1482       <field type="CARD32" name="green_mask" />
1483       <field type="CARD32" name="blue_mask" />
1484       <pad bytes="8" />
1485       <list type="CARD32" name="pixels">
1486         <fieldref>pixels_len</fieldref>
1487       </list>
1488     </reply>
1489   </request>
1490
1491   <request name="FreeColors" opcode="88">
1492     <pad bytes="1" />
1493     <field type="COLORMAP" name="cmap" />
1494     <field type="CARD32" name="plane_mask" />
1495     <list type="CARD32" name="pixels" />
1496   </request>
1497
1498   <struct name="COLORITEM">
1499     <field type="CARD32" name="pixel" />
1500     <field type="CARD16" name="red" />
1501     <field type="CARD16" name="green" />
1502     <field type="CARD16" name="blue" />
1503     <field type="BYTE" name="flags" />
1504     <pad bytes="1" />
1505   </struct>
1506   
1507   <request name="StoreColors" opcode="89" combine-adjacent="true">
1508     <pad bytes="1" />
1509     <field type="COLORMAP" name="cmap" />
1510     <list type="COLORITEM" name="items" />
1511   </request>
1512
1513   <request name="StoreNamedColor" opcode="90">
1514     <field type="CARD8" name="flags" />
1515     <field type="COLORMAP" name="cmap" />
1516     <field type="CARD32" name="pixel" />
1517     <field type="CARD16" name="name_len" />
1518     <list type="char" name="name">
1519       <fieldref>name_len</fieldref>
1520     </list>
1521   </request>
1522
1523   <struct name="RGB">
1524     <field type="CARD16" name="red" />
1525     <field type="CARD16" name="green" />
1526     <field type="CARD16" name="blue" />
1527     <pad bytes="2" />
1528   </struct>
1529
1530   <request name="QueryColors" opcode="91">
1531     <pad bytes="1" />
1532     <field type="COLORMAP" name="cmap" />
1533     <list type="CARD32" name="pixels" />
1534     <reply>
1535       <pad bytes="1" />
1536       <field type="CARD16" name="colors_len" />
1537       <pad bytes="22" />
1538       <list type="RGB" name="colors">
1539         <fieldref>colors_len</fieldref>
1540       </list>
1541     </reply>
1542   </request>
1543
1544   <request name="LookupColor" opcode="92">
1545     <pad bytes="1" />
1546     <field type="COLORMAP" name="cmap" />
1547     <field type="CARD16" name="name_len" />
1548     <list type="char" name="name">
1549       <fieldref>name_len</fieldref>
1550     </list>
1551     <reply>
1552       <pad bytes="1" />
1553       <field type="CARD16" name="exact_red" />
1554       <field type="CARD16" name="exact_green" />
1555       <field type="CARD16" name="exact_blue" />
1556       <field type="CARD16" name="visual_red" />
1557       <field type="CARD16" name="visual_green" />
1558       <field type="CARD16" name="visual_blue" />
1559     </reply>
1560   </request>
1561
1562   <request name="CreateCursor" opcode="93">
1563     <pad bytes="1" />
1564     <field type="CURSOR" name="cid" />
1565     <field type="PIXMAP" name="source" />
1566     <field type="PIXMAP" name="mask" />
1567     <field type="CARD16" name="fore_red" />
1568     <field type="CARD16" name="fore_green" />
1569     <field type="CARD16" name="fore_blue" />
1570     <field type="CARD16" name="back_red" />
1571     <field type="CARD16" name="back_green" />
1572     <field type="CARD16" name="back_blue" />
1573     <field type="CARD16" name="x" />
1574     <field type="CARD16" name="y" />
1575   </request>
1576
1577   <request name="CreateGlyphCursor" opcode="94">
1578     <pad bytes="1" />
1579     <field type="CURSOR" name="cid" />
1580     <field type="FONT" name="source_font" />
1581     <field type="FONT" name="mask_font" />
1582     <field type="CARD16" name="source_char" />
1583     <field type="CARD16" name="mask_char" />
1584     <field type="CARD16" name="fore_red" />
1585     <field type="CARD16" name="fore_green" />
1586     <field type="CARD16" name="fore_blue" />
1587     <field type="CARD16" name="back_red" />
1588     <field type="CARD16" name="back_green" />
1589     <field type="CARD16" name="back_blue" />
1590   </request>
1591
1592   <request name="FreeCursor" opcode="95">
1593     <pad bytes="1" />
1594     <field type="CURSOR" name="cursor" />
1595   </request>
1596
1597   <request name="RecolorCursor" opcode="96">
1598     <pad bytes="1" />
1599     <field type="CURSOR" name="cursor" />
1600     <field type="CARD16" name="fore_red" />
1601     <field type="CARD16" name="fore_green" />
1602     <field type="CARD16" name="fore_blue" />
1603     <field type="CARD16" name="back_red" />
1604     <field type="CARD16" name="back_green" />
1605     <field type="CARD16" name="back_blue" />
1606   </request>
1607
1608   <request name="QueryBestSize" opcode="97">
1609     <field type="CARD8" name="class" />
1610     <field type="DRAWABLE" name="drawable" />
1611     <field type="CARD16" name="width" />
1612     <field type="CARD16" name="height" />
1613     <reply>
1614       <pad bytes="1" />
1615       <field type="CARD16" name="width" />
1616       <field type="CARD16" name="height" />
1617     </reply>
1618   </request>
1619
1620   <request name="QueryExtension" opcode="98">
1621     <pad bytes="1" />
1622     <field type="CARD16" name="name_len" />
1623     <list type="char" name="name">
1624       <fieldref>name_len</fieldref>
1625     </list>
1626     <reply>
1627       <pad bytes="1" />
1628       <field type="BOOL" name="present" />
1629       <field type="CARD8" name="major_opcode" />
1630       <field type="CARD8" name="first_event" />
1631       <field type="CARD8" name="first_error" />
1632     </reply>
1633   </request>
1634
1635   <request name="ListExtensions" opcode="99">
1636     <reply>
1637       <field type="CARD8" name="names_len" />
1638       <pad bytes="24" />
1639       <list type="STR" name="names">
1640         <fieldref>names_len</fieldref>
1641       </list>
1642     </reply>
1643   </request>
1644
1645   <request name="ChangeKeyboardMapping" opcode="100">
1646     <field type="CARD8" name="keycode_count" />
1647     <field type="KEYCODE" name="first_keycode" />
1648     <field type="CARD8" name="keysyms_per_keycode" />
1649     <list type="KEYSYM" name="keysyms">
1650       <op op="*">
1651         <fieldref>keycode_count</fieldref>
1652         <fieldref>keysyms_per_keycode</fieldref>
1653       </op>
1654     </list>
1655   </request>
1656
1657   <request name="GetKeyboardMapping" opcode="101">
1658     <pad bytes="1" />
1659     <field type="KEYCODE" name="first_keycode" />
1660     <field type="CARD8" name="count" />
1661     <reply>
1662       <field type="BYTE" name="keysyms_per_keycode" />
1663       <pad bytes="24" />
1664       <list type="KEYSYM" name="keysyms">
1665         <op op="*">
1666           <fieldref>length</fieldref>
1667           <value>4</value>
1668         </op>
1669       </list>
1670     </reply>
1671   </request>
1672
1673   <request name="ChangeKeyboardControl" opcode="102">
1674     <pad bytes="1" />
1675     <valueparam value-mask-type="CARD32"
1676                 value-mask-name="value_mask"
1677                 value-list-name="value_list" />
1678   </request>
1679
1680   <request name="GetKeyboardControl" opcode="103">
1681     <reply>
1682       <field type="BYTE" name="global_auto_repeat" />
1683       <field type="CARD32" name="led_mask" />
1684       <field type="CARD8" name="key_click_percent" />
1685       <field type="CARD8" name="bell_percent" />
1686       <field type="CARD16" name="bell_pitch" />
1687       <field type="CARD16" name="bell_duration" />
1688       <pad bytes="2" />
1689       <list type="CARD8" name="auto_repeats"><value>32</value></list>
1690     </reply>
1691   </request>
1692
1693   <request name="Bell" opcode="104">
1694     <field type="INT8" name="percent" />
1695   </request>
1696
1697   <request name="ChangePointerControl" opcode="105">
1698     <pad bytes="1" />
1699     <field type="INT16" name="acceleration_numerator" />
1700     <field type="INT16" name="acceleration_denominator" />
1701     <field type="INT16" name="threshold" />
1702     <field type="BOOL" name="do_acceleration" />
1703     <field type="BOOL" name="do_threshold" />
1704   </request>
1705
1706   <request name="GetPointerControl" opcode="106">
1707     <reply>
1708       <pad bytes="1" />
1709       <field type="CARD16" name="acceleration_numerator" />
1710       <field type="CARD16" name="acceleration_denominator" />
1711       <field type="CARD16" name="threshold" />
1712     </reply>
1713   </request>
1714
1715   <request name="SetScreenSaver" opcode="107">
1716     <pad bytes="1" />
1717     <field type="INT16" name="timeout" />
1718     <field type="INT16" name="interval" />
1719     <field type="CARD8" name="prefer_blanking" />
1720     <field type="CARD8" name="allow_exposures" />
1721   </request>
1722
1723   <request name="GetScreenSaver" opcode="108">
1724     <reply>
1725       <pad bytes="1" />
1726       <field type="CARD16" name="timeout" />
1727       <field type="CARD16" name="interval" />
1728       <field type="BYTE" name="prefer_blanking" />
1729       <field type="BYTE" name="allow_exposures" />
1730     </reply>
1731   </request>
1732
1733   <request name="ChangeHosts" opcode="109">
1734     <field type="CARD8" name="mode" />
1735     <field type="CARD8" name="family" />
1736     <pad bytes="1" />
1737     <field type="CARD16" name="address_len" />
1738     <list type="char" name="address">
1739       <fieldref>address_len</fieldref>
1740     </list>
1741   </request>
1742
1743   <struct name="HOST">
1744     <field type="CARD8" name="family" />
1745     <pad bytes="1" />
1746     <field type="CARD16" name="address_len" />
1747     <list type="BYTE" name="address">
1748       <fieldref>address_len</fieldref>
1749     </list>
1750   </struct>
1751
1752   <request name="ListHosts" opcode="110">
1753     <reply>
1754       <field type="BYTE" name="mode" />
1755       <field type="CARD16" name="hosts_len" />
1756       <pad bytes="22" />
1757       <list type="HOST" name="hosts">
1758         <fieldref>hosts_len</fieldref>
1759       </list>
1760     </reply>
1761   </request>
1762
1763   <request name="SetAccessControl" opcode="111">
1764     <field type="CARD8" name="mode" />
1765   </request>
1766
1767   <request name="SetCloseDownMode" opcode="112">
1768     <field type="CARD8" name="mode" />
1769   </request>
1770
1771   <request name="KillClient" opcode="113">
1772     <pad bytes="1" />
1773     <field type="CARD32" name="resource" />
1774   </request>
1775
1776   <request name="RotateProperties" opcode="114">
1777     <field type="WINDOW" name="window" />
1778     <field type="CARD16" name="atoms_len" />
1779     <field type="INT16" name="delta" />
1780     <list type="ATOM" name="atoms">
1781       <fieldref>atoms_len</fieldref>
1782     </list>
1783   </request>
1784
1785   <request name="ForceScreenSaver" opcode="115">
1786     <field type="CARD8" name="mode" />
1787   </request>
1788
1789   <request name="SetPointerMapping" opcode="116">
1790     <field type="CARD8" name="map_len" />
1791     <list type="CARD8" name="map">
1792       <fieldref>map_len</fieldref>
1793     </list>
1794     <reply>
1795       <field type="BYTE" name="status" />
1796     </reply>
1797   </request>
1798
1799   <request name="GetPointerMapping" opcode="117">
1800     <reply>
1801       <field type="CARD8" name="map_len" />
1802       <pad bytes="24" />
1803       <list type="CARD8" name="map">
1804         <fieldref>map_len</fieldref>
1805       </list>
1806     </reply>
1807   </request>
1808   
1809   <enum name="MapIndex">
1810     <item name="Shift">  <value>0</value></item>
1811     <item name="Lock">   <value>1</value></item>
1812     <item name="Control"><value>2</value></item>
1813     <item name="1">      <value>3</value></item>
1814     <item name="2">      <value>4</value></item>
1815     <item name="3">      <value>5</value></item>
1816     <item name="4">      <value>6</value></item>
1817     <item name="5">      <value>7</value></item>
1818   </enum>
1819
1820   <request name="SetModifierMapping" opcode="118">
1821     <field type="CARD8" name="keycodes_per_modifier" />
1822     <list type="KEYCODE" name="keycodes">
1823       <op op="*">
1824         <fieldref>keycodes_per_modifier</fieldref>
1825         <value>8</value>
1826       </op>
1827     </list>
1828     <reply>
1829       <field type="BYTE" name="status" />
1830     </reply>
1831   </request>
1832
1833   <request name="GetModifierMapping" opcode="119">
1834     <reply>
1835       <field type="CARD8" name="keycodes_per_modifier" />
1836       <pad bytes="24" />
1837       <list type="KEYCODE" name="keycodes">
1838         <op op="*">
1839           <fieldref>keycodes_per_modifier</fieldref>
1840           <value>8</value>
1841         </op>
1842       </list>
1843     </reply>
1844   </request>
1845
1846   <!--
1847     FIXME: NoOperation should allow specifying payload length
1848     but geez, malloc()ing a 262140 byte buffer just so I have something
1849     to hand to write(2) seems silly...!
1850   -->
1851   <request name="NoOperation" opcode="127" />
1852
1853 </xcb>