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