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