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