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