xref: /minix/external/mit/xorg/lib/libxcb/files/xproto.h (revision 0a6a1f1d)
1 /*
2  * This file generated automatically from xproto.xml by c_client.py.
3  * Edit at your peril.
4  */
5 
6 /**
7  * @defgroup XCB__API XCB  API
8  * @brief  XCB Protocol Implementation.
9  * @{
10  **/
11 
12 #ifndef __XPROTO_H
13 #define __XPROTO_H
14 
15 #include "xcb.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 /**
22  * @brief xcb_char2b_t
23  **/
24 typedef struct xcb_char2b_t {
25     uint8_t byte1; /**<  */
26     uint8_t byte2; /**<  */
27 } xcb_char2b_t;
28 
29 /**
30  * @brief xcb_char2b_iterator_t
31  **/
32 typedef struct xcb_char2b_iterator_t {
33     xcb_char2b_t *data; /**<  */
34     int           rem; /**<  */
35     int           index; /**<  */
36 } xcb_char2b_iterator_t;
37 
38 typedef uint32_t xcb_window_t;
39 
40 /**
41  * @brief xcb_window_iterator_t
42  **/
43 typedef struct xcb_window_iterator_t {
44     xcb_window_t *data; /**<  */
45     int           rem; /**<  */
46     int           index; /**<  */
47 } xcb_window_iterator_t;
48 
49 typedef uint32_t xcb_pixmap_t;
50 
51 /**
52  * @brief xcb_pixmap_iterator_t
53  **/
54 typedef struct xcb_pixmap_iterator_t {
55     xcb_pixmap_t *data; /**<  */
56     int           rem; /**<  */
57     int           index; /**<  */
58 } xcb_pixmap_iterator_t;
59 
60 typedef uint32_t xcb_cursor_t;
61 
62 /**
63  * @brief xcb_cursor_iterator_t
64  **/
65 typedef struct xcb_cursor_iterator_t {
66     xcb_cursor_t *data; /**<  */
67     int           rem; /**<  */
68     int           index; /**<  */
69 } xcb_cursor_iterator_t;
70 
71 typedef uint32_t xcb_font_t;
72 
73 /**
74  * @brief xcb_font_iterator_t
75  **/
76 typedef struct xcb_font_iterator_t {
77     xcb_font_t *data; /**<  */
78     int         rem; /**<  */
79     int         index; /**<  */
80 } xcb_font_iterator_t;
81 
82 typedef uint32_t xcb_gcontext_t;
83 
84 /**
85  * @brief xcb_gcontext_iterator_t
86  **/
87 typedef struct xcb_gcontext_iterator_t {
88     xcb_gcontext_t *data; /**<  */
89     int             rem; /**<  */
90     int             index; /**<  */
91 } xcb_gcontext_iterator_t;
92 
93 typedef uint32_t xcb_colormap_t;
94 
95 /**
96  * @brief xcb_colormap_iterator_t
97  **/
98 typedef struct xcb_colormap_iterator_t {
99     xcb_colormap_t *data; /**<  */
100     int             rem; /**<  */
101     int             index; /**<  */
102 } xcb_colormap_iterator_t;
103 
104 typedef uint32_t xcb_atom_t;
105 
106 /**
107  * @brief xcb_atom_iterator_t
108  **/
109 typedef struct xcb_atom_iterator_t {
110     xcb_atom_t *data; /**<  */
111     int         rem; /**<  */
112     int         index; /**<  */
113 } xcb_atom_iterator_t;
114 
115 typedef uint32_t xcb_drawable_t;
116 
117 /**
118  * @brief xcb_drawable_iterator_t
119  **/
120 typedef struct xcb_drawable_iterator_t {
121     xcb_drawable_t *data; /**<  */
122     int             rem; /**<  */
123     int             index; /**<  */
124 } xcb_drawable_iterator_t;
125 
126 typedef uint32_t xcb_fontable_t;
127 
128 /**
129  * @brief xcb_fontable_iterator_t
130  **/
131 typedef struct xcb_fontable_iterator_t {
132     xcb_fontable_t *data; /**<  */
133     int             rem; /**<  */
134     int             index; /**<  */
135 } xcb_fontable_iterator_t;
136 
137 typedef uint32_t xcb_visualid_t;
138 
139 /**
140  * @brief xcb_visualid_iterator_t
141  **/
142 typedef struct xcb_visualid_iterator_t {
143     xcb_visualid_t *data; /**<  */
144     int             rem; /**<  */
145     int             index; /**<  */
146 } xcb_visualid_iterator_t;
147 
148 typedef uint32_t xcb_timestamp_t;
149 
150 /**
151  * @brief xcb_timestamp_iterator_t
152  **/
153 typedef struct xcb_timestamp_iterator_t {
154     xcb_timestamp_t *data; /**<  */
155     int              rem; /**<  */
156     int              index; /**<  */
157 } xcb_timestamp_iterator_t;
158 
159 typedef uint32_t xcb_keysym_t;
160 
161 /**
162  * @brief xcb_keysym_iterator_t
163  **/
164 typedef struct xcb_keysym_iterator_t {
165     xcb_keysym_t *data; /**<  */
166     int           rem; /**<  */
167     int           index; /**<  */
168 } xcb_keysym_iterator_t;
169 
170 typedef uint8_t xcb_keycode_t;
171 
172 /**
173  * @brief xcb_keycode_iterator_t
174  **/
175 typedef struct xcb_keycode_iterator_t {
176     xcb_keycode_t *data; /**<  */
177     int            rem; /**<  */
178     int            index; /**<  */
179 } xcb_keycode_iterator_t;
180 
181 typedef uint8_t xcb_button_t;
182 
183 /**
184  * @brief xcb_button_iterator_t
185  **/
186 typedef struct xcb_button_iterator_t {
187     xcb_button_t *data; /**<  */
188     int           rem; /**<  */
189     int           index; /**<  */
190 } xcb_button_iterator_t;
191 
192 /**
193  * @brief xcb_point_t
194  **/
195 typedef struct xcb_point_t {
196     int16_t x; /**<  */
197     int16_t y; /**<  */
198 } xcb_point_t;
199 
200 /**
201  * @brief xcb_point_iterator_t
202  **/
203 typedef struct xcb_point_iterator_t {
204     xcb_point_t *data; /**<  */
205     int          rem; /**<  */
206     int          index; /**<  */
207 } xcb_point_iterator_t;
208 
209 /**
210  * @brief xcb_rectangle_t
211  **/
212 typedef struct xcb_rectangle_t {
213     int16_t  x; /**<  */
214     int16_t  y; /**<  */
215     uint16_t width; /**<  */
216     uint16_t height; /**<  */
217 } xcb_rectangle_t;
218 
219 /**
220  * @brief xcb_rectangle_iterator_t
221  **/
222 typedef struct xcb_rectangle_iterator_t {
223     xcb_rectangle_t *data; /**<  */
224     int              rem; /**<  */
225     int              index; /**<  */
226 } xcb_rectangle_iterator_t;
227 
228 /**
229  * @brief xcb_arc_t
230  **/
231 typedef struct xcb_arc_t {
232     int16_t  x; /**<  */
233     int16_t  y; /**<  */
234     uint16_t width; /**<  */
235     uint16_t height; /**<  */
236     int16_t  angle1; /**<  */
237     int16_t  angle2; /**<  */
238 } xcb_arc_t;
239 
240 /**
241  * @brief xcb_arc_iterator_t
242  **/
243 typedef struct xcb_arc_iterator_t {
244     xcb_arc_t *data; /**<  */
245     int        rem; /**<  */
246     int        index; /**<  */
247 } xcb_arc_iterator_t;
248 
249 /**
250  * @brief xcb_format_t
251  **/
252 typedef struct xcb_format_t {
253     uint8_t depth; /**<  */
254     uint8_t bits_per_pixel; /**<  */
255     uint8_t scanline_pad; /**<  */
256     uint8_t pad0[5]; /**<  */
257 } xcb_format_t;
258 
259 /**
260  * @brief xcb_format_iterator_t
261  **/
262 typedef struct xcb_format_iterator_t {
263     xcb_format_t *data; /**<  */
264     int           rem; /**<  */
265     int           index; /**<  */
266 } xcb_format_iterator_t;
267 
268 typedef enum xcb_visual_class_t {
269     XCB_VISUAL_CLASS_STATIC_GRAY = 0,
270     XCB_VISUAL_CLASS_GRAY_SCALE = 1,
271     XCB_VISUAL_CLASS_STATIC_COLOR = 2,
272     XCB_VISUAL_CLASS_PSEUDO_COLOR = 3,
273     XCB_VISUAL_CLASS_TRUE_COLOR = 4,
274     XCB_VISUAL_CLASS_DIRECT_COLOR = 5
275 } xcb_visual_class_t;
276 
277 /**
278  * @brief xcb_visualtype_t
279  **/
280 typedef struct xcb_visualtype_t {
281     xcb_visualid_t visual_id; /**<  */
282     uint8_t        _class; /**<  */
283     uint8_t        bits_per_rgb_value; /**<  */
284     uint16_t       colormap_entries; /**<  */
285     uint32_t       red_mask; /**<  */
286     uint32_t       green_mask; /**<  */
287     uint32_t       blue_mask; /**<  */
288     uint8_t        pad0[4]; /**<  */
289 } xcb_visualtype_t;
290 
291 /**
292  * @brief xcb_visualtype_iterator_t
293  **/
294 typedef struct xcb_visualtype_iterator_t {
295     xcb_visualtype_t *data; /**<  */
296     int               rem; /**<  */
297     int               index; /**<  */
298 } xcb_visualtype_iterator_t;
299 
300 /**
301  * @brief xcb_depth_t
302  **/
303 typedef struct xcb_depth_t {
304     uint8_t  depth; /**<  */
305     uint8_t  pad0; /**<  */
306     uint16_t visuals_len; /**<  */
307     uint8_t  pad1[4]; /**<  */
308 } xcb_depth_t;
309 
310 /**
311  * @brief xcb_depth_iterator_t
312  **/
313 typedef struct xcb_depth_iterator_t {
314     xcb_depth_t *data; /**<  */
315     int          rem; /**<  */
316     int          index; /**<  */
317 } xcb_depth_iterator_t;
318 
319 typedef enum xcb_event_mask_t {
320     XCB_EVENT_MASK_NO_EVENT = 0,
321     XCB_EVENT_MASK_KEY_PRESS = 1,
322     XCB_EVENT_MASK_KEY_RELEASE = 2,
323     XCB_EVENT_MASK_BUTTON_PRESS = 4,
324     XCB_EVENT_MASK_BUTTON_RELEASE = 8,
325     XCB_EVENT_MASK_ENTER_WINDOW = 16,
326     XCB_EVENT_MASK_LEAVE_WINDOW = 32,
327     XCB_EVENT_MASK_POINTER_MOTION = 64,
328     XCB_EVENT_MASK_POINTER_MOTION_HINT = 128,
329     XCB_EVENT_MASK_BUTTON_1_MOTION = 256,
330     XCB_EVENT_MASK_BUTTON_2_MOTION = 512,
331     XCB_EVENT_MASK_BUTTON_3_MOTION = 1024,
332     XCB_EVENT_MASK_BUTTON_4_MOTION = 2048,
333     XCB_EVENT_MASK_BUTTON_5_MOTION = 4096,
334     XCB_EVENT_MASK_BUTTON_MOTION = 8192,
335     XCB_EVENT_MASK_KEYMAP_STATE = 16384,
336     XCB_EVENT_MASK_EXPOSURE = 32768,
337     XCB_EVENT_MASK_VISIBILITY_CHANGE = 65536,
338     XCB_EVENT_MASK_STRUCTURE_NOTIFY = 131072,
339     XCB_EVENT_MASK_RESIZE_REDIRECT = 262144,
340     XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY = 524288,
341     XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT = 1048576,
342     XCB_EVENT_MASK_FOCUS_CHANGE = 2097152,
343     XCB_EVENT_MASK_PROPERTY_CHANGE = 4194304,
344     XCB_EVENT_MASK_COLOR_MAP_CHANGE = 8388608,
345     XCB_EVENT_MASK_OWNER_GRAB_BUTTON = 16777216
346 } xcb_event_mask_t;
347 
348 typedef enum xcb_backing_store_t {
349     XCB_BACKING_STORE_NOT_USEFUL = 0,
350     XCB_BACKING_STORE_WHEN_MAPPED = 1,
351     XCB_BACKING_STORE_ALWAYS = 2
352 } xcb_backing_store_t;
353 
354 /**
355  * @brief xcb_screen_t
356  **/
357 typedef struct xcb_screen_t {
358     xcb_window_t   root; /**<  */
359     xcb_colormap_t default_colormap; /**<  */
360     uint32_t       white_pixel; /**<  */
361     uint32_t       black_pixel; /**<  */
362     uint32_t       current_input_masks; /**<  */
363     uint16_t       width_in_pixels; /**<  */
364     uint16_t       height_in_pixels; /**<  */
365     uint16_t       width_in_millimeters; /**<  */
366     uint16_t       height_in_millimeters; /**<  */
367     uint16_t       min_installed_maps; /**<  */
368     uint16_t       max_installed_maps; /**<  */
369     xcb_visualid_t root_visual; /**<  */
370     uint8_t        backing_stores; /**<  */
371     uint8_t        save_unders; /**<  */
372     uint8_t        root_depth; /**<  */
373     uint8_t        allowed_depths_len; /**<  */
374 } xcb_screen_t;
375 
376 /**
377  * @brief xcb_screen_iterator_t
378  **/
379 typedef struct xcb_screen_iterator_t {
380     xcb_screen_t *data; /**<  */
381     int           rem; /**<  */
382     int           index; /**<  */
383 } xcb_screen_iterator_t;
384 
385 /**
386  * @brief xcb_setup_request_t
387  **/
388 typedef struct xcb_setup_request_t {
389     uint8_t  byte_order; /**<  */
390     uint8_t  pad0; /**<  */
391     uint16_t protocol_major_version; /**<  */
392     uint16_t protocol_minor_version; /**<  */
393     uint16_t authorization_protocol_name_len; /**<  */
394     uint16_t authorization_protocol_data_len; /**<  */
395     uint8_t  pad1[2]; /**<  */
396 } xcb_setup_request_t;
397 
398 /**
399  * @brief xcb_setup_request_iterator_t
400  **/
401 typedef struct xcb_setup_request_iterator_t {
402     xcb_setup_request_t *data; /**<  */
403     int                  rem; /**<  */
404     int                  index; /**<  */
405 } xcb_setup_request_iterator_t;
406 
407 /**
408  * @brief xcb_setup_failed_t
409  **/
410 typedef struct xcb_setup_failed_t {
411     uint8_t  status; /**<  */
412     uint8_t  reason_len; /**<  */
413     uint16_t protocol_major_version; /**<  */
414     uint16_t protocol_minor_version; /**<  */
415     uint16_t length; /**<  */
416 } xcb_setup_failed_t;
417 
418 /**
419  * @brief xcb_setup_failed_iterator_t
420  **/
421 typedef struct xcb_setup_failed_iterator_t {
422     xcb_setup_failed_t *data; /**<  */
423     int                 rem; /**<  */
424     int                 index; /**<  */
425 } xcb_setup_failed_iterator_t;
426 
427 /**
428  * @brief xcb_setup_authenticate_t
429  **/
430 typedef struct xcb_setup_authenticate_t {
431     uint8_t  status; /**<  */
432     uint8_t  pad0[5]; /**<  */
433     uint16_t length; /**<  */
434 } xcb_setup_authenticate_t;
435 
436 /**
437  * @brief xcb_setup_authenticate_iterator_t
438  **/
439 typedef struct xcb_setup_authenticate_iterator_t {
440     xcb_setup_authenticate_t *data; /**<  */
441     int                       rem; /**<  */
442     int                       index; /**<  */
443 } xcb_setup_authenticate_iterator_t;
444 
445 typedef enum xcb_image_order_t {
446     XCB_IMAGE_ORDER_LSB_FIRST = 0,
447     XCB_IMAGE_ORDER_MSB_FIRST = 1
448 } xcb_image_order_t;
449 
450 /**
451  * @brief xcb_setup_t
452  **/
453 typedef struct xcb_setup_t {
454     uint8_t       status; /**<  */
455     uint8_t       pad0; /**<  */
456     uint16_t      protocol_major_version; /**<  */
457     uint16_t      protocol_minor_version; /**<  */
458     uint16_t      length; /**<  */
459     uint32_t      release_number; /**<  */
460     uint32_t      resource_id_base; /**<  */
461     uint32_t      resource_id_mask; /**<  */
462     uint32_t      motion_buffer_size; /**<  */
463     uint16_t      vendor_len; /**<  */
464     uint16_t      maximum_request_length; /**<  */
465     uint8_t       roots_len; /**<  */
466     uint8_t       pixmap_formats_len; /**<  */
467     uint8_t       image_byte_order; /**<  */
468     uint8_t       bitmap_format_bit_order; /**<  */
469     uint8_t       bitmap_format_scanline_unit; /**<  */
470     uint8_t       bitmap_format_scanline_pad; /**<  */
471     xcb_keycode_t min_keycode; /**<  */
472     xcb_keycode_t max_keycode; /**<  */
473     uint8_t       pad1[4]; /**<  */
474 } xcb_setup_t;
475 
476 /**
477  * @brief xcb_setup_iterator_t
478  **/
479 typedef struct xcb_setup_iterator_t {
480     xcb_setup_t *data; /**<  */
481     int          rem; /**<  */
482     int          index; /**<  */
483 } xcb_setup_iterator_t;
484 
485 typedef enum xcb_mod_mask_t {
486     XCB_MOD_MASK_SHIFT = 1,
487     XCB_MOD_MASK_LOCK = 2,
488     XCB_MOD_MASK_CONTROL = 4,
489     XCB_MOD_MASK_1 = 8,
490     XCB_MOD_MASK_2 = 16,
491     XCB_MOD_MASK_3 = 32,
492     XCB_MOD_MASK_4 = 64,
493     XCB_MOD_MASK_5 = 128,
494     XCB_MOD_MASK_ANY = 32768
495 } xcb_mod_mask_t;
496 
497 typedef enum xcb_key_but_mask_t {
498     XCB_KEY_BUT_MASK_SHIFT = 1,
499     XCB_KEY_BUT_MASK_LOCK = 2,
500     XCB_KEY_BUT_MASK_CONTROL = 4,
501     XCB_KEY_BUT_MASK_MOD_1 = 8,
502     XCB_KEY_BUT_MASK_MOD_2 = 16,
503     XCB_KEY_BUT_MASK_MOD_3 = 32,
504     XCB_KEY_BUT_MASK_MOD_4 = 64,
505     XCB_KEY_BUT_MASK_MOD_5 = 128,
506     XCB_KEY_BUT_MASK_BUTTON_1 = 256,
507     XCB_KEY_BUT_MASK_BUTTON_2 = 512,
508     XCB_KEY_BUT_MASK_BUTTON_3 = 1024,
509     XCB_KEY_BUT_MASK_BUTTON_4 = 2048,
510     XCB_KEY_BUT_MASK_BUTTON_5 = 4096
511 } xcb_key_but_mask_t;
512 
513 typedef enum xcb_window_enum_t {
514     XCB_WINDOW_NONE = 0
515 } xcb_window_enum_t;
516 
517 /** Opcode for xcb_key_press. */
518 #define XCB_KEY_PRESS 2
519 
520 /**
521  * @brief xcb_key_press_event_t
522  **/
523 typedef struct xcb_key_press_event_t {
524     uint8_t         response_type; /**<  */
525     xcb_keycode_t   detail; /**<  */
526     uint16_t        sequence; /**<  */
527     xcb_timestamp_t time; /**<  */
528     xcb_window_t    root; /**<  */
529     xcb_window_t    event; /**<  */
530     xcb_window_t    child; /**<  */
531     int16_t         root_x; /**<  */
532     int16_t         root_y; /**<  */
533     int16_t         event_x; /**<  */
534     int16_t         event_y; /**<  */
535     uint16_t        state; /**<  */
536     uint8_t         same_screen; /**<  */
537     uint8_t         pad0; /**<  */
538 } xcb_key_press_event_t;
539 
540 /** Opcode for xcb_key_release. */
541 #define XCB_KEY_RELEASE 3
542 
543 typedef xcb_key_press_event_t xcb_key_release_event_t;
544 
545 typedef enum xcb_button_mask_t {
546     XCB_BUTTON_MASK_1 = 256,
547     XCB_BUTTON_MASK_2 = 512,
548     XCB_BUTTON_MASK_3 = 1024,
549     XCB_BUTTON_MASK_4 = 2048,
550     XCB_BUTTON_MASK_5 = 4096,
551     XCB_BUTTON_MASK_ANY = 32768
552 } xcb_button_mask_t;
553 
554 /** Opcode for xcb_button_press. */
555 #define XCB_BUTTON_PRESS 4
556 
557 /**
558  * @brief xcb_button_press_event_t
559  **/
560 typedef struct xcb_button_press_event_t {
561     uint8_t         response_type; /**<  */
562     xcb_button_t    detail; /**<  */
563     uint16_t        sequence; /**<  */
564     xcb_timestamp_t time; /**<  */
565     xcb_window_t    root; /**<  */
566     xcb_window_t    event; /**<  */
567     xcb_window_t    child; /**<  */
568     int16_t         root_x; /**<  */
569     int16_t         root_y; /**<  */
570     int16_t         event_x; /**<  */
571     int16_t         event_y; /**<  */
572     uint16_t        state; /**<  */
573     uint8_t         same_screen; /**<  */
574     uint8_t         pad0; /**<  */
575 } xcb_button_press_event_t;
576 
577 /** Opcode for xcb_button_release. */
578 #define XCB_BUTTON_RELEASE 5
579 
580 typedef xcb_button_press_event_t xcb_button_release_event_t;
581 
582 typedef enum xcb_motion_t {
583     XCB_MOTION_NORMAL = 0,
584     XCB_MOTION_HINT = 1
585 } xcb_motion_t;
586 
587 /** Opcode for xcb_motion_notify. */
588 #define XCB_MOTION_NOTIFY 6
589 
590 /**
591  * @brief xcb_motion_notify_event_t
592  **/
593 typedef struct xcb_motion_notify_event_t {
594     uint8_t         response_type; /**<  */
595     uint8_t         detail; /**<  */
596     uint16_t        sequence; /**<  */
597     xcb_timestamp_t time; /**<  */
598     xcb_window_t    root; /**<  */
599     xcb_window_t    event; /**<  */
600     xcb_window_t    child; /**<  */
601     int16_t         root_x; /**<  */
602     int16_t         root_y; /**<  */
603     int16_t         event_x; /**<  */
604     int16_t         event_y; /**<  */
605     uint16_t        state; /**<  */
606     uint8_t         same_screen; /**<  */
607     uint8_t         pad0; /**<  */
608 } xcb_motion_notify_event_t;
609 
610 typedef enum xcb_notify_detail_t {
611     XCB_NOTIFY_DETAIL_ANCESTOR = 0,
612     XCB_NOTIFY_DETAIL_VIRTUAL = 1,
613     XCB_NOTIFY_DETAIL_INFERIOR = 2,
614     XCB_NOTIFY_DETAIL_NONLINEAR = 3,
615     XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,
616     XCB_NOTIFY_DETAIL_POINTER = 5,
617     XCB_NOTIFY_DETAIL_POINTER_ROOT = 6,
618     XCB_NOTIFY_DETAIL_NONE = 7
619 } xcb_notify_detail_t;
620 
621 typedef enum xcb_notify_mode_t {
622     XCB_NOTIFY_MODE_NORMAL = 0,
623     XCB_NOTIFY_MODE_GRAB = 1,
624     XCB_NOTIFY_MODE_UNGRAB = 2,
625     XCB_NOTIFY_MODE_WHILE_GRABBED = 3
626 } xcb_notify_mode_t;
627 
628 /** Opcode for xcb_enter_notify. */
629 #define XCB_ENTER_NOTIFY 7
630 
631 /**
632  * @brief xcb_enter_notify_event_t
633  **/
634 typedef struct xcb_enter_notify_event_t {
635     uint8_t         response_type; /**<  */
636     uint8_t         detail; /**<  */
637     uint16_t        sequence; /**<  */
638     xcb_timestamp_t time; /**<  */
639     xcb_window_t    root; /**<  */
640     xcb_window_t    event; /**<  */
641     xcb_window_t    child; /**<  */
642     int16_t         root_x; /**<  */
643     int16_t         root_y; /**<  */
644     int16_t         event_x; /**<  */
645     int16_t         event_y; /**<  */
646     uint16_t        state; /**<  */
647     uint8_t         mode; /**<  */
648     uint8_t         same_screen_focus; /**<  */
649 } xcb_enter_notify_event_t;
650 
651 /** Opcode for xcb_leave_notify. */
652 #define XCB_LEAVE_NOTIFY 8
653 
654 typedef xcb_enter_notify_event_t xcb_leave_notify_event_t;
655 
656 /** Opcode for xcb_focus_in. */
657 #define XCB_FOCUS_IN 9
658 
659 /**
660  * @brief xcb_focus_in_event_t
661  **/
662 typedef struct xcb_focus_in_event_t {
663     uint8_t      response_type; /**<  */
664     uint8_t      detail; /**<  */
665     uint16_t     sequence; /**<  */
666     xcb_window_t event; /**<  */
667     uint8_t      mode; /**<  */
668     uint8_t      pad0[3]; /**<  */
669 } xcb_focus_in_event_t;
670 
671 /** Opcode for xcb_focus_out. */
672 #define XCB_FOCUS_OUT 10
673 
674 typedef xcb_focus_in_event_t xcb_focus_out_event_t;
675 
676 /** Opcode for xcb_keymap_notify. */
677 #define XCB_KEYMAP_NOTIFY 11
678 
679 /**
680  * @brief xcb_keymap_notify_event_t
681  **/
682 typedef struct xcb_keymap_notify_event_t {
683     uint8_t response_type; /**<  */
684     uint8_t keys[31]; /**<  */
685 } xcb_keymap_notify_event_t;
686 
687 /** Opcode for xcb_expose. */
688 #define XCB_EXPOSE 12
689 
690 /**
691  * @brief xcb_expose_event_t
692  **/
693 typedef struct xcb_expose_event_t {
694     uint8_t      response_type; /**<  */
695     uint8_t      pad0; /**<  */
696     uint16_t     sequence; /**<  */
697     xcb_window_t window; /**<  */
698     uint16_t     x; /**<  */
699     uint16_t     y; /**<  */
700     uint16_t     width; /**<  */
701     uint16_t     height; /**<  */
702     uint16_t     count; /**<  */
703     uint8_t      pad1[2]; /**<  */
704 } xcb_expose_event_t;
705 
706 /** Opcode for xcb_graphics_exposure. */
707 #define XCB_GRAPHICS_EXPOSURE 13
708 
709 /**
710  * @brief xcb_graphics_exposure_event_t
711  **/
712 typedef struct xcb_graphics_exposure_event_t {
713     uint8_t        response_type; /**<  */
714     uint8_t        pad0; /**<  */
715     uint16_t       sequence; /**<  */
716     xcb_drawable_t drawable; /**<  */
717     uint16_t       x; /**<  */
718     uint16_t       y; /**<  */
719     uint16_t       width; /**<  */
720     uint16_t       height; /**<  */
721     uint16_t       minor_opcode; /**<  */
722     uint16_t       count; /**<  */
723     uint8_t        major_opcode; /**<  */
724     uint8_t        pad1[3]; /**<  */
725 } xcb_graphics_exposure_event_t;
726 
727 /** Opcode for xcb_no_exposure. */
728 #define XCB_NO_EXPOSURE 14
729 
730 /**
731  * @brief xcb_no_exposure_event_t
732  **/
733 typedef struct xcb_no_exposure_event_t {
734     uint8_t        response_type; /**<  */
735     uint8_t        pad0; /**<  */
736     uint16_t       sequence; /**<  */
737     xcb_drawable_t drawable; /**<  */
738     uint16_t       minor_opcode; /**<  */
739     uint8_t        major_opcode; /**<  */
740     uint8_t        pad1; /**<  */
741 } xcb_no_exposure_event_t;
742 
743 typedef enum xcb_visibility_t {
744     XCB_VISIBILITY_UNOBSCURED = 0,
745     XCB_VISIBILITY_PARTIALLY_OBSCURED = 1,
746     XCB_VISIBILITY_FULLY_OBSCURED = 2
747 } xcb_visibility_t;
748 
749 /** Opcode for xcb_visibility_notify. */
750 #define XCB_VISIBILITY_NOTIFY 15
751 
752 /**
753  * @brief xcb_visibility_notify_event_t
754  **/
755 typedef struct xcb_visibility_notify_event_t {
756     uint8_t      response_type; /**<  */
757     uint8_t      pad0; /**<  */
758     uint16_t     sequence; /**<  */
759     xcb_window_t window; /**<  */
760     uint8_t      state; /**<  */
761     uint8_t      pad1[3]; /**<  */
762 } xcb_visibility_notify_event_t;
763 
764 /** Opcode for xcb_create_notify. */
765 #define XCB_CREATE_NOTIFY 16
766 
767 /**
768  * @brief xcb_create_notify_event_t
769  **/
770 typedef struct xcb_create_notify_event_t {
771     uint8_t      response_type; /**<  */
772     uint8_t      pad0; /**<  */
773     uint16_t     sequence; /**<  */
774     xcb_window_t parent; /**<  */
775     xcb_window_t window; /**<  */
776     int16_t      x; /**<  */
777     int16_t      y; /**<  */
778     uint16_t     width; /**<  */
779     uint16_t     height; /**<  */
780     uint16_t     border_width; /**<  */
781     uint8_t      override_redirect; /**<  */
782     uint8_t      pad1; /**<  */
783 } xcb_create_notify_event_t;
784 
785 /** Opcode for xcb_destroy_notify. */
786 #define XCB_DESTROY_NOTIFY 17
787 
788 /**
789  * @brief xcb_destroy_notify_event_t
790  **/
791 typedef struct xcb_destroy_notify_event_t {
792     uint8_t      response_type; /**<  */
793     uint8_t      pad0; /**<  */
794     uint16_t     sequence; /**<  */
795     xcb_window_t event; /**<  */
796     xcb_window_t window; /**<  */
797 } xcb_destroy_notify_event_t;
798 
799 /** Opcode for xcb_unmap_notify. */
800 #define XCB_UNMAP_NOTIFY 18
801 
802 /**
803  * @brief xcb_unmap_notify_event_t
804  **/
805 typedef struct xcb_unmap_notify_event_t {
806     uint8_t      response_type; /**<  */
807     uint8_t      pad0; /**<  */
808     uint16_t     sequence; /**<  */
809     xcb_window_t event; /**<  */
810     xcb_window_t window; /**<  */
811     uint8_t      from_configure; /**<  */
812     uint8_t      pad1[3]; /**<  */
813 } xcb_unmap_notify_event_t;
814 
815 /** Opcode for xcb_map_notify. */
816 #define XCB_MAP_NOTIFY 19
817 
818 /**
819  * @brief xcb_map_notify_event_t
820  **/
821 typedef struct xcb_map_notify_event_t {
822     uint8_t      response_type; /**<  */
823     uint8_t      pad0; /**<  */
824     uint16_t     sequence; /**<  */
825     xcb_window_t event; /**<  */
826     xcb_window_t window; /**<  */
827     uint8_t      override_redirect; /**<  */
828     uint8_t      pad1[3]; /**<  */
829 } xcb_map_notify_event_t;
830 
831 /** Opcode for xcb_map_request. */
832 #define XCB_MAP_REQUEST 20
833 
834 /**
835  * @brief xcb_map_request_event_t
836  **/
837 typedef struct xcb_map_request_event_t {
838     uint8_t      response_type; /**<  */
839     uint8_t      pad0; /**<  */
840     uint16_t     sequence; /**<  */
841     xcb_window_t parent; /**<  */
842     xcb_window_t window; /**<  */
843 } xcb_map_request_event_t;
844 
845 /** Opcode for xcb_reparent_notify. */
846 #define XCB_REPARENT_NOTIFY 21
847 
848 /**
849  * @brief xcb_reparent_notify_event_t
850  **/
851 typedef struct xcb_reparent_notify_event_t {
852     uint8_t      response_type; /**<  */
853     uint8_t      pad0; /**<  */
854     uint16_t     sequence; /**<  */
855     xcb_window_t event; /**<  */
856     xcb_window_t window; /**<  */
857     xcb_window_t parent; /**<  */
858     int16_t      x; /**<  */
859     int16_t      y; /**<  */
860     uint8_t      override_redirect; /**<  */
861     uint8_t      pad1[3]; /**<  */
862 } xcb_reparent_notify_event_t;
863 
864 /** Opcode for xcb_configure_notify. */
865 #define XCB_CONFIGURE_NOTIFY 22
866 
867 /**
868  * @brief xcb_configure_notify_event_t
869  **/
870 typedef struct xcb_configure_notify_event_t {
871     uint8_t      response_type; /**<  */
872     uint8_t      pad0; /**<  */
873     uint16_t     sequence; /**<  */
874     xcb_window_t event; /**<  */
875     xcb_window_t window; /**<  */
876     xcb_window_t above_sibling; /**<  */
877     int16_t      x; /**<  */
878     int16_t      y; /**<  */
879     uint16_t     width; /**<  */
880     uint16_t     height; /**<  */
881     uint16_t     border_width; /**<  */
882     uint8_t      override_redirect; /**<  */
883     uint8_t      pad1; /**<  */
884 } xcb_configure_notify_event_t;
885 
886 /** Opcode for xcb_configure_request. */
887 #define XCB_CONFIGURE_REQUEST 23
888 
889 /**
890  * @brief xcb_configure_request_event_t
891  **/
892 typedef struct xcb_configure_request_event_t {
893     uint8_t      response_type; /**<  */
894     uint8_t      stack_mode; /**<  */
895     uint16_t     sequence; /**<  */
896     xcb_window_t parent; /**<  */
897     xcb_window_t window; /**<  */
898     xcb_window_t sibling; /**<  */
899     int16_t      x; /**<  */
900     int16_t      y; /**<  */
901     uint16_t     width; /**<  */
902     uint16_t     height; /**<  */
903     uint16_t     border_width; /**<  */
904     uint16_t     value_mask; /**<  */
905 } xcb_configure_request_event_t;
906 
907 /** Opcode for xcb_gravity_notify. */
908 #define XCB_GRAVITY_NOTIFY 24
909 
910 /**
911  * @brief xcb_gravity_notify_event_t
912  **/
913 typedef struct xcb_gravity_notify_event_t {
914     uint8_t      response_type; /**<  */
915     uint8_t      pad0; /**<  */
916     uint16_t     sequence; /**<  */
917     xcb_window_t event; /**<  */
918     xcb_window_t window; /**<  */
919     int16_t      x; /**<  */
920     int16_t      y; /**<  */
921 } xcb_gravity_notify_event_t;
922 
923 /** Opcode for xcb_resize_request. */
924 #define XCB_RESIZE_REQUEST 25
925 
926 /**
927  * @brief xcb_resize_request_event_t
928  **/
929 typedef struct xcb_resize_request_event_t {
930     uint8_t      response_type; /**<  */
931     uint8_t      pad0; /**<  */
932     uint16_t     sequence; /**<  */
933     xcb_window_t window; /**<  */
934     uint16_t     width; /**<  */
935     uint16_t     height; /**<  */
936 } xcb_resize_request_event_t;
937 
938 typedef enum xcb_place_t {
939     XCB_PLACE_ON_TOP = 0,
940 /**< The window is now on top of all siblings. */
941 
942     XCB_PLACE_ON_BOTTOM = 1
943 /**< The window is now below all siblings. */
944 
945 } xcb_place_t;
946 
947 /** Opcode for xcb_circulate_notify. */
948 #define XCB_CIRCULATE_NOTIFY 26
949 
950 /**
951  * @brief xcb_circulate_notify_event_t
952  **/
953 typedef struct xcb_circulate_notify_event_t {
954     uint8_t      response_type; /**<  */
955     uint8_t      pad0; /**<  */
956     uint16_t     sequence; /**<  */
957     xcb_window_t event; /**<  */
958     xcb_window_t window; /**<  */
959     uint8_t      pad1[4]; /**<  */
960     uint8_t      place; /**<  */
961     uint8_t      pad2[3]; /**<  */
962 } xcb_circulate_notify_event_t;
963 
964 /** Opcode for xcb_circulate_request. */
965 #define XCB_CIRCULATE_REQUEST 27
966 
967 typedef xcb_circulate_notify_event_t xcb_circulate_request_event_t;
968 
969 typedef enum xcb_property_t {
970     XCB_PROPERTY_NEW_VALUE = 0,
971     XCB_PROPERTY_DELETE = 1
972 } xcb_property_t;
973 
974 /** Opcode for xcb_property_notify. */
975 #define XCB_PROPERTY_NOTIFY 28
976 
977 /**
978  * @brief xcb_property_notify_event_t
979  **/
980 typedef struct xcb_property_notify_event_t {
981     uint8_t         response_type; /**<  */
982     uint8_t         pad0; /**<  */
983     uint16_t        sequence; /**<  */
984     xcb_window_t    window; /**<  */
985     xcb_atom_t      atom; /**<  */
986     xcb_timestamp_t time; /**<  */
987     uint8_t         state; /**<  */
988     uint8_t         pad1[3]; /**<  */
989 } xcb_property_notify_event_t;
990 
991 /** Opcode for xcb_selection_clear. */
992 #define XCB_SELECTION_CLEAR 29
993 
994 /**
995  * @brief xcb_selection_clear_event_t
996  **/
997 typedef struct xcb_selection_clear_event_t {
998     uint8_t         response_type; /**<  */
999     uint8_t         pad0; /**<  */
1000     uint16_t        sequence; /**<  */
1001     xcb_timestamp_t time; /**<  */
1002     xcb_window_t    owner; /**<  */
1003     xcb_atom_t      selection; /**<  */
1004 } xcb_selection_clear_event_t;
1005 
1006 typedef enum xcb_time_t {
1007     XCB_TIME_CURRENT_TIME = 0
1008 } xcb_time_t;
1009 
1010 typedef enum xcb_atom_enum_t {
1011     XCB_ATOM_NONE = 0,
1012     XCB_ATOM_ANY = 0,
1013     XCB_ATOM_PRIMARY = 1,
1014     XCB_ATOM_SECONDARY = 2,
1015     XCB_ATOM_ARC = 3,
1016     XCB_ATOM_ATOM = 4,
1017     XCB_ATOM_BITMAP = 5,
1018     XCB_ATOM_CARDINAL = 6,
1019     XCB_ATOM_COLORMAP = 7,
1020     XCB_ATOM_CURSOR = 8,
1021     XCB_ATOM_CUT_BUFFER0 = 9,
1022     XCB_ATOM_CUT_BUFFER1 = 10,
1023     XCB_ATOM_CUT_BUFFER2 = 11,
1024     XCB_ATOM_CUT_BUFFER3 = 12,
1025     XCB_ATOM_CUT_BUFFER4 = 13,
1026     XCB_ATOM_CUT_BUFFER5 = 14,
1027     XCB_ATOM_CUT_BUFFER6 = 15,
1028     XCB_ATOM_CUT_BUFFER7 = 16,
1029     XCB_ATOM_DRAWABLE = 17,
1030     XCB_ATOM_FONT = 18,
1031     XCB_ATOM_INTEGER = 19,
1032     XCB_ATOM_PIXMAP = 20,
1033     XCB_ATOM_POINT = 21,
1034     XCB_ATOM_RECTANGLE = 22,
1035     XCB_ATOM_RESOURCE_MANAGER = 23,
1036     XCB_ATOM_RGB_COLOR_MAP = 24,
1037     XCB_ATOM_RGB_BEST_MAP = 25,
1038     XCB_ATOM_RGB_BLUE_MAP = 26,
1039     XCB_ATOM_RGB_DEFAULT_MAP = 27,
1040     XCB_ATOM_RGB_GRAY_MAP = 28,
1041     XCB_ATOM_RGB_GREEN_MAP = 29,
1042     XCB_ATOM_RGB_RED_MAP = 30,
1043     XCB_ATOM_STRING = 31,
1044     XCB_ATOM_VISUALID = 32,
1045     XCB_ATOM_WINDOW = 33,
1046     XCB_ATOM_WM_COMMAND = 34,
1047     XCB_ATOM_WM_HINTS = 35,
1048     XCB_ATOM_WM_CLIENT_MACHINE = 36,
1049     XCB_ATOM_WM_ICON_NAME = 37,
1050     XCB_ATOM_WM_ICON_SIZE = 38,
1051     XCB_ATOM_WM_NAME = 39,
1052     XCB_ATOM_WM_NORMAL_HINTS = 40,
1053     XCB_ATOM_WM_SIZE_HINTS = 41,
1054     XCB_ATOM_WM_ZOOM_HINTS = 42,
1055     XCB_ATOM_MIN_SPACE = 43,
1056     XCB_ATOM_NORM_SPACE = 44,
1057     XCB_ATOM_MAX_SPACE = 45,
1058     XCB_ATOM_END_SPACE = 46,
1059     XCB_ATOM_SUPERSCRIPT_X = 47,
1060     XCB_ATOM_SUPERSCRIPT_Y = 48,
1061     XCB_ATOM_SUBSCRIPT_X = 49,
1062     XCB_ATOM_SUBSCRIPT_Y = 50,
1063     XCB_ATOM_UNDERLINE_POSITION = 51,
1064     XCB_ATOM_UNDERLINE_THICKNESS = 52,
1065     XCB_ATOM_STRIKEOUT_ASCENT = 53,
1066     XCB_ATOM_STRIKEOUT_DESCENT = 54,
1067     XCB_ATOM_ITALIC_ANGLE = 55,
1068     XCB_ATOM_X_HEIGHT = 56,
1069     XCB_ATOM_QUAD_WIDTH = 57,
1070     XCB_ATOM_WEIGHT = 58,
1071     XCB_ATOM_POINT_SIZE = 59,
1072     XCB_ATOM_RESOLUTION = 60,
1073     XCB_ATOM_COPYRIGHT = 61,
1074     XCB_ATOM_NOTICE = 62,
1075     XCB_ATOM_FONT_NAME = 63,
1076     XCB_ATOM_FAMILY_NAME = 64,
1077     XCB_ATOM_FULL_NAME = 65,
1078     XCB_ATOM_CAP_HEIGHT = 66,
1079     XCB_ATOM_WM_CLASS = 67,
1080     XCB_ATOM_WM_TRANSIENT_FOR = 68
1081 } xcb_atom_enum_t;
1082 
1083 /** Opcode for xcb_selection_request. */
1084 #define XCB_SELECTION_REQUEST 30
1085 
1086 /**
1087  * @brief xcb_selection_request_event_t
1088  **/
1089 typedef struct xcb_selection_request_event_t {
1090     uint8_t         response_type; /**<  */
1091     uint8_t         pad0; /**<  */
1092     uint16_t        sequence; /**<  */
1093     xcb_timestamp_t time; /**<  */
1094     xcb_window_t    owner; /**<  */
1095     xcb_window_t    requestor; /**<  */
1096     xcb_atom_t      selection; /**<  */
1097     xcb_atom_t      target; /**<  */
1098     xcb_atom_t      property; /**<  */
1099 } xcb_selection_request_event_t;
1100 
1101 /** Opcode for xcb_selection_notify. */
1102 #define XCB_SELECTION_NOTIFY 31
1103 
1104 /**
1105  * @brief xcb_selection_notify_event_t
1106  **/
1107 typedef struct xcb_selection_notify_event_t {
1108     uint8_t         response_type; /**<  */
1109     uint8_t         pad0; /**<  */
1110     uint16_t        sequence; /**<  */
1111     xcb_timestamp_t time; /**<  */
1112     xcb_window_t    requestor; /**<  */
1113     xcb_atom_t      selection; /**<  */
1114     xcb_atom_t      target; /**<  */
1115     xcb_atom_t      property; /**<  */
1116 } xcb_selection_notify_event_t;
1117 
1118 typedef enum xcb_colormap_state_t {
1119     XCB_COLORMAP_STATE_UNINSTALLED = 0,
1120 /**< The colormap was uninstalled. */
1121 
1122     XCB_COLORMAP_STATE_INSTALLED = 1
1123 /**< The colormap was installed. */
1124 
1125 } xcb_colormap_state_t;
1126 
1127 typedef enum xcb_colormap_enum_t {
1128     XCB_COLORMAP_NONE = 0
1129 } xcb_colormap_enum_t;
1130 
1131 /** Opcode for xcb_colormap_notify. */
1132 #define XCB_COLORMAP_NOTIFY 32
1133 
1134 /**
1135  * @brief xcb_colormap_notify_event_t
1136  **/
1137 typedef struct xcb_colormap_notify_event_t {
1138     uint8_t        response_type; /**<  */
1139     uint8_t        pad0; /**<  */
1140     uint16_t       sequence; /**<  */
1141     xcb_window_t   window; /**<  */
1142     xcb_colormap_t colormap; /**<  */
1143     uint8_t        _new; /**<  */
1144     uint8_t        state; /**<  */
1145     uint8_t        pad1[2]; /**<  */
1146 } xcb_colormap_notify_event_t;
1147 
1148 /**
1149  * @brief xcb_client_message_data_t
1150  **/
1151 typedef union xcb_client_message_data_t {
1152     uint8_t  data8[20]; /**<  */
1153     uint16_t data16[10]; /**<  */
1154     uint32_t data32[5]; /**<  */
1155 } xcb_client_message_data_t;
1156 
1157 /**
1158  * @brief xcb_client_message_data_iterator_t
1159  **/
1160 typedef struct xcb_client_message_data_iterator_t {
1161     xcb_client_message_data_t *data; /**<  */
1162     int                        rem; /**<  */
1163     int                        index; /**<  */
1164 } xcb_client_message_data_iterator_t;
1165 
1166 /** Opcode for xcb_client_message. */
1167 #define XCB_CLIENT_MESSAGE 33
1168 
1169 /**
1170  * @brief xcb_client_message_event_t
1171  **/
1172 typedef struct xcb_client_message_event_t {
1173     uint8_t                   response_type; /**<  */
1174     uint8_t                   format; /**<  */
1175     uint16_t                  sequence; /**<  */
1176     xcb_window_t              window; /**<  */
1177     xcb_atom_t                type; /**<  */
1178     xcb_client_message_data_t data; /**<  */
1179 } xcb_client_message_event_t;
1180 
1181 typedef enum xcb_mapping_t {
1182     XCB_MAPPING_MODIFIER = 0,
1183     XCB_MAPPING_KEYBOARD = 1,
1184     XCB_MAPPING_POINTER = 2
1185 } xcb_mapping_t;
1186 
1187 /** Opcode for xcb_mapping_notify. */
1188 #define XCB_MAPPING_NOTIFY 34
1189 
1190 /**
1191  * @brief xcb_mapping_notify_event_t
1192  **/
1193 typedef struct xcb_mapping_notify_event_t {
1194     uint8_t       response_type; /**<  */
1195     uint8_t       pad0; /**<  */
1196     uint16_t      sequence; /**<  */
1197     uint8_t       request; /**<  */
1198     xcb_keycode_t first_keycode; /**<  */
1199     uint8_t       count; /**<  */
1200     uint8_t       pad1; /**<  */
1201 } xcb_mapping_notify_event_t;
1202 
1203 /** Opcode for xcb_ge_generic. */
1204 #define XCB_GE_GENERIC 35
1205 
1206 /**
1207  * @brief xcb_ge_generic_event_t
1208  **/
1209 typedef struct xcb_ge_generic_event_t {
1210     uint8_t  response_type; /**<  */
1211     uint8_t  extension; /**<  */
1212     uint16_t sequence; /**<  */
1213     uint32_t length; /**<  */
1214     uint16_t event_type; /**<  */
1215     uint8_t  pad0[22]; /**<  */
1216     uint32_t full_sequence; /**<  */
1217 } xcb_ge_generic_event_t;
1218 
1219 /** Opcode for xcb_request. */
1220 #define XCB_REQUEST 1
1221 
1222 /**
1223  * @brief xcb_request_error_t
1224  **/
1225 typedef struct xcb_request_error_t {
1226     uint8_t  response_type; /**<  */
1227     uint8_t  error_code; /**<  */
1228     uint16_t sequence; /**<  */
1229     uint32_t bad_value; /**<  */
1230     uint16_t minor_opcode; /**<  */
1231     uint8_t  major_opcode; /**<  */
1232     uint8_t  pad0; /**<  */
1233 } xcb_request_error_t;
1234 
1235 /** Opcode for xcb_value. */
1236 #define XCB_VALUE 2
1237 
1238 /**
1239  * @brief xcb_value_error_t
1240  **/
1241 typedef struct xcb_value_error_t {
1242     uint8_t  response_type; /**<  */
1243     uint8_t  error_code; /**<  */
1244     uint16_t sequence; /**<  */
1245     uint32_t bad_value; /**<  */
1246     uint16_t minor_opcode; /**<  */
1247     uint8_t  major_opcode; /**<  */
1248     uint8_t  pad0; /**<  */
1249 } xcb_value_error_t;
1250 
1251 /** Opcode for xcb_window. */
1252 #define XCB_WINDOW 3
1253 
1254 typedef xcb_value_error_t xcb_window_error_t;
1255 
1256 /** Opcode for xcb_pixmap. */
1257 #define XCB_PIXMAP 4
1258 
1259 typedef xcb_value_error_t xcb_pixmap_error_t;
1260 
1261 /** Opcode for xcb_atom. */
1262 #define XCB_ATOM 5
1263 
1264 typedef xcb_value_error_t xcb_atom_error_t;
1265 
1266 /** Opcode for xcb_cursor. */
1267 #define XCB_CURSOR 6
1268 
1269 typedef xcb_value_error_t xcb_cursor_error_t;
1270 
1271 /** Opcode for xcb_font. */
1272 #define XCB_FONT 7
1273 
1274 typedef xcb_value_error_t xcb_font_error_t;
1275 
1276 /** Opcode for xcb_match. */
1277 #define XCB_MATCH 8
1278 
1279 typedef xcb_request_error_t xcb_match_error_t;
1280 
1281 /** Opcode for xcb_drawable. */
1282 #define XCB_DRAWABLE 9
1283 
1284 typedef xcb_value_error_t xcb_drawable_error_t;
1285 
1286 /** Opcode for xcb_access. */
1287 #define XCB_ACCESS 10
1288 
1289 typedef xcb_request_error_t xcb_access_error_t;
1290 
1291 /** Opcode for xcb_alloc. */
1292 #define XCB_ALLOC 11
1293 
1294 typedef xcb_request_error_t xcb_alloc_error_t;
1295 
1296 /** Opcode for xcb_colormap. */
1297 #define XCB_COLORMAP 12
1298 
1299 typedef xcb_value_error_t xcb_colormap_error_t;
1300 
1301 /** Opcode for xcb_g_context. */
1302 #define XCB_G_CONTEXT 13
1303 
1304 typedef xcb_value_error_t xcb_g_context_error_t;
1305 
1306 /** Opcode for xcb_id_choice. */
1307 #define XCB_ID_CHOICE 14
1308 
1309 typedef xcb_value_error_t xcb_id_choice_error_t;
1310 
1311 /** Opcode for xcb_name. */
1312 #define XCB_NAME 15
1313 
1314 typedef xcb_request_error_t xcb_name_error_t;
1315 
1316 /** Opcode for xcb_length. */
1317 #define XCB_LENGTH 16
1318 
1319 typedef xcb_request_error_t xcb_length_error_t;
1320 
1321 /** Opcode for xcb_implementation. */
1322 #define XCB_IMPLEMENTATION 17
1323 
1324 typedef xcb_request_error_t xcb_implementation_error_t;
1325 
1326 typedef enum xcb_window_class_t {
1327     XCB_WINDOW_CLASS_COPY_FROM_PARENT = 0,
1328     XCB_WINDOW_CLASS_INPUT_OUTPUT = 1,
1329     XCB_WINDOW_CLASS_INPUT_ONLY = 2
1330 } xcb_window_class_t;
1331 
1332 typedef enum xcb_cw_t {
1333     XCB_CW_BACK_PIXMAP = 1,
1334 /**< Overrides the default background-pixmap. The background pixmap and window must
1335 have the same root and same depth. Any size pixmap can be used, although some
1336 sizes may be faster than others.
1337 
1338 If `XCB_BACK_PIXMAP_NONE` is specified, the window has no defined background.
1339 The server may fill the contents with the previous screen contents or with
1340 contents of its own choosing.
1341 
1342 If `XCB_BACK_PIXMAP_PARENT_RELATIVE` is specified, the parent's background is
1343 used, but the window must have the same depth as the parent (or a Match error
1344 results).   The parent's background is tracked, and the current version is
1345 used each time the window background is required. */
1346 
1347     XCB_CW_BACK_PIXEL = 2,
1348 /**< Overrides `BackPixmap`. A pixmap of undefined size filled with the specified
1349 background pixel is used for the background. Range-checking is not performed,
1350 the background pixel is truncated to the appropriate number of bits. */
1351 
1352     XCB_CW_BORDER_PIXMAP = 4,
1353 /**< Overrides the default border-pixmap. The border pixmap and window must have the
1354 same root and the same depth. Any size pixmap can be used, although some sizes
1355 may be faster than others.
1356 
1357 The special value `XCB_COPY_FROM_PARENT` means the parent's border pixmap is
1358 copied (subsequent changes to the parent's border attribute do not affect the
1359 child), but the window must have the same depth as the parent. */
1360 
1361     XCB_CW_BORDER_PIXEL = 8,
1362 /**< Overrides `BorderPixmap`. A pixmap of undefined size filled with the specified
1363 border pixel is used for the border. Range checking is not performed on the
1364 border-pixel value, it is truncated to the appropriate number of bits. */
1365 
1366     XCB_CW_BIT_GRAVITY = 16,
1367 /**< Defines which region of the window should be retained if the window is resized. */
1368 
1369     XCB_CW_WIN_GRAVITY = 32,
1370 /**< Defines how the window should be repositioned if the parent is resized (see
1371 `ConfigureWindow`). */
1372 
1373     XCB_CW_BACKING_STORE = 64,
1374 /**< A backing-store of `WhenMapped` advises the server that maintaining contents of
1375 obscured regions when the window is mapped would be beneficial. A backing-store
1376 of `Always` advises the server that maintaining contents even when the window
1377 is unmapped would be beneficial. In this case, the server may generate an
1378 exposure event when the window is created. A value of `NotUseful` advises the
1379 server that maintaining contents is unnecessary, although a server may still
1380 choose to maintain contents while the window is mapped. Note that if the server
1381 maintains contents, then the server should maintain complete contents not just
1382 the region within the parent boundaries, even if the window is larger than its
1383 parent. While the server maintains contents, exposure events will not normally
1384 be generated, but the server may stop maintaining contents at any time. */
1385 
1386     XCB_CW_BACKING_PLANES = 128,
1387 /**< The backing-planes indicates (with bits set to 1) which bit planes of the
1388 window hold dynamic data that must be preserved in backing-stores and during
1389 save-unders. */
1390 
1391     XCB_CW_BACKING_PIXEL = 256,
1392 /**< The backing-pixel specifies what value to use in planes not covered by
1393 backing-planes. The server is free to save only the specified bit planes in the
1394 backing-store or save-under and regenerate the remaining planes with the
1395 specified pixel value. Any bits beyond the specified depth of the window in
1396 these values are simply ignored. */
1397 
1398     XCB_CW_OVERRIDE_REDIRECT = 512,
1399 /**< The override-redirect specifies whether map and configure requests on this
1400 window should override a SubstructureRedirect on the parent, typically to
1401 inform a window manager not to tamper with the window. */
1402 
1403     XCB_CW_SAVE_UNDER = 1024,
1404 /**< If 1, the server is advised that when this window is mapped, saving the
1405 contents of windows it obscures would be beneficial. */
1406 
1407     XCB_CW_EVENT_MASK = 2048,
1408 /**< The event-mask defines which events the client is interested in for this window
1409 (or for some event types, inferiors of the window). */
1410 
1411     XCB_CW_DONT_PROPAGATE = 4096,
1412 /**< The do-not-propagate-mask defines which events should not be propagated to
1413 ancestor windows when no client has the event type selected in this window. */
1414 
1415     XCB_CW_COLORMAP = 8192,
1416 /**< The colormap specifies the colormap that best reflects the true colors of the window. Servers
1417 capable of supporting multiple hardware colormaps may use this information, and window man-
1418 agers may use it for InstallColormap requests. The colormap must have the same visual type
1419 and root as the window (or a Match error results). If CopyFromParent is specified, the parent's
1420 colormap is copied (subsequent changes to the parent's colormap attribute do not affect the child).
1421 However, the window must have the same visual type as the parent (or a Match error results),
1422 and the parent must not have a colormap of None (or a Match error results). For an explanation
1423 of None, see FreeColormap request. The colormap is copied by sharing the colormap object
1424 between the child and the parent, not by making a complete copy of the colormap contents. */
1425 
1426     XCB_CW_CURSOR = 16384
1427 /**< If a cursor is specified, it will be used whenever the pointer is in the window. If None is speci-
1428 fied, the parent's cursor will be used when the pointer is in the window, and any change in the
1429 parent's cursor will cause an immediate change in the displayed cursor. */
1430 
1431 } xcb_cw_t;
1432 
1433 typedef enum xcb_back_pixmap_t {
1434     XCB_BACK_PIXMAP_NONE = 0,
1435     XCB_BACK_PIXMAP_PARENT_RELATIVE = 1
1436 } xcb_back_pixmap_t;
1437 
1438 typedef enum xcb_gravity_t {
1439     XCB_GRAVITY_BIT_FORGET = 0,
1440     XCB_GRAVITY_WIN_UNMAP = 0,
1441     XCB_GRAVITY_NORTH_WEST = 1,
1442     XCB_GRAVITY_NORTH = 2,
1443     XCB_GRAVITY_NORTH_EAST = 3,
1444     XCB_GRAVITY_WEST = 4,
1445     XCB_GRAVITY_CENTER = 5,
1446     XCB_GRAVITY_EAST = 6,
1447     XCB_GRAVITY_SOUTH_WEST = 7,
1448     XCB_GRAVITY_SOUTH = 8,
1449     XCB_GRAVITY_SOUTH_EAST = 9,
1450     XCB_GRAVITY_STATIC = 10
1451 } xcb_gravity_t;
1452 
1453 /** Opcode for xcb_create_window. */
1454 #define XCB_CREATE_WINDOW 1
1455 
1456 /**
1457  * @brief xcb_create_window_request_t
1458  **/
1459 typedef struct xcb_create_window_request_t {
1460     uint8_t        major_opcode; /**<  */
1461     uint8_t        depth; /**<  */
1462     uint16_t       length; /**<  */
1463     xcb_window_t   wid; /**<  */
1464     xcb_window_t   parent; /**<  */
1465     int16_t        x; /**<  */
1466     int16_t        y; /**<  */
1467     uint16_t       width; /**<  */
1468     uint16_t       height; /**<  */
1469     uint16_t       border_width; /**<  */
1470     uint16_t       _class; /**<  */
1471     xcb_visualid_t visual; /**<  */
1472     uint32_t       value_mask; /**<  */
1473 } xcb_create_window_request_t;
1474 
1475 /** Opcode for xcb_change_window_attributes. */
1476 #define XCB_CHANGE_WINDOW_ATTRIBUTES 2
1477 
1478 /**
1479  * @brief xcb_change_window_attributes_request_t
1480  **/
1481 typedef struct xcb_change_window_attributes_request_t {
1482     uint8_t      major_opcode; /**<  */
1483     uint8_t      pad0; /**<  */
1484     uint16_t     length; /**<  */
1485     xcb_window_t window; /**<  */
1486     uint32_t     value_mask; /**<  */
1487 } xcb_change_window_attributes_request_t;
1488 
1489 typedef enum xcb_map_state_t {
1490     XCB_MAP_STATE_UNMAPPED = 0,
1491     XCB_MAP_STATE_UNVIEWABLE = 1,
1492     XCB_MAP_STATE_VIEWABLE = 2
1493 } xcb_map_state_t;
1494 
1495 /**
1496  * @brief xcb_get_window_attributes_cookie_t
1497  **/
1498 typedef struct xcb_get_window_attributes_cookie_t {
1499     unsigned int sequence; /**<  */
1500 } xcb_get_window_attributes_cookie_t;
1501 
1502 /** Opcode for xcb_get_window_attributes. */
1503 #define XCB_GET_WINDOW_ATTRIBUTES 3
1504 
1505 /**
1506  * @brief xcb_get_window_attributes_request_t
1507  **/
1508 typedef struct xcb_get_window_attributes_request_t {
1509     uint8_t      major_opcode; /**<  */
1510     uint8_t      pad0; /**<  */
1511     uint16_t     length; /**<  */
1512     xcb_window_t window; /**<  */
1513 } xcb_get_window_attributes_request_t;
1514 
1515 /**
1516  * @brief xcb_get_window_attributes_reply_t
1517  **/
1518 typedef struct xcb_get_window_attributes_reply_t {
1519     uint8_t        response_type; /**<  */
1520     uint8_t        backing_store; /**<  */
1521     uint16_t       sequence; /**<  */
1522     uint32_t       length; /**<  */
1523     xcb_visualid_t visual; /**<  */
1524     uint16_t       _class; /**<  */
1525     uint8_t        bit_gravity; /**<  */
1526     uint8_t        win_gravity; /**<  */
1527     uint32_t       backing_planes; /**<  */
1528     uint32_t       backing_pixel; /**<  */
1529     uint8_t        save_under; /**<  */
1530     uint8_t        map_is_installed; /**<  */
1531     uint8_t        map_state; /**<  */
1532     uint8_t        override_redirect; /**<  */
1533     xcb_colormap_t colormap; /**<  */
1534     uint32_t       all_event_masks; /**<  */
1535     uint32_t       your_event_mask; /**<  */
1536     uint16_t       do_not_propagate_mask; /**<  */
1537     uint8_t        pad0[2]; /**<  */
1538 } xcb_get_window_attributes_reply_t;
1539 
1540 /** Opcode for xcb_destroy_window. */
1541 #define XCB_DESTROY_WINDOW 4
1542 
1543 /**
1544  * @brief xcb_destroy_window_request_t
1545  **/
1546 typedef struct xcb_destroy_window_request_t {
1547     uint8_t      major_opcode; /**<  */
1548     uint8_t      pad0; /**<  */
1549     uint16_t     length; /**<  */
1550     xcb_window_t window; /**<  */
1551 } xcb_destroy_window_request_t;
1552 
1553 /** Opcode for xcb_destroy_subwindows. */
1554 #define XCB_DESTROY_SUBWINDOWS 5
1555 
1556 /**
1557  * @brief xcb_destroy_subwindows_request_t
1558  **/
1559 typedef struct xcb_destroy_subwindows_request_t {
1560     uint8_t      major_opcode; /**<  */
1561     uint8_t      pad0; /**<  */
1562     uint16_t     length; /**<  */
1563     xcb_window_t window; /**<  */
1564 } xcb_destroy_subwindows_request_t;
1565 
1566 typedef enum xcb_set_mode_t {
1567     XCB_SET_MODE_INSERT = 0,
1568     XCB_SET_MODE_DELETE = 1
1569 } xcb_set_mode_t;
1570 
1571 /** Opcode for xcb_change_save_set. */
1572 #define XCB_CHANGE_SAVE_SET 6
1573 
1574 /**
1575  * @brief xcb_change_save_set_request_t
1576  **/
1577 typedef struct xcb_change_save_set_request_t {
1578     uint8_t      major_opcode; /**<  */
1579     uint8_t      mode; /**<  */
1580     uint16_t     length; /**<  */
1581     xcb_window_t window; /**<  */
1582 } xcb_change_save_set_request_t;
1583 
1584 /** Opcode for xcb_reparent_window. */
1585 #define XCB_REPARENT_WINDOW 7
1586 
1587 /**
1588  * @brief xcb_reparent_window_request_t
1589  **/
1590 typedef struct xcb_reparent_window_request_t {
1591     uint8_t      major_opcode; /**<  */
1592     uint8_t      pad0; /**<  */
1593     uint16_t     length; /**<  */
1594     xcb_window_t window; /**<  */
1595     xcb_window_t parent; /**<  */
1596     int16_t      x; /**<  */
1597     int16_t      y; /**<  */
1598 } xcb_reparent_window_request_t;
1599 
1600 /** Opcode for xcb_map_window. */
1601 #define XCB_MAP_WINDOW 8
1602 
1603 /**
1604  * @brief xcb_map_window_request_t
1605  **/
1606 typedef struct xcb_map_window_request_t {
1607     uint8_t      major_opcode; /**<  */
1608     uint8_t      pad0; /**<  */
1609     uint16_t     length; /**<  */
1610     xcb_window_t window; /**<  */
1611 } xcb_map_window_request_t;
1612 
1613 /** Opcode for xcb_map_subwindows. */
1614 #define XCB_MAP_SUBWINDOWS 9
1615 
1616 /**
1617  * @brief xcb_map_subwindows_request_t
1618  **/
1619 typedef struct xcb_map_subwindows_request_t {
1620     uint8_t      major_opcode; /**<  */
1621     uint8_t      pad0; /**<  */
1622     uint16_t     length; /**<  */
1623     xcb_window_t window; /**<  */
1624 } xcb_map_subwindows_request_t;
1625 
1626 /** Opcode for xcb_unmap_window. */
1627 #define XCB_UNMAP_WINDOW 10
1628 
1629 /**
1630  * @brief xcb_unmap_window_request_t
1631  **/
1632 typedef struct xcb_unmap_window_request_t {
1633     uint8_t      major_opcode; /**<  */
1634     uint8_t      pad0; /**<  */
1635     uint16_t     length; /**<  */
1636     xcb_window_t window; /**<  */
1637 } xcb_unmap_window_request_t;
1638 
1639 /** Opcode for xcb_unmap_subwindows. */
1640 #define XCB_UNMAP_SUBWINDOWS 11
1641 
1642 /**
1643  * @brief xcb_unmap_subwindows_request_t
1644  **/
1645 typedef struct xcb_unmap_subwindows_request_t {
1646     uint8_t      major_opcode; /**<  */
1647     uint8_t      pad0; /**<  */
1648     uint16_t     length; /**<  */
1649     xcb_window_t window; /**<  */
1650 } xcb_unmap_subwindows_request_t;
1651 
1652 typedef enum xcb_config_window_t {
1653     XCB_CONFIG_WINDOW_X = 1,
1654     XCB_CONFIG_WINDOW_Y = 2,
1655     XCB_CONFIG_WINDOW_WIDTH = 4,
1656     XCB_CONFIG_WINDOW_HEIGHT = 8,
1657     XCB_CONFIG_WINDOW_BORDER_WIDTH = 16,
1658     XCB_CONFIG_WINDOW_SIBLING = 32,
1659     XCB_CONFIG_WINDOW_STACK_MODE = 64
1660 } xcb_config_window_t;
1661 
1662 typedef enum xcb_stack_mode_t {
1663     XCB_STACK_MODE_ABOVE = 0,
1664     XCB_STACK_MODE_BELOW = 1,
1665     XCB_STACK_MODE_TOP_IF = 2,
1666     XCB_STACK_MODE_BOTTOM_IF = 3,
1667     XCB_STACK_MODE_OPPOSITE = 4
1668 } xcb_stack_mode_t;
1669 
1670 /** Opcode for xcb_configure_window. */
1671 #define XCB_CONFIGURE_WINDOW 12
1672 
1673 /**
1674  * @brief xcb_configure_window_request_t
1675  **/
1676 typedef struct xcb_configure_window_request_t {
1677     uint8_t      major_opcode; /**<  */
1678     uint8_t      pad0; /**<  */
1679     uint16_t     length; /**<  */
1680     xcb_window_t window; /**<  */
1681     uint16_t     value_mask; /**<  */
1682     uint8_t      pad1[2]; /**<  */
1683 } xcb_configure_window_request_t;
1684 
1685 typedef enum xcb_circulate_t {
1686     XCB_CIRCULATE_RAISE_LOWEST = 0,
1687     XCB_CIRCULATE_LOWER_HIGHEST = 1
1688 } xcb_circulate_t;
1689 
1690 /** Opcode for xcb_circulate_window. */
1691 #define XCB_CIRCULATE_WINDOW 13
1692 
1693 /**
1694  * @brief xcb_circulate_window_request_t
1695  **/
1696 typedef struct xcb_circulate_window_request_t {
1697     uint8_t      major_opcode; /**<  */
1698     uint8_t      direction; /**<  */
1699     uint16_t     length; /**<  */
1700     xcb_window_t window; /**<  */
1701 } xcb_circulate_window_request_t;
1702 
1703 /**
1704  * @brief xcb_get_geometry_cookie_t
1705  **/
1706 typedef struct xcb_get_geometry_cookie_t {
1707     unsigned int sequence; /**<  */
1708 } xcb_get_geometry_cookie_t;
1709 
1710 /** Opcode for xcb_get_geometry. */
1711 #define XCB_GET_GEOMETRY 14
1712 
1713 /**
1714  * @brief xcb_get_geometry_request_t
1715  **/
1716 typedef struct xcb_get_geometry_request_t {
1717     uint8_t        major_opcode; /**<  */
1718     uint8_t        pad0; /**<  */
1719     uint16_t       length; /**<  */
1720     xcb_drawable_t drawable; /**<  */
1721 } xcb_get_geometry_request_t;
1722 
1723 /**
1724  * @brief xcb_get_geometry_reply_t
1725  **/
1726 typedef struct xcb_get_geometry_reply_t {
1727     uint8_t      response_type; /**<  */
1728     uint8_t      depth; /**<  */
1729     uint16_t     sequence; /**<  */
1730     uint32_t     length; /**<  */
1731     xcb_window_t root; /**<  */
1732     int16_t      x; /**<  */
1733     int16_t      y; /**<  */
1734     uint16_t     width; /**<  */
1735     uint16_t     height; /**<  */
1736     uint16_t     border_width; /**<  */
1737     uint8_t      pad0[2]; /**<  */
1738 } xcb_get_geometry_reply_t;
1739 
1740 /**
1741  * @brief xcb_query_tree_cookie_t
1742  **/
1743 typedef struct xcb_query_tree_cookie_t {
1744     unsigned int sequence; /**<  */
1745 } xcb_query_tree_cookie_t;
1746 
1747 /** Opcode for xcb_query_tree. */
1748 #define XCB_QUERY_TREE 15
1749 
1750 /**
1751  * @brief xcb_query_tree_request_t
1752  **/
1753 typedef struct xcb_query_tree_request_t {
1754     uint8_t      major_opcode; /**<  */
1755     uint8_t      pad0; /**<  */
1756     uint16_t     length; /**<  */
1757     xcb_window_t window; /**<  */
1758 } xcb_query_tree_request_t;
1759 
1760 /**
1761  * @brief xcb_query_tree_reply_t
1762  **/
1763 typedef struct xcb_query_tree_reply_t {
1764     uint8_t      response_type; /**<  */
1765     uint8_t      pad0; /**<  */
1766     uint16_t     sequence; /**<  */
1767     uint32_t     length; /**<  */
1768     xcb_window_t root; /**<  */
1769     xcb_window_t parent; /**<  */
1770     uint16_t     children_len; /**<  */
1771     uint8_t      pad1[14]; /**<  */
1772 } xcb_query_tree_reply_t;
1773 
1774 /**
1775  * @brief xcb_intern_atom_cookie_t
1776  **/
1777 typedef struct xcb_intern_atom_cookie_t {
1778     unsigned int sequence; /**<  */
1779 } xcb_intern_atom_cookie_t;
1780 
1781 /** Opcode for xcb_intern_atom. */
1782 #define XCB_INTERN_ATOM 16
1783 
1784 /**
1785  * @brief xcb_intern_atom_request_t
1786  **/
1787 typedef struct xcb_intern_atom_request_t {
1788     uint8_t  major_opcode; /**<  */
1789     uint8_t  only_if_exists; /**<  */
1790     uint16_t length; /**<  */
1791     uint16_t name_len; /**<  */
1792     uint8_t  pad0[2]; /**<  */
1793 } xcb_intern_atom_request_t;
1794 
1795 /**
1796  * @brief xcb_intern_atom_reply_t
1797  **/
1798 typedef struct xcb_intern_atom_reply_t {
1799     uint8_t    response_type; /**<  */
1800     uint8_t    pad0; /**<  */
1801     uint16_t   sequence; /**<  */
1802     uint32_t   length; /**<  */
1803     xcb_atom_t atom; /**<  */
1804 } xcb_intern_atom_reply_t;
1805 
1806 /**
1807  * @brief xcb_get_atom_name_cookie_t
1808  **/
1809 typedef struct xcb_get_atom_name_cookie_t {
1810     unsigned int sequence; /**<  */
1811 } xcb_get_atom_name_cookie_t;
1812 
1813 /** Opcode for xcb_get_atom_name. */
1814 #define XCB_GET_ATOM_NAME 17
1815 
1816 /**
1817  * @brief xcb_get_atom_name_request_t
1818  **/
1819 typedef struct xcb_get_atom_name_request_t {
1820     uint8_t    major_opcode; /**<  */
1821     uint8_t    pad0; /**<  */
1822     uint16_t   length; /**<  */
1823     xcb_atom_t atom; /**<  */
1824 } xcb_get_atom_name_request_t;
1825 
1826 /**
1827  * @brief xcb_get_atom_name_reply_t
1828  **/
1829 typedef struct xcb_get_atom_name_reply_t {
1830     uint8_t  response_type; /**<  */
1831     uint8_t  pad0; /**<  */
1832     uint16_t sequence; /**<  */
1833     uint32_t length; /**<  */
1834     uint16_t name_len; /**<  */
1835     uint8_t  pad1[22]; /**<  */
1836 } xcb_get_atom_name_reply_t;
1837 
1838 typedef enum xcb_prop_mode_t {
1839     XCB_PROP_MODE_REPLACE = 0,
1840 /**< Discard the previous property value and store the new data. */
1841 
1842     XCB_PROP_MODE_PREPEND = 1,
1843 /**< Insert the new data before the beginning of existing data. The `format` must
1844 match existing property value. If the property is undefined, it is treated as
1845 defined with the correct type and format with zero-length data. */
1846 
1847     XCB_PROP_MODE_APPEND = 2
1848 /**< Insert the new data after the beginning of existing data. The `format` must
1849 match existing property value. If the property is undefined, it is treated as
1850 defined with the correct type and format with zero-length data. */
1851 
1852 } xcb_prop_mode_t;
1853 
1854 /** Opcode for xcb_change_property. */
1855 #define XCB_CHANGE_PROPERTY 18
1856 
1857 /**
1858  * @brief xcb_change_property_request_t
1859  **/
1860 typedef struct xcb_change_property_request_t {
1861     uint8_t      major_opcode; /**<  */
1862     uint8_t      mode; /**<  */
1863     uint16_t     length; /**<  */
1864     xcb_window_t window; /**<  */
1865     xcb_atom_t   property; /**<  */
1866     xcb_atom_t   type; /**<  */
1867     uint8_t      format; /**<  */
1868     uint8_t      pad0[3]; /**<  */
1869     uint32_t     data_len; /**<  */
1870 } xcb_change_property_request_t;
1871 
1872 /** Opcode for xcb_delete_property. */
1873 #define XCB_DELETE_PROPERTY 19
1874 
1875 /**
1876  * @brief xcb_delete_property_request_t
1877  **/
1878 typedef struct xcb_delete_property_request_t {
1879     uint8_t      major_opcode; /**<  */
1880     uint8_t      pad0; /**<  */
1881     uint16_t     length; /**<  */
1882     xcb_window_t window; /**<  */
1883     xcb_atom_t   property; /**<  */
1884 } xcb_delete_property_request_t;
1885 
1886 typedef enum xcb_get_property_type_t {
1887     XCB_GET_PROPERTY_TYPE_ANY = 0
1888 } xcb_get_property_type_t;
1889 
1890 /**
1891  * @brief xcb_get_property_cookie_t
1892  **/
1893 typedef struct xcb_get_property_cookie_t {
1894     unsigned int sequence; /**<  */
1895 } xcb_get_property_cookie_t;
1896 
1897 /** Opcode for xcb_get_property. */
1898 #define XCB_GET_PROPERTY 20
1899 
1900 /**
1901  * @brief xcb_get_property_request_t
1902  **/
1903 typedef struct xcb_get_property_request_t {
1904     uint8_t      major_opcode; /**<  */
1905     uint8_t      _delete; /**<  */
1906     uint16_t     length; /**<  */
1907     xcb_window_t window; /**<  */
1908     xcb_atom_t   property; /**<  */
1909     xcb_atom_t   type; /**<  */
1910     uint32_t     long_offset; /**<  */
1911     uint32_t     long_length; /**<  */
1912 } xcb_get_property_request_t;
1913 
1914 /**
1915  * @brief xcb_get_property_reply_t
1916  **/
1917 typedef struct xcb_get_property_reply_t {
1918     uint8_t    response_type; /**<  */
1919     uint8_t    format; /**<  */
1920     uint16_t   sequence; /**<  */
1921     uint32_t   length; /**<  */
1922     xcb_atom_t type; /**<  */
1923     uint32_t   bytes_after; /**<  */
1924     uint32_t   value_len; /**<  */
1925     uint8_t    pad0[12]; /**<  */
1926 } xcb_get_property_reply_t;
1927 
1928 /**
1929  * @brief xcb_list_properties_cookie_t
1930  **/
1931 typedef struct xcb_list_properties_cookie_t {
1932     unsigned int sequence; /**<  */
1933 } xcb_list_properties_cookie_t;
1934 
1935 /** Opcode for xcb_list_properties. */
1936 #define XCB_LIST_PROPERTIES 21
1937 
1938 /**
1939  * @brief xcb_list_properties_request_t
1940  **/
1941 typedef struct xcb_list_properties_request_t {
1942     uint8_t      major_opcode; /**<  */
1943     uint8_t      pad0; /**<  */
1944     uint16_t     length; /**<  */
1945     xcb_window_t window; /**<  */
1946 } xcb_list_properties_request_t;
1947 
1948 /**
1949  * @brief xcb_list_properties_reply_t
1950  **/
1951 typedef struct xcb_list_properties_reply_t {
1952     uint8_t  response_type; /**<  */
1953     uint8_t  pad0; /**<  */
1954     uint16_t sequence; /**<  */
1955     uint32_t length; /**<  */
1956     uint16_t atoms_len; /**<  */
1957     uint8_t  pad1[22]; /**<  */
1958 } xcb_list_properties_reply_t;
1959 
1960 /** Opcode for xcb_set_selection_owner. */
1961 #define XCB_SET_SELECTION_OWNER 22
1962 
1963 /**
1964  * @brief xcb_set_selection_owner_request_t
1965  **/
1966 typedef struct xcb_set_selection_owner_request_t {
1967     uint8_t         major_opcode; /**<  */
1968     uint8_t         pad0; /**<  */
1969     uint16_t        length; /**<  */
1970     xcb_window_t    owner; /**<  */
1971     xcb_atom_t      selection; /**<  */
1972     xcb_timestamp_t time; /**<  */
1973 } xcb_set_selection_owner_request_t;
1974 
1975 /**
1976  * @brief xcb_get_selection_owner_cookie_t
1977  **/
1978 typedef struct xcb_get_selection_owner_cookie_t {
1979     unsigned int sequence; /**<  */
1980 } xcb_get_selection_owner_cookie_t;
1981 
1982 /** Opcode for xcb_get_selection_owner. */
1983 #define XCB_GET_SELECTION_OWNER 23
1984 
1985 /**
1986  * @brief xcb_get_selection_owner_request_t
1987  **/
1988 typedef struct xcb_get_selection_owner_request_t {
1989     uint8_t    major_opcode; /**<  */
1990     uint8_t    pad0; /**<  */
1991     uint16_t   length; /**<  */
1992     xcb_atom_t selection; /**<  */
1993 } xcb_get_selection_owner_request_t;
1994 
1995 /**
1996  * @brief xcb_get_selection_owner_reply_t
1997  **/
1998 typedef struct xcb_get_selection_owner_reply_t {
1999     uint8_t      response_type; /**<  */
2000     uint8_t      pad0; /**<  */
2001     uint16_t     sequence; /**<  */
2002     uint32_t     length; /**<  */
2003     xcb_window_t owner; /**<  */
2004 } xcb_get_selection_owner_reply_t;
2005 
2006 /** Opcode for xcb_convert_selection. */
2007 #define XCB_CONVERT_SELECTION 24
2008 
2009 /**
2010  * @brief xcb_convert_selection_request_t
2011  **/
2012 typedef struct xcb_convert_selection_request_t {
2013     uint8_t         major_opcode; /**<  */
2014     uint8_t         pad0; /**<  */
2015     uint16_t        length; /**<  */
2016     xcb_window_t    requestor; /**<  */
2017     xcb_atom_t      selection; /**<  */
2018     xcb_atom_t      target; /**<  */
2019     xcb_atom_t      property; /**<  */
2020     xcb_timestamp_t time; /**<  */
2021 } xcb_convert_selection_request_t;
2022 
2023 typedef enum xcb_send_event_dest_t {
2024     XCB_SEND_EVENT_DEST_POINTER_WINDOW = 0,
2025     XCB_SEND_EVENT_DEST_ITEM_FOCUS = 1
2026 } xcb_send_event_dest_t;
2027 
2028 /** Opcode for xcb_send_event. */
2029 #define XCB_SEND_EVENT 25
2030 
2031 /**
2032  * @brief xcb_send_event_request_t
2033  **/
2034 typedef struct xcb_send_event_request_t {
2035     uint8_t      major_opcode; /**<  */
2036     uint8_t      propagate; /**<  */
2037     uint16_t     length; /**<  */
2038     xcb_window_t destination; /**<  */
2039     uint32_t     event_mask; /**<  */
2040     char         event[32]; /**<  */
2041 } xcb_send_event_request_t;
2042 
2043 typedef enum xcb_grab_mode_t {
2044     XCB_GRAB_MODE_SYNC = 0,
2045 /**< The state of the keyboard appears to freeze: No further keyboard events are
2046 generated by the server until the grabbing client issues a releasing
2047 `AllowEvents` request or until the keyboard grab is released. */
2048 
2049     XCB_GRAB_MODE_ASYNC = 1
2050 /**< Keyboard event processing continues normally. */
2051 
2052 } xcb_grab_mode_t;
2053 
2054 typedef enum xcb_grab_status_t {
2055     XCB_GRAB_STATUS_SUCCESS = 0,
2056     XCB_GRAB_STATUS_ALREADY_GRABBED = 1,
2057     XCB_GRAB_STATUS_INVALID_TIME = 2,
2058     XCB_GRAB_STATUS_NOT_VIEWABLE = 3,
2059     XCB_GRAB_STATUS_FROZEN = 4
2060 } xcb_grab_status_t;
2061 
2062 typedef enum xcb_cursor_enum_t {
2063     XCB_CURSOR_NONE = 0
2064 } xcb_cursor_enum_t;
2065 
2066 /**
2067  * @brief xcb_grab_pointer_cookie_t
2068  **/
2069 typedef struct xcb_grab_pointer_cookie_t {
2070     unsigned int sequence; /**<  */
2071 } xcb_grab_pointer_cookie_t;
2072 
2073 /** Opcode for xcb_grab_pointer. */
2074 #define XCB_GRAB_POINTER 26
2075 
2076 /**
2077  * @brief xcb_grab_pointer_request_t
2078  **/
2079 typedef struct xcb_grab_pointer_request_t {
2080     uint8_t         major_opcode; /**<  */
2081     uint8_t         owner_events; /**<  */
2082     uint16_t        length; /**<  */
2083     xcb_window_t    grab_window; /**<  */
2084     uint16_t        event_mask; /**<  */
2085     uint8_t         pointer_mode; /**<  */
2086     uint8_t         keyboard_mode; /**<  */
2087     xcb_window_t    confine_to; /**<  */
2088     xcb_cursor_t    cursor; /**<  */
2089     xcb_timestamp_t time; /**<  */
2090 } xcb_grab_pointer_request_t;
2091 
2092 /**
2093  * @brief xcb_grab_pointer_reply_t
2094  **/
2095 typedef struct xcb_grab_pointer_reply_t {
2096     uint8_t  response_type; /**<  */
2097     uint8_t  status; /**<  */
2098     uint16_t sequence; /**<  */
2099     uint32_t length; /**<  */
2100 } xcb_grab_pointer_reply_t;
2101 
2102 /** Opcode for xcb_ungrab_pointer. */
2103 #define XCB_UNGRAB_POINTER 27
2104 
2105 /**
2106  * @brief xcb_ungrab_pointer_request_t
2107  **/
2108 typedef struct xcb_ungrab_pointer_request_t {
2109     uint8_t         major_opcode; /**<  */
2110     uint8_t         pad0; /**<  */
2111     uint16_t        length; /**<  */
2112     xcb_timestamp_t time; /**<  */
2113 } xcb_ungrab_pointer_request_t;
2114 
2115 typedef enum xcb_button_index_t {
2116     XCB_BUTTON_INDEX_ANY = 0,
2117 /**< Any of the following (or none): */
2118 
2119     XCB_BUTTON_INDEX_1 = 1,
2120 /**< The left mouse button. */
2121 
2122     XCB_BUTTON_INDEX_2 = 2,
2123 /**< The right mouse button. */
2124 
2125     XCB_BUTTON_INDEX_3 = 3,
2126 /**< The middle mouse button. */
2127 
2128     XCB_BUTTON_INDEX_4 = 4,
2129 /**< Scroll wheel. TODO: direction? */
2130 
2131     XCB_BUTTON_INDEX_5 = 5
2132 /**< Scroll wheel. TODO: direction? */
2133 
2134 } xcb_button_index_t;
2135 
2136 /** Opcode for xcb_grab_button. */
2137 #define XCB_GRAB_BUTTON 28
2138 
2139 /**
2140  * @brief xcb_grab_button_request_t
2141  **/
2142 typedef struct xcb_grab_button_request_t {
2143     uint8_t      major_opcode; /**<  */
2144     uint8_t      owner_events; /**<  */
2145     uint16_t     length; /**<  */
2146     xcb_window_t grab_window; /**<  */
2147     uint16_t     event_mask; /**<  */
2148     uint8_t      pointer_mode; /**<  */
2149     uint8_t      keyboard_mode; /**<  */
2150     xcb_window_t confine_to; /**<  */
2151     xcb_cursor_t cursor; /**<  */
2152     uint8_t      button; /**<  */
2153     uint8_t      pad0; /**<  */
2154     uint16_t     modifiers; /**<  */
2155 } xcb_grab_button_request_t;
2156 
2157 /** Opcode for xcb_ungrab_button. */
2158 #define XCB_UNGRAB_BUTTON 29
2159 
2160 /**
2161  * @brief xcb_ungrab_button_request_t
2162  **/
2163 typedef struct xcb_ungrab_button_request_t {
2164     uint8_t      major_opcode; /**<  */
2165     uint8_t      button; /**<  */
2166     uint16_t     length; /**<  */
2167     xcb_window_t grab_window; /**<  */
2168     uint16_t     modifiers; /**<  */
2169     uint8_t      pad0[2]; /**<  */
2170 } xcb_ungrab_button_request_t;
2171 
2172 /** Opcode for xcb_change_active_pointer_grab. */
2173 #define XCB_CHANGE_ACTIVE_POINTER_GRAB 30
2174 
2175 /**
2176  * @brief xcb_change_active_pointer_grab_request_t
2177  **/
2178 typedef struct xcb_change_active_pointer_grab_request_t {
2179     uint8_t         major_opcode; /**<  */
2180     uint8_t         pad0; /**<  */
2181     uint16_t        length; /**<  */
2182     xcb_cursor_t    cursor; /**<  */
2183     xcb_timestamp_t time; /**<  */
2184     uint16_t        event_mask; /**<  */
2185     uint8_t         pad1[2]; /**<  */
2186 } xcb_change_active_pointer_grab_request_t;
2187 
2188 /**
2189  * @brief xcb_grab_keyboard_cookie_t
2190  **/
2191 typedef struct xcb_grab_keyboard_cookie_t {
2192     unsigned int sequence; /**<  */
2193 } xcb_grab_keyboard_cookie_t;
2194 
2195 /** Opcode for xcb_grab_keyboard. */
2196 #define XCB_GRAB_KEYBOARD 31
2197 
2198 /**
2199  * @brief xcb_grab_keyboard_request_t
2200  **/
2201 typedef struct xcb_grab_keyboard_request_t {
2202     uint8_t         major_opcode; /**<  */
2203     uint8_t         owner_events; /**<  */
2204     uint16_t        length; /**<  */
2205     xcb_window_t    grab_window; /**<  */
2206     xcb_timestamp_t time; /**<  */
2207     uint8_t         pointer_mode; /**<  */
2208     uint8_t         keyboard_mode; /**<  */
2209     uint8_t         pad0[2]; /**<  */
2210 } xcb_grab_keyboard_request_t;
2211 
2212 /**
2213  * @brief xcb_grab_keyboard_reply_t
2214  **/
2215 typedef struct xcb_grab_keyboard_reply_t {
2216     uint8_t  response_type; /**<  */
2217     uint8_t  status; /**<  */
2218     uint16_t sequence; /**<  */
2219     uint32_t length; /**<  */
2220 } xcb_grab_keyboard_reply_t;
2221 
2222 /** Opcode for xcb_ungrab_keyboard. */
2223 #define XCB_UNGRAB_KEYBOARD 32
2224 
2225 /**
2226  * @brief xcb_ungrab_keyboard_request_t
2227  **/
2228 typedef struct xcb_ungrab_keyboard_request_t {
2229     uint8_t         major_opcode; /**<  */
2230     uint8_t         pad0; /**<  */
2231     uint16_t        length; /**<  */
2232     xcb_timestamp_t time; /**<  */
2233 } xcb_ungrab_keyboard_request_t;
2234 
2235 typedef enum xcb_grab_t {
2236     XCB_GRAB_ANY = 0
2237 } xcb_grab_t;
2238 
2239 /** Opcode for xcb_grab_key. */
2240 #define XCB_GRAB_KEY 33
2241 
2242 /**
2243  * @brief xcb_grab_key_request_t
2244  **/
2245 typedef struct xcb_grab_key_request_t {
2246     uint8_t       major_opcode; /**<  */
2247     uint8_t       owner_events; /**<  */
2248     uint16_t      length; /**<  */
2249     xcb_window_t  grab_window; /**<  */
2250     uint16_t      modifiers; /**<  */
2251     xcb_keycode_t key; /**<  */
2252     uint8_t       pointer_mode; /**<  */
2253     uint8_t       keyboard_mode; /**<  */
2254     uint8_t       pad0[3]; /**<  */
2255 } xcb_grab_key_request_t;
2256 
2257 /** Opcode for xcb_ungrab_key. */
2258 #define XCB_UNGRAB_KEY 34
2259 
2260 /**
2261  * @brief xcb_ungrab_key_request_t
2262  **/
2263 typedef struct xcb_ungrab_key_request_t {
2264     uint8_t       major_opcode; /**<  */
2265     xcb_keycode_t key; /**<  */
2266     uint16_t      length; /**<  */
2267     xcb_window_t  grab_window; /**<  */
2268     uint16_t      modifiers; /**<  */
2269     uint8_t       pad0[2]; /**<  */
2270 } xcb_ungrab_key_request_t;
2271 
2272 typedef enum xcb_allow_t {
2273     XCB_ALLOW_ASYNC_POINTER = 0,
2274 /**< For AsyncPointer, if the pointer is frozen by the client, pointer event
2275 processing continues normally. If the pointer is frozen twice by the client on
2276 behalf of two separate grabs, AsyncPointer thaws for both. AsyncPointer has no
2277 effect if the pointer is not frozen by the client, but the pointer need not be
2278 grabbed by the client.
2279 
2280 TODO: rewrite this in more understandable terms. */
2281 
2282     XCB_ALLOW_SYNC_POINTER = 1,
2283 /**< For SyncPointer, if the pointer is frozen and actively grabbed by the client,
2284 pointer event processing continues normally until the next ButtonPress or
2285 ButtonRelease event is reported to the client, at which time the pointer again
2286 appears to freeze. However, if the reported event causes the pointer grab to be
2287 released, then the pointer does not freeze. SyncPointer has no effect if the
2288 pointer is not frozen by the client or if the pointer is not grabbed by the
2289 client. */
2290 
2291     XCB_ALLOW_REPLAY_POINTER = 2,
2292 /**< For ReplayPointer, if the pointer is actively grabbed by the client and is
2293 frozen as the result of an event having been sent to the client (either from
2294 the activation of a GrabButton or from a previous AllowEvents with mode
2295 SyncPointer but not from a GrabPointer), then the pointer grab is released and
2296 that event is completely reprocessed, this time ignoring any passive grabs at
2297 or above (towards the root) the grab-window of the grab just released. The
2298 request has no effect if the pointer is not grabbed by the client or if the
2299 pointer is not frozen as the result of an event. */
2300 
2301     XCB_ALLOW_ASYNC_KEYBOARD = 3,
2302 /**< For AsyncKeyboard, if the keyboard is frozen by the client, keyboard event
2303 processing continues normally. If the keyboard is frozen twice by the client on
2304 behalf of two separate grabs, AsyncKeyboard thaws for both. AsyncKeyboard has
2305 no effect if the keyboard is not frozen by the client, but the keyboard need
2306 not be grabbed by the client. */
2307 
2308     XCB_ALLOW_SYNC_KEYBOARD = 4,
2309 /**< For SyncKeyboard, if the keyboard is frozen and actively grabbed by the client,
2310 keyboard event processing continues normally until the next KeyPress or
2311 KeyRelease event is reported to the client, at which time the keyboard again
2312 appears to freeze. However, if the reported event causes the keyboard grab to
2313 be released, then the keyboard does not freeze. SyncKeyboard has no effect if
2314 the keyboard is not frozen by the client or if the keyboard is not grabbed by
2315 the client. */
2316 
2317     XCB_ALLOW_REPLAY_KEYBOARD = 5,
2318 /**< For ReplayKeyboard, if the keyboard is actively grabbed by the client and is
2319 frozen as the result of an event having been sent to the client (either from
2320 the activation of a GrabKey or from a previous AllowEvents with mode
2321 SyncKeyboard but not from a GrabKeyboard), then the keyboard grab is released
2322 and that event is completely reprocessed, this time ignoring any passive grabs
2323 at or above (towards the root) the grab-window of the grab just released. The
2324 request has no effect if the keyboard is not grabbed by the client or if the
2325 keyboard is not frozen as the result of an event. */
2326 
2327     XCB_ALLOW_ASYNC_BOTH = 6,
2328 /**< For AsyncBoth, if the pointer and the keyboard are frozen by the client, event
2329 processing for both devices continues normally. If a device is frozen twice by
2330 the client on behalf of two separate grabs, AsyncBoth thaws for both. AsyncBoth
2331 has no effect unless both pointer and keyboard are frozen by the client. */
2332 
2333     XCB_ALLOW_SYNC_BOTH = 7
2334 /**< For SyncBoth, if both pointer and keyboard are frozen by the client, event
2335 processing (for both devices) continues normally until the next ButtonPress,
2336 ButtonRelease, KeyPress, or KeyRelease event is reported to the client for a
2337 grabbed device (button event for the pointer, key event for the keyboard), at
2338 which time the devices again appear to freeze. However, if the reported event
2339 causes the grab to be released, then the devices do not freeze (but if the
2340 other device is still grabbed, then a subsequent event for it will still cause
2341 both devices to freeze). SyncBoth has no effect unless both pointer and
2342 keyboard are frozen by the client. If the pointer or keyboard is frozen twice
2343 by the client on behalf of two separate grabs, SyncBoth thaws for both (but a
2344 subsequent freeze for SyncBoth will only freeze each device once). */
2345 
2346 } xcb_allow_t;
2347 
2348 /** Opcode for xcb_allow_events. */
2349 #define XCB_ALLOW_EVENTS 35
2350 
2351 /**
2352  * @brief xcb_allow_events_request_t
2353  **/
2354 typedef struct xcb_allow_events_request_t {
2355     uint8_t         major_opcode; /**<  */
2356     uint8_t         mode; /**<  */
2357     uint16_t        length; /**<  */
2358     xcb_timestamp_t time; /**<  */
2359 } xcb_allow_events_request_t;
2360 
2361 /** Opcode for xcb_grab_server. */
2362 #define XCB_GRAB_SERVER 36
2363 
2364 /**
2365  * @brief xcb_grab_server_request_t
2366  **/
2367 typedef struct xcb_grab_server_request_t {
2368     uint8_t  major_opcode; /**<  */
2369     uint8_t  pad0; /**<  */
2370     uint16_t length; /**<  */
2371 } xcb_grab_server_request_t;
2372 
2373 /** Opcode for xcb_ungrab_server. */
2374 #define XCB_UNGRAB_SERVER 37
2375 
2376 /**
2377  * @brief xcb_ungrab_server_request_t
2378  **/
2379 typedef struct xcb_ungrab_server_request_t {
2380     uint8_t  major_opcode; /**<  */
2381     uint8_t  pad0; /**<  */
2382     uint16_t length; /**<  */
2383 } xcb_ungrab_server_request_t;
2384 
2385 /**
2386  * @brief xcb_query_pointer_cookie_t
2387  **/
2388 typedef struct xcb_query_pointer_cookie_t {
2389     unsigned int sequence; /**<  */
2390 } xcb_query_pointer_cookie_t;
2391 
2392 /** Opcode for xcb_query_pointer. */
2393 #define XCB_QUERY_POINTER 38
2394 
2395 /**
2396  * @brief xcb_query_pointer_request_t
2397  **/
2398 typedef struct xcb_query_pointer_request_t {
2399     uint8_t      major_opcode; /**<  */
2400     uint8_t      pad0; /**<  */
2401     uint16_t     length; /**<  */
2402     xcb_window_t window; /**<  */
2403 } xcb_query_pointer_request_t;
2404 
2405 /**
2406  * @brief xcb_query_pointer_reply_t
2407  **/
2408 typedef struct xcb_query_pointer_reply_t {
2409     uint8_t      response_type; /**<  */
2410     uint8_t      same_screen; /**<  */
2411     uint16_t     sequence; /**<  */
2412     uint32_t     length; /**<  */
2413     xcb_window_t root; /**<  */
2414     xcb_window_t child; /**<  */
2415     int16_t      root_x; /**<  */
2416     int16_t      root_y; /**<  */
2417     int16_t      win_x; /**<  */
2418     int16_t      win_y; /**<  */
2419     uint16_t     mask; /**<  */
2420     uint8_t      pad0[2]; /**<  */
2421 } xcb_query_pointer_reply_t;
2422 
2423 /**
2424  * @brief xcb_timecoord_t
2425  **/
2426 typedef struct xcb_timecoord_t {
2427     xcb_timestamp_t time; /**<  */
2428     int16_t         x; /**<  */
2429     int16_t         y; /**<  */
2430 } xcb_timecoord_t;
2431 
2432 /**
2433  * @brief xcb_timecoord_iterator_t
2434  **/
2435 typedef struct xcb_timecoord_iterator_t {
2436     xcb_timecoord_t *data; /**<  */
2437     int              rem; /**<  */
2438     int              index; /**<  */
2439 } xcb_timecoord_iterator_t;
2440 
2441 /**
2442  * @brief xcb_get_motion_events_cookie_t
2443  **/
2444 typedef struct xcb_get_motion_events_cookie_t {
2445     unsigned int sequence; /**<  */
2446 } xcb_get_motion_events_cookie_t;
2447 
2448 /** Opcode for xcb_get_motion_events. */
2449 #define XCB_GET_MOTION_EVENTS 39
2450 
2451 /**
2452  * @brief xcb_get_motion_events_request_t
2453  **/
2454 typedef struct xcb_get_motion_events_request_t {
2455     uint8_t         major_opcode; /**<  */
2456     uint8_t         pad0; /**<  */
2457     uint16_t        length; /**<  */
2458     xcb_window_t    window; /**<  */
2459     xcb_timestamp_t start; /**<  */
2460     xcb_timestamp_t stop; /**<  */
2461 } xcb_get_motion_events_request_t;
2462 
2463 /**
2464  * @brief xcb_get_motion_events_reply_t
2465  **/
2466 typedef struct xcb_get_motion_events_reply_t {
2467     uint8_t  response_type; /**<  */
2468     uint8_t  pad0; /**<  */
2469     uint16_t sequence; /**<  */
2470     uint32_t length; /**<  */
2471     uint32_t events_len; /**<  */
2472     uint8_t  pad1[20]; /**<  */
2473 } xcb_get_motion_events_reply_t;
2474 
2475 /**
2476  * @brief xcb_translate_coordinates_cookie_t
2477  **/
2478 typedef struct xcb_translate_coordinates_cookie_t {
2479     unsigned int sequence; /**<  */
2480 } xcb_translate_coordinates_cookie_t;
2481 
2482 /** Opcode for xcb_translate_coordinates. */
2483 #define XCB_TRANSLATE_COORDINATES 40
2484 
2485 /**
2486  * @brief xcb_translate_coordinates_request_t
2487  **/
2488 typedef struct xcb_translate_coordinates_request_t {
2489     uint8_t      major_opcode; /**<  */
2490     uint8_t      pad0; /**<  */
2491     uint16_t     length; /**<  */
2492     xcb_window_t src_window; /**<  */
2493     xcb_window_t dst_window; /**<  */
2494     int16_t      src_x; /**<  */
2495     int16_t      src_y; /**<  */
2496 } xcb_translate_coordinates_request_t;
2497 
2498 /**
2499  * @brief xcb_translate_coordinates_reply_t
2500  **/
2501 typedef struct xcb_translate_coordinates_reply_t {
2502     uint8_t      response_type; /**<  */
2503     uint8_t      same_screen; /**<  */
2504     uint16_t     sequence; /**<  */
2505     uint32_t     length; /**<  */
2506     xcb_window_t child; /**<  */
2507     int16_t      dst_x; /**<  */
2508     int16_t      dst_y; /**<  */
2509 } xcb_translate_coordinates_reply_t;
2510 
2511 /** Opcode for xcb_warp_pointer. */
2512 #define XCB_WARP_POINTER 41
2513 
2514 /**
2515  * @brief xcb_warp_pointer_request_t
2516  **/
2517 typedef struct xcb_warp_pointer_request_t {
2518     uint8_t      major_opcode; /**<  */
2519     uint8_t      pad0; /**<  */
2520     uint16_t     length; /**<  */
2521     xcb_window_t src_window; /**<  */
2522     xcb_window_t dst_window; /**<  */
2523     int16_t      src_x; /**<  */
2524     int16_t      src_y; /**<  */
2525     uint16_t     src_width; /**<  */
2526     uint16_t     src_height; /**<  */
2527     int16_t      dst_x; /**<  */
2528     int16_t      dst_y; /**<  */
2529 } xcb_warp_pointer_request_t;
2530 
2531 typedef enum xcb_input_focus_t {
2532     XCB_INPUT_FOCUS_NONE = 0,
2533 /**< The focus reverts to `XCB_NONE`, so no window will have the input focus. */
2534 
2535     XCB_INPUT_FOCUS_POINTER_ROOT = 1,
2536 /**< The focus reverts to `XCB_POINTER_ROOT` respectively. When the focus reverts,
2537 FocusIn and FocusOut events are generated, but the last-focus-change time is
2538 not changed. */
2539 
2540     XCB_INPUT_FOCUS_PARENT = 2,
2541 /**< The focus reverts to the parent (or closest viewable ancestor) and the new
2542 revert_to value is `XCB_INPUT_FOCUS_NONE`. */
2543 
2544     XCB_INPUT_FOCUS_FOLLOW_KEYBOARD = 3
2545 /**< NOT YET DOCUMENTED. Only relevant for the xinput extension. */
2546 
2547 } xcb_input_focus_t;
2548 
2549 /** Opcode for xcb_set_input_focus. */
2550 #define XCB_SET_INPUT_FOCUS 42
2551 
2552 /**
2553  * @brief xcb_set_input_focus_request_t
2554  **/
2555 typedef struct xcb_set_input_focus_request_t {
2556     uint8_t         major_opcode; /**<  */
2557     uint8_t         revert_to; /**<  */
2558     uint16_t        length; /**<  */
2559     xcb_window_t    focus; /**<  */
2560     xcb_timestamp_t time; /**<  */
2561 } xcb_set_input_focus_request_t;
2562 
2563 /**
2564  * @brief xcb_get_input_focus_cookie_t
2565  **/
2566 typedef struct xcb_get_input_focus_cookie_t {
2567     unsigned int sequence; /**<  */
2568 } xcb_get_input_focus_cookie_t;
2569 
2570 /** Opcode for xcb_get_input_focus. */
2571 #define XCB_GET_INPUT_FOCUS 43
2572 
2573 /**
2574  * @brief xcb_get_input_focus_request_t
2575  **/
2576 typedef struct xcb_get_input_focus_request_t {
2577     uint8_t  major_opcode; /**<  */
2578     uint8_t  pad0; /**<  */
2579     uint16_t length; /**<  */
2580 } xcb_get_input_focus_request_t;
2581 
2582 /**
2583  * @brief xcb_get_input_focus_reply_t
2584  **/
2585 typedef struct xcb_get_input_focus_reply_t {
2586     uint8_t      response_type; /**<  */
2587     uint8_t      revert_to; /**<  */
2588     uint16_t     sequence; /**<  */
2589     uint32_t     length; /**<  */
2590     xcb_window_t focus; /**<  */
2591 } xcb_get_input_focus_reply_t;
2592 
2593 /**
2594  * @brief xcb_query_keymap_cookie_t
2595  **/
2596 typedef struct xcb_query_keymap_cookie_t {
2597     unsigned int sequence; /**<  */
2598 } xcb_query_keymap_cookie_t;
2599 
2600 /** Opcode for xcb_query_keymap. */
2601 #define XCB_QUERY_KEYMAP 44
2602 
2603 /**
2604  * @brief xcb_query_keymap_request_t
2605  **/
2606 typedef struct xcb_query_keymap_request_t {
2607     uint8_t  major_opcode; /**<  */
2608     uint8_t  pad0; /**<  */
2609     uint16_t length; /**<  */
2610 } xcb_query_keymap_request_t;
2611 
2612 /**
2613  * @brief xcb_query_keymap_reply_t
2614  **/
2615 typedef struct xcb_query_keymap_reply_t {
2616     uint8_t  response_type; /**<  */
2617     uint8_t  pad0; /**<  */
2618     uint16_t sequence; /**<  */
2619     uint32_t length; /**<  */
2620     uint8_t  keys[32]; /**<  */
2621 } xcb_query_keymap_reply_t;
2622 
2623 /** Opcode for xcb_open_font. */
2624 #define XCB_OPEN_FONT 45
2625 
2626 /**
2627  * @brief xcb_open_font_request_t
2628  **/
2629 typedef struct xcb_open_font_request_t {
2630     uint8_t    major_opcode; /**<  */
2631     uint8_t    pad0; /**<  */
2632     uint16_t   length; /**<  */
2633     xcb_font_t fid; /**<  */
2634     uint16_t   name_len; /**<  */
2635     uint8_t    pad1[2]; /**<  */
2636 } xcb_open_font_request_t;
2637 
2638 /** Opcode for xcb_close_font. */
2639 #define XCB_CLOSE_FONT 46
2640 
2641 /**
2642  * @brief xcb_close_font_request_t
2643  **/
2644 typedef struct xcb_close_font_request_t {
2645     uint8_t    major_opcode; /**<  */
2646     uint8_t    pad0; /**<  */
2647     uint16_t   length; /**<  */
2648     xcb_font_t font; /**<  */
2649 } xcb_close_font_request_t;
2650 
2651 typedef enum xcb_font_draw_t {
2652     XCB_FONT_DRAW_LEFT_TO_RIGHT = 0,
2653     XCB_FONT_DRAW_RIGHT_TO_LEFT = 1
2654 } xcb_font_draw_t;
2655 
2656 /**
2657  * @brief xcb_fontprop_t
2658  **/
2659 typedef struct xcb_fontprop_t {
2660     xcb_atom_t name; /**<  */
2661     uint32_t   value; /**<  */
2662 } xcb_fontprop_t;
2663 
2664 /**
2665  * @brief xcb_fontprop_iterator_t
2666  **/
2667 typedef struct xcb_fontprop_iterator_t {
2668     xcb_fontprop_t *data; /**<  */
2669     int             rem; /**<  */
2670     int             index; /**<  */
2671 } xcb_fontprop_iterator_t;
2672 
2673 /**
2674  * @brief xcb_charinfo_t
2675  **/
2676 typedef struct xcb_charinfo_t {
2677     int16_t  left_side_bearing; /**<  */
2678     int16_t  right_side_bearing; /**<  */
2679     int16_t  character_width; /**<  */
2680     int16_t  ascent; /**<  */
2681     int16_t  descent; /**<  */
2682     uint16_t attributes; /**<  */
2683 } xcb_charinfo_t;
2684 
2685 /**
2686  * @brief xcb_charinfo_iterator_t
2687  **/
2688 typedef struct xcb_charinfo_iterator_t {
2689     xcb_charinfo_t *data; /**<  */
2690     int             rem; /**<  */
2691     int             index; /**<  */
2692 } xcb_charinfo_iterator_t;
2693 
2694 /**
2695  * @brief xcb_query_font_cookie_t
2696  **/
2697 typedef struct xcb_query_font_cookie_t {
2698     unsigned int sequence; /**<  */
2699 } xcb_query_font_cookie_t;
2700 
2701 /** Opcode for xcb_query_font. */
2702 #define XCB_QUERY_FONT 47
2703 
2704 /**
2705  * @brief xcb_query_font_request_t
2706  **/
2707 typedef struct xcb_query_font_request_t {
2708     uint8_t        major_opcode; /**<  */
2709     uint8_t        pad0; /**<  */
2710     uint16_t       length; /**<  */
2711     xcb_fontable_t font; /**<  */
2712 } xcb_query_font_request_t;
2713 
2714 /**
2715  * @brief xcb_query_font_reply_t
2716  **/
2717 typedef struct xcb_query_font_reply_t {
2718     uint8_t        response_type; /**<  */
2719     uint8_t        pad0; /**<  */
2720     uint16_t       sequence; /**<  */
2721     uint32_t       length; /**<  */
2722     xcb_charinfo_t min_bounds; /**<  */
2723     uint8_t        pad1[4]; /**<  */
2724     xcb_charinfo_t max_bounds; /**<  */
2725     uint8_t        pad2[4]; /**<  */
2726     uint16_t       min_char_or_byte2; /**<  */
2727     uint16_t       max_char_or_byte2; /**<  */
2728     uint16_t       default_char; /**<  */
2729     uint16_t       properties_len; /**<  */
2730     uint8_t        draw_direction; /**<  */
2731     uint8_t        min_byte1; /**<  */
2732     uint8_t        max_byte1; /**<  */
2733     uint8_t        all_chars_exist; /**<  */
2734     int16_t        font_ascent; /**<  */
2735     int16_t        font_descent; /**<  */
2736     uint32_t       char_infos_len; /**<  */
2737 } xcb_query_font_reply_t;
2738 
2739 /**
2740  * @brief xcb_query_text_extents_cookie_t
2741  **/
2742 typedef struct xcb_query_text_extents_cookie_t {
2743     unsigned int sequence; /**<  */
2744 } xcb_query_text_extents_cookie_t;
2745 
2746 /** Opcode for xcb_query_text_extents. */
2747 #define XCB_QUERY_TEXT_EXTENTS 48
2748 
2749 /**
2750  * @brief xcb_query_text_extents_request_t
2751  **/
2752 typedef struct xcb_query_text_extents_request_t {
2753     uint8_t        major_opcode; /**<  */
2754     uint8_t        odd_length; /**<  */
2755     uint16_t       length; /**<  */
2756     xcb_fontable_t font; /**<  */
2757 } xcb_query_text_extents_request_t;
2758 
2759 /**
2760  * @brief xcb_query_text_extents_reply_t
2761  **/
2762 typedef struct xcb_query_text_extents_reply_t {
2763     uint8_t  response_type; /**<  */
2764     uint8_t  draw_direction; /**<  */
2765     uint16_t sequence; /**<  */
2766     uint32_t length; /**<  */
2767     int16_t  font_ascent; /**<  */
2768     int16_t  font_descent; /**<  */
2769     int16_t  overall_ascent; /**<  */
2770     int16_t  overall_descent; /**<  */
2771     int32_t  overall_width; /**<  */
2772     int32_t  overall_left; /**<  */
2773     int32_t  overall_right; /**<  */
2774 } xcb_query_text_extents_reply_t;
2775 
2776 /**
2777  * @brief xcb_str_t
2778  **/
2779 typedef struct xcb_str_t {
2780     uint8_t name_len; /**<  */
2781 } xcb_str_t;
2782 
2783 /**
2784  * @brief xcb_str_iterator_t
2785  **/
2786 typedef struct xcb_str_iterator_t {
2787     xcb_str_t *data; /**<  */
2788     int        rem; /**<  */
2789     int        index; /**<  */
2790 } xcb_str_iterator_t;
2791 
2792 /**
2793  * @brief xcb_list_fonts_cookie_t
2794  **/
2795 typedef struct xcb_list_fonts_cookie_t {
2796     unsigned int sequence; /**<  */
2797 } xcb_list_fonts_cookie_t;
2798 
2799 /** Opcode for xcb_list_fonts. */
2800 #define XCB_LIST_FONTS 49
2801 
2802 /**
2803  * @brief xcb_list_fonts_request_t
2804  **/
2805 typedef struct xcb_list_fonts_request_t {
2806     uint8_t  major_opcode; /**<  */
2807     uint8_t  pad0; /**<  */
2808     uint16_t length; /**<  */
2809     uint16_t max_names; /**<  */
2810     uint16_t pattern_len; /**<  */
2811 } xcb_list_fonts_request_t;
2812 
2813 /**
2814  * @brief xcb_list_fonts_reply_t
2815  **/
2816 typedef struct xcb_list_fonts_reply_t {
2817     uint8_t  response_type; /**<  */
2818     uint8_t  pad0; /**<  */
2819     uint16_t sequence; /**<  */
2820     uint32_t length; /**<  */
2821     uint16_t names_len; /**<  */
2822     uint8_t  pad1[22]; /**<  */
2823 } xcb_list_fonts_reply_t;
2824 
2825 /**
2826  * @brief xcb_list_fonts_with_info_cookie_t
2827  **/
2828 typedef struct xcb_list_fonts_with_info_cookie_t {
2829     unsigned int sequence; /**<  */
2830 } xcb_list_fonts_with_info_cookie_t;
2831 
2832 /** Opcode for xcb_list_fonts_with_info. */
2833 #define XCB_LIST_FONTS_WITH_INFO 50
2834 
2835 /**
2836  * @brief xcb_list_fonts_with_info_request_t
2837  **/
2838 typedef struct xcb_list_fonts_with_info_request_t {
2839     uint8_t  major_opcode; /**<  */
2840     uint8_t  pad0; /**<  */
2841     uint16_t length; /**<  */
2842     uint16_t max_names; /**<  */
2843     uint16_t pattern_len; /**<  */
2844 } xcb_list_fonts_with_info_request_t;
2845 
2846 /**
2847  * @brief xcb_list_fonts_with_info_reply_t
2848  **/
2849 typedef struct xcb_list_fonts_with_info_reply_t {
2850     uint8_t        response_type; /**<  */
2851     uint8_t        name_len; /**<  */
2852     uint16_t       sequence; /**<  */
2853     uint32_t       length; /**<  */
2854     xcb_charinfo_t min_bounds; /**<  */
2855     uint8_t        pad0[4]; /**<  */
2856     xcb_charinfo_t max_bounds; /**<  */
2857     uint8_t        pad1[4]; /**<  */
2858     uint16_t       min_char_or_byte2; /**<  */
2859     uint16_t       max_char_or_byte2; /**<  */
2860     uint16_t       default_char; /**<  */
2861     uint16_t       properties_len; /**<  */
2862     uint8_t        draw_direction; /**<  */
2863     uint8_t        min_byte1; /**<  */
2864     uint8_t        max_byte1; /**<  */
2865     uint8_t        all_chars_exist; /**<  */
2866     int16_t        font_ascent; /**<  */
2867     int16_t        font_descent; /**<  */
2868     uint32_t       replies_hint; /**<  */
2869 } xcb_list_fonts_with_info_reply_t;
2870 
2871 /** Opcode for xcb_set_font_path. */
2872 #define XCB_SET_FONT_PATH 51
2873 
2874 /**
2875  * @brief xcb_set_font_path_request_t
2876  **/
2877 typedef struct xcb_set_font_path_request_t {
2878     uint8_t  major_opcode; /**<  */
2879     uint8_t  pad0; /**<  */
2880     uint16_t length; /**<  */
2881     uint16_t font_qty; /**<  */
2882     uint8_t  pad1[2]; /**<  */
2883 } xcb_set_font_path_request_t;
2884 
2885 /**
2886  * @brief xcb_get_font_path_cookie_t
2887  **/
2888 typedef struct xcb_get_font_path_cookie_t {
2889     unsigned int sequence; /**<  */
2890 } xcb_get_font_path_cookie_t;
2891 
2892 /** Opcode for xcb_get_font_path. */
2893 #define XCB_GET_FONT_PATH 52
2894 
2895 /**
2896  * @brief xcb_get_font_path_request_t
2897  **/
2898 typedef struct xcb_get_font_path_request_t {
2899     uint8_t  major_opcode; /**<  */
2900     uint8_t  pad0; /**<  */
2901     uint16_t length; /**<  */
2902 } xcb_get_font_path_request_t;
2903 
2904 /**
2905  * @brief xcb_get_font_path_reply_t
2906  **/
2907 typedef struct xcb_get_font_path_reply_t {
2908     uint8_t  response_type; /**<  */
2909     uint8_t  pad0; /**<  */
2910     uint16_t sequence; /**<  */
2911     uint32_t length; /**<  */
2912     uint16_t path_len; /**<  */
2913     uint8_t  pad1[22]; /**<  */
2914 } xcb_get_font_path_reply_t;
2915 
2916 /** Opcode for xcb_create_pixmap. */
2917 #define XCB_CREATE_PIXMAP 53
2918 
2919 /**
2920  * @brief xcb_create_pixmap_request_t
2921  **/
2922 typedef struct xcb_create_pixmap_request_t {
2923     uint8_t        major_opcode; /**<  */
2924     uint8_t        depth; /**<  */
2925     uint16_t       length; /**<  */
2926     xcb_pixmap_t   pid; /**<  */
2927     xcb_drawable_t drawable; /**<  */
2928     uint16_t       width; /**<  */
2929     uint16_t       height; /**<  */
2930 } xcb_create_pixmap_request_t;
2931 
2932 /** Opcode for xcb_free_pixmap. */
2933 #define XCB_FREE_PIXMAP 54
2934 
2935 /**
2936  * @brief xcb_free_pixmap_request_t
2937  **/
2938 typedef struct xcb_free_pixmap_request_t {
2939     uint8_t      major_opcode; /**<  */
2940     uint8_t      pad0; /**<  */
2941     uint16_t     length; /**<  */
2942     xcb_pixmap_t pixmap; /**<  */
2943 } xcb_free_pixmap_request_t;
2944 
2945 typedef enum xcb_gc_t {
2946     XCB_GC_FUNCTION = 1,
2947 /**< TODO: Refer to GX */
2948 
2949     XCB_GC_PLANE_MASK = 2,
2950 /**< In graphics operations, given a source and destination pixel, the result is
2951 computed bitwise on corresponding bits of the pixels; that is, a Boolean
2952 operation is performed in each bit plane. The plane-mask restricts the
2953 operation to a subset of planes, so the result is:
2954 
2955         ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask)) */
2956 
2957     XCB_GC_FOREGROUND = 4,
2958 /**< Foreground colorpixel. */
2959 
2960     XCB_GC_BACKGROUND = 8,
2961 /**< Background colorpixel. */
2962 
2963     XCB_GC_LINE_WIDTH = 16,
2964 /**< The line-width is measured in pixels and can be greater than or equal to one, a wide line, or the
2965 special value zero, a thin line. */
2966 
2967     XCB_GC_LINE_STYLE = 32,
2968 /**< The line-style defines which sections of a line are drawn:
2969 Solid                The full path of the line is drawn.
2970 DoubleDash           The full path of the line is drawn, but the even dashes are filled differently
2971                      than the odd dashes (see fill-style), with Butt cap-style used where even and
2972                      odd dashes meet.
2973 OnOffDash            Only the even dashes are drawn, and cap-style applies to all internal ends of
2974                      the individual dashes (except NotLast is treated as Butt). */
2975 
2976     XCB_GC_CAP_STYLE = 64,
2977 /**< The cap-style defines how the endpoints of a path are drawn:
2978 NotLast    The result is equivalent to Butt, except that for a line-width of zero the final
2979            endpoint is not drawn.
2980 Butt       The result is square at the endpoint (perpendicular to the slope of the line)
2981            with no projection beyond.
2982 Round      The result is a circular arc with its diameter equal to the line-width, centered
2983            on the endpoint; it is equivalent to Butt for line-width zero.
2984 Projecting The result is square at the end, but the path continues beyond the endpoint for
2985            a distance equal to half the line-width; it is equivalent to Butt for line-width
2986            zero. */
2987 
2988     XCB_GC_JOIN_STYLE = 128,
2989 /**< The join-style defines how corners are drawn for wide lines:
2990 Miter               The outer edges of the two lines extend to meet at an angle. However, if the
2991                     angle is less than 11 degrees, a Bevel join-style is used instead.
2992 Round               The result is a circular arc with a diameter equal to the line-width, centered
2993                     on the joinpoint.
2994 Bevel               The result is Butt endpoint styles, and then the triangular notch is filled. */
2995 
2996     XCB_GC_FILL_STYLE = 256,
2997 /**< The fill-style defines the contents of the source for line, text, and fill requests. For all text and fill
2998 requests (for example, PolyText8, PolyText16, PolyFillRectangle, FillPoly, and PolyFillArc)
2999 as well as for line requests with line-style Solid, (for example, PolyLine, PolySegment,
3000 PolyRectangle, PolyArc) and for the even dashes for line requests with line-style OnOffDash
3001 or DoubleDash:
3002 Solid                     Foreground
3003 Tiled                     Tile
3004 OpaqueStippled            A tile with the same width and height as stipple but with background
3005                           everywhere stipple has a zero and with foreground everywhere stipple
3006                           has a one
3007 Stippled                  Foreground masked by stipple
3008 For the odd dashes for line requests with line-style DoubleDash:
3009 Solid                     Background
3010 Tiled                     Same as for even dashes
3011 OpaqueStippled            Same as for even dashes
3012 Stippled                  Background masked by stipple */
3013 
3014     XCB_GC_FILL_RULE = 512,
3015 /**<  */
3016 
3017     XCB_GC_TILE = 1024,
3018 /**< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all
3019 dimensions. When that plane is superimposed on the drawable for use in a graphics operation,
3020 the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable
3021 specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the
3022 origin of whatever destination drawable is specified in a graphics request.
3023 The tile pixmap must have the same root and depth as the gcontext (or a Match error results).
3024 The stipple pixmap must have depth one and must have the same root as the gcontext (or a
3025 Match error results). For fill-style Stippled (but not fill-style
3026 OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an
3027 additional clip mask to be ANDed with the clip-mask.
3028 Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than
3029 others. */
3030 
3031     XCB_GC_STIPPLE = 2048,
3032 /**< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all
3033 dimensions. When that plane is superimposed on the drawable for use in a graphics operation,
3034 the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable
3035 specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the
3036 origin of whatever destination drawable is specified in a graphics request.
3037 The tile pixmap must have the same root and depth as the gcontext (or a Match error results).
3038 The stipple pixmap must have depth one and must have the same root as the gcontext (or a
3039 Match error results). For fill-style Stippled (but not fill-style
3040 OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an
3041 additional clip mask to be ANDed with the clip-mask.
3042 Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than
3043 others. */
3044 
3045     XCB_GC_TILE_STIPPLE_ORIGIN_X = 4096,
3046 /**< TODO */
3047 
3048     XCB_GC_TILE_STIPPLE_ORIGIN_Y = 8192,
3049 /**< TODO */
3050 
3051     XCB_GC_FONT = 16384,
3052 /**< Which font to use for the `ImageText8` and `ImageText16` requests. */
3053 
3054     XCB_GC_SUBWINDOW_MODE = 32768,
3055 /**< For ClipByChildren, both source and destination windows are additionally
3056 clipped by all viewable InputOutput children. For IncludeInferiors, neither
3057 source nor destination window is
3058 clipped by inferiors. This will result in including subwindow contents in the source and drawing
3059 through subwindow boundaries of the destination. The use of IncludeInferiors with a source or
3060 destination window of one depth with mapped inferiors of differing depth is not illegal, but the
3061 semantics is undefined by the core protocol. */
3062 
3063     XCB_GC_GRAPHICS_EXPOSURES = 65536,
3064 /**< Whether ExposureEvents should be generated (1) or not (0).
3065 
3066 The default is 1. */
3067 
3068     XCB_GC_CLIP_ORIGIN_X = 131072,
3069 /**< TODO */
3070 
3071     XCB_GC_CLIP_ORIGIN_Y = 262144,
3072 /**< TODO */
3073 
3074     XCB_GC_CLIP_MASK = 524288,
3075 /**< The clip-mask restricts writes to the destination drawable. Only pixels where the clip-mask has
3076 bits set to 1 are drawn. Pixels are not drawn outside the area covered by the clip-mask or where
3077 the clip-mask has bits set to 0. The clip-mask affects all graphics requests, but it does not clip
3078 sources. The clip-mask origin is interpreted relative to the origin of whatever destination drawable is specified in a graphics request. If a pixmap is specified as the clip-mask, it must have
3079 depth 1 and have the same root as the gcontext (or a Match error results). If clip-mask is None,
3080 then pixels are always drawn, regardless of the clip origin. The clip-mask can also be set with the
3081 SetClipRectangles request. */
3082 
3083     XCB_GC_DASH_OFFSET = 1048576,
3084 /**< TODO */
3085 
3086     XCB_GC_DASH_LIST = 2097152,
3087 /**< TODO */
3088 
3089     XCB_GC_ARC_MODE = 4194304
3090 /**< TODO */
3091 
3092 } xcb_gc_t;
3093 
3094 typedef enum xcb_gx_t {
3095     XCB_GX_CLEAR = 0,
3096     XCB_GX_AND = 1,
3097     XCB_GX_AND_REVERSE = 2,
3098     XCB_GX_COPY = 3,
3099     XCB_GX_AND_INVERTED = 4,
3100     XCB_GX_NOOP = 5,
3101     XCB_GX_XOR = 6,
3102     XCB_GX_OR = 7,
3103     XCB_GX_NOR = 8,
3104     XCB_GX_EQUIV = 9,
3105     XCB_GX_INVERT = 10,
3106     XCB_GX_OR_REVERSE = 11,
3107     XCB_GX_COPY_INVERTED = 12,
3108     XCB_GX_OR_INVERTED = 13,
3109     XCB_GX_NAND = 14,
3110     XCB_GX_SET = 15
3111 } xcb_gx_t;
3112 
3113 typedef enum xcb_line_style_t {
3114     XCB_LINE_STYLE_SOLID = 0,
3115     XCB_LINE_STYLE_ON_OFF_DASH = 1,
3116     XCB_LINE_STYLE_DOUBLE_DASH = 2
3117 } xcb_line_style_t;
3118 
3119 typedef enum xcb_cap_style_t {
3120     XCB_CAP_STYLE_NOT_LAST = 0,
3121     XCB_CAP_STYLE_BUTT = 1,
3122     XCB_CAP_STYLE_ROUND = 2,
3123     XCB_CAP_STYLE_PROJECTING = 3
3124 } xcb_cap_style_t;
3125 
3126 typedef enum xcb_join_style_t {
3127     XCB_JOIN_STYLE_MITER = 0,
3128     XCB_JOIN_STYLE_ROUND = 1,
3129     XCB_JOIN_STYLE_BEVEL = 2
3130 } xcb_join_style_t;
3131 
3132 typedef enum xcb_fill_style_t {
3133     XCB_FILL_STYLE_SOLID = 0,
3134     XCB_FILL_STYLE_TILED = 1,
3135     XCB_FILL_STYLE_STIPPLED = 2,
3136     XCB_FILL_STYLE_OPAQUE_STIPPLED = 3
3137 } xcb_fill_style_t;
3138 
3139 typedef enum xcb_fill_rule_t {
3140     XCB_FILL_RULE_EVEN_ODD = 0,
3141     XCB_FILL_RULE_WINDING = 1
3142 } xcb_fill_rule_t;
3143 
3144 typedef enum xcb_subwindow_mode_t {
3145     XCB_SUBWINDOW_MODE_CLIP_BY_CHILDREN = 0,
3146     XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS = 1
3147 } xcb_subwindow_mode_t;
3148 
3149 typedef enum xcb_arc_mode_t {
3150     XCB_ARC_MODE_CHORD = 0,
3151     XCB_ARC_MODE_PIE_SLICE = 1
3152 } xcb_arc_mode_t;
3153 
3154 /** Opcode for xcb_create_gc. */
3155 #define XCB_CREATE_GC 55
3156 
3157 /**
3158  * @brief xcb_create_gc_request_t
3159  **/
3160 typedef struct xcb_create_gc_request_t {
3161     uint8_t        major_opcode; /**<  */
3162     uint8_t        pad0; /**<  */
3163     uint16_t       length; /**<  */
3164     xcb_gcontext_t cid; /**<  */
3165     xcb_drawable_t drawable; /**<  */
3166     uint32_t       value_mask; /**<  */
3167 } xcb_create_gc_request_t;
3168 
3169 /** Opcode for xcb_change_gc. */
3170 #define XCB_CHANGE_GC 56
3171 
3172 /**
3173  * @brief xcb_change_gc_request_t
3174  **/
3175 typedef struct xcb_change_gc_request_t {
3176     uint8_t        major_opcode; /**<  */
3177     uint8_t        pad0; /**<  */
3178     uint16_t       length; /**<  */
3179     xcb_gcontext_t gc; /**<  */
3180     uint32_t       value_mask; /**<  */
3181 } xcb_change_gc_request_t;
3182 
3183 /** Opcode for xcb_copy_gc. */
3184 #define XCB_COPY_GC 57
3185 
3186 /**
3187  * @brief xcb_copy_gc_request_t
3188  **/
3189 typedef struct xcb_copy_gc_request_t {
3190     uint8_t        major_opcode; /**<  */
3191     uint8_t        pad0; /**<  */
3192     uint16_t       length; /**<  */
3193     xcb_gcontext_t src_gc; /**<  */
3194     xcb_gcontext_t dst_gc; /**<  */
3195     uint32_t       value_mask; /**<  */
3196 } xcb_copy_gc_request_t;
3197 
3198 /** Opcode for xcb_set_dashes. */
3199 #define XCB_SET_DASHES 58
3200 
3201 /**
3202  * @brief xcb_set_dashes_request_t
3203  **/
3204 typedef struct xcb_set_dashes_request_t {
3205     uint8_t        major_opcode; /**<  */
3206     uint8_t        pad0; /**<  */
3207     uint16_t       length; /**<  */
3208     xcb_gcontext_t gc; /**<  */
3209     uint16_t       dash_offset; /**<  */
3210     uint16_t       dashes_len; /**<  */
3211 } xcb_set_dashes_request_t;
3212 
3213 typedef enum xcb_clip_ordering_t {
3214     XCB_CLIP_ORDERING_UNSORTED = 0,
3215     XCB_CLIP_ORDERING_Y_SORTED = 1,
3216     XCB_CLIP_ORDERING_YX_SORTED = 2,
3217     XCB_CLIP_ORDERING_YX_BANDED = 3
3218 } xcb_clip_ordering_t;
3219 
3220 /** Opcode for xcb_set_clip_rectangles. */
3221 #define XCB_SET_CLIP_RECTANGLES 59
3222 
3223 /**
3224  * @brief xcb_set_clip_rectangles_request_t
3225  **/
3226 typedef struct xcb_set_clip_rectangles_request_t {
3227     uint8_t        major_opcode; /**<  */
3228     uint8_t        ordering; /**<  */
3229     uint16_t       length; /**<  */
3230     xcb_gcontext_t gc; /**<  */
3231     int16_t        clip_x_origin; /**<  */
3232     int16_t        clip_y_origin; /**<  */
3233 } xcb_set_clip_rectangles_request_t;
3234 
3235 /** Opcode for xcb_free_gc. */
3236 #define XCB_FREE_GC 60
3237 
3238 /**
3239  * @brief xcb_free_gc_request_t
3240  **/
3241 typedef struct xcb_free_gc_request_t {
3242     uint8_t        major_opcode; /**<  */
3243     uint8_t        pad0; /**<  */
3244     uint16_t       length; /**<  */
3245     xcb_gcontext_t gc; /**<  */
3246 } xcb_free_gc_request_t;
3247 
3248 /** Opcode for xcb_clear_area. */
3249 #define XCB_CLEAR_AREA 61
3250 
3251 /**
3252  * @brief xcb_clear_area_request_t
3253  **/
3254 typedef struct xcb_clear_area_request_t {
3255     uint8_t      major_opcode; /**<  */
3256     uint8_t      exposures; /**<  */
3257     uint16_t     length; /**<  */
3258     xcb_window_t window; /**<  */
3259     int16_t      x; /**<  */
3260     int16_t      y; /**<  */
3261     uint16_t     width; /**<  */
3262     uint16_t     height; /**<  */
3263 } xcb_clear_area_request_t;
3264 
3265 /** Opcode for xcb_copy_area. */
3266 #define XCB_COPY_AREA 62
3267 
3268 /**
3269  * @brief xcb_copy_area_request_t
3270  **/
3271 typedef struct xcb_copy_area_request_t {
3272     uint8_t        major_opcode; /**<  */
3273     uint8_t        pad0; /**<  */
3274     uint16_t       length; /**<  */
3275     xcb_drawable_t src_drawable; /**<  */
3276     xcb_drawable_t dst_drawable; /**<  */
3277     xcb_gcontext_t gc; /**<  */
3278     int16_t        src_x; /**<  */
3279     int16_t        src_y; /**<  */
3280     int16_t        dst_x; /**<  */
3281     int16_t        dst_y; /**<  */
3282     uint16_t       width; /**<  */
3283     uint16_t       height; /**<  */
3284 } xcb_copy_area_request_t;
3285 
3286 /** Opcode for xcb_copy_plane. */
3287 #define XCB_COPY_PLANE 63
3288 
3289 /**
3290  * @brief xcb_copy_plane_request_t
3291  **/
3292 typedef struct xcb_copy_plane_request_t {
3293     uint8_t        major_opcode; /**<  */
3294     uint8_t        pad0; /**<  */
3295     uint16_t       length; /**<  */
3296     xcb_drawable_t src_drawable; /**<  */
3297     xcb_drawable_t dst_drawable; /**<  */
3298     xcb_gcontext_t gc; /**<  */
3299     int16_t        src_x; /**<  */
3300     int16_t        src_y; /**<  */
3301     int16_t        dst_x; /**<  */
3302     int16_t        dst_y; /**<  */
3303     uint16_t       width; /**<  */
3304     uint16_t       height; /**<  */
3305     uint32_t       bit_plane; /**<  */
3306 } xcb_copy_plane_request_t;
3307 
3308 typedef enum xcb_coord_mode_t {
3309     XCB_COORD_MODE_ORIGIN = 0,
3310 /**< Treats all coordinates as relative to the origin. */
3311 
3312     XCB_COORD_MODE_PREVIOUS = 1
3313 /**< Treats all coordinates after the first as relative to the previous coordinate. */
3314 
3315 } xcb_coord_mode_t;
3316 
3317 /** Opcode for xcb_poly_point. */
3318 #define XCB_POLY_POINT 64
3319 
3320 /**
3321  * @brief xcb_poly_point_request_t
3322  **/
3323 typedef struct xcb_poly_point_request_t {
3324     uint8_t        major_opcode; /**<  */
3325     uint8_t        coordinate_mode; /**<  */
3326     uint16_t       length; /**<  */
3327     xcb_drawable_t drawable; /**<  */
3328     xcb_gcontext_t gc; /**<  */
3329 } xcb_poly_point_request_t;
3330 
3331 /** Opcode for xcb_poly_line. */
3332 #define XCB_POLY_LINE 65
3333 
3334 /**
3335  * @brief xcb_poly_line_request_t
3336  **/
3337 typedef struct xcb_poly_line_request_t {
3338     uint8_t        major_opcode; /**<  */
3339     uint8_t        coordinate_mode; /**<  */
3340     uint16_t       length; /**<  */
3341     xcb_drawable_t drawable; /**<  */
3342     xcb_gcontext_t gc; /**<  */
3343 } xcb_poly_line_request_t;
3344 
3345 /**
3346  * @brief xcb_segment_t
3347  **/
3348 typedef struct xcb_segment_t {
3349     int16_t x1; /**<  */
3350     int16_t y1; /**<  */
3351     int16_t x2; /**<  */
3352     int16_t y2; /**<  */
3353 } xcb_segment_t;
3354 
3355 /**
3356  * @brief xcb_segment_iterator_t
3357  **/
3358 typedef struct xcb_segment_iterator_t {
3359     xcb_segment_t *data; /**<  */
3360     int            rem; /**<  */
3361     int            index; /**<  */
3362 } xcb_segment_iterator_t;
3363 
3364 /** Opcode for xcb_poly_segment. */
3365 #define XCB_POLY_SEGMENT 66
3366 
3367 /**
3368  * @brief xcb_poly_segment_request_t
3369  **/
3370 typedef struct xcb_poly_segment_request_t {
3371     uint8_t        major_opcode; /**<  */
3372     uint8_t        pad0; /**<  */
3373     uint16_t       length; /**<  */
3374     xcb_drawable_t drawable; /**<  */
3375     xcb_gcontext_t gc; /**<  */
3376 } xcb_poly_segment_request_t;
3377 
3378 /** Opcode for xcb_poly_rectangle. */
3379 #define XCB_POLY_RECTANGLE 67
3380 
3381 /**
3382  * @brief xcb_poly_rectangle_request_t
3383  **/
3384 typedef struct xcb_poly_rectangle_request_t {
3385     uint8_t        major_opcode; /**<  */
3386     uint8_t        pad0; /**<  */
3387     uint16_t       length; /**<  */
3388     xcb_drawable_t drawable; /**<  */
3389     xcb_gcontext_t gc; /**<  */
3390 } xcb_poly_rectangle_request_t;
3391 
3392 /** Opcode for xcb_poly_arc. */
3393 #define XCB_POLY_ARC 68
3394 
3395 /**
3396  * @brief xcb_poly_arc_request_t
3397  **/
3398 typedef struct xcb_poly_arc_request_t {
3399     uint8_t        major_opcode; /**<  */
3400     uint8_t        pad0; /**<  */
3401     uint16_t       length; /**<  */
3402     xcb_drawable_t drawable; /**<  */
3403     xcb_gcontext_t gc; /**<  */
3404 } xcb_poly_arc_request_t;
3405 
3406 typedef enum xcb_poly_shape_t {
3407     XCB_POLY_SHAPE_COMPLEX = 0,
3408     XCB_POLY_SHAPE_NONCONVEX = 1,
3409     XCB_POLY_SHAPE_CONVEX = 2
3410 } xcb_poly_shape_t;
3411 
3412 /** Opcode for xcb_fill_poly. */
3413 #define XCB_FILL_POLY 69
3414 
3415 /**
3416  * @brief xcb_fill_poly_request_t
3417  **/
3418 typedef struct xcb_fill_poly_request_t {
3419     uint8_t        major_opcode; /**<  */
3420     uint8_t        pad0; /**<  */
3421     uint16_t       length; /**<  */
3422     xcb_drawable_t drawable; /**<  */
3423     xcb_gcontext_t gc; /**<  */
3424     uint8_t        shape; /**<  */
3425     uint8_t        coordinate_mode; /**<  */
3426     uint8_t        pad1[2]; /**<  */
3427 } xcb_fill_poly_request_t;
3428 
3429 /** Opcode for xcb_poly_fill_rectangle. */
3430 #define XCB_POLY_FILL_RECTANGLE 70
3431 
3432 /**
3433  * @brief xcb_poly_fill_rectangle_request_t
3434  **/
3435 typedef struct xcb_poly_fill_rectangle_request_t {
3436     uint8_t        major_opcode; /**<  */
3437     uint8_t        pad0; /**<  */
3438     uint16_t       length; /**<  */
3439     xcb_drawable_t drawable; /**<  */
3440     xcb_gcontext_t gc; /**<  */
3441 } xcb_poly_fill_rectangle_request_t;
3442 
3443 /** Opcode for xcb_poly_fill_arc. */
3444 #define XCB_POLY_FILL_ARC 71
3445 
3446 /**
3447  * @brief xcb_poly_fill_arc_request_t
3448  **/
3449 typedef struct xcb_poly_fill_arc_request_t {
3450     uint8_t        major_opcode; /**<  */
3451     uint8_t        pad0; /**<  */
3452     uint16_t       length; /**<  */
3453     xcb_drawable_t drawable; /**<  */
3454     xcb_gcontext_t gc; /**<  */
3455 } xcb_poly_fill_arc_request_t;
3456 
3457 typedef enum xcb_image_format_t {
3458     XCB_IMAGE_FORMAT_XY_BITMAP = 0,
3459     XCB_IMAGE_FORMAT_XY_PIXMAP = 1,
3460     XCB_IMAGE_FORMAT_Z_PIXMAP = 2
3461 } xcb_image_format_t;
3462 
3463 /** Opcode for xcb_put_image. */
3464 #define XCB_PUT_IMAGE 72
3465 
3466 /**
3467  * @brief xcb_put_image_request_t
3468  **/
3469 typedef struct xcb_put_image_request_t {
3470     uint8_t        major_opcode; /**<  */
3471     uint8_t        format; /**<  */
3472     uint16_t       length; /**<  */
3473     xcb_drawable_t drawable; /**<  */
3474     xcb_gcontext_t gc; /**<  */
3475     uint16_t       width; /**<  */
3476     uint16_t       height; /**<  */
3477     int16_t        dst_x; /**<  */
3478     int16_t        dst_y; /**<  */
3479     uint8_t        left_pad; /**<  */
3480     uint8_t        depth; /**<  */
3481     uint8_t        pad0[2]; /**<  */
3482 } xcb_put_image_request_t;
3483 
3484 /**
3485  * @brief xcb_get_image_cookie_t
3486  **/
3487 typedef struct xcb_get_image_cookie_t {
3488     unsigned int sequence; /**<  */
3489 } xcb_get_image_cookie_t;
3490 
3491 /** Opcode for xcb_get_image. */
3492 #define XCB_GET_IMAGE 73
3493 
3494 /**
3495  * @brief xcb_get_image_request_t
3496  **/
3497 typedef struct xcb_get_image_request_t {
3498     uint8_t        major_opcode; /**<  */
3499     uint8_t        format; /**<  */
3500     uint16_t       length; /**<  */
3501     xcb_drawable_t drawable; /**<  */
3502     int16_t        x; /**<  */
3503     int16_t        y; /**<  */
3504     uint16_t       width; /**<  */
3505     uint16_t       height; /**<  */
3506     uint32_t       plane_mask; /**<  */
3507 } xcb_get_image_request_t;
3508 
3509 /**
3510  * @brief xcb_get_image_reply_t
3511  **/
3512 typedef struct xcb_get_image_reply_t {
3513     uint8_t        response_type; /**<  */
3514     uint8_t        depth; /**<  */
3515     uint16_t       sequence; /**<  */
3516     uint32_t       length; /**<  */
3517     xcb_visualid_t visual; /**<  */
3518     uint8_t        pad0[20]; /**<  */
3519 } xcb_get_image_reply_t;
3520 
3521 /** Opcode for xcb_poly_text_8. */
3522 #define XCB_POLY_TEXT_8 74
3523 
3524 /**
3525  * @brief xcb_poly_text_8_request_t
3526  **/
3527 typedef struct xcb_poly_text_8_request_t {
3528     uint8_t        major_opcode; /**<  */
3529     uint8_t        pad0; /**<  */
3530     uint16_t       length; /**<  */
3531     xcb_drawable_t drawable; /**<  */
3532     xcb_gcontext_t gc; /**<  */
3533     int16_t        x; /**<  */
3534     int16_t        y; /**<  */
3535 } xcb_poly_text_8_request_t;
3536 
3537 /** Opcode for xcb_poly_text_16. */
3538 #define XCB_POLY_TEXT_16 75
3539 
3540 /**
3541  * @brief xcb_poly_text_16_request_t
3542  **/
3543 typedef struct xcb_poly_text_16_request_t {
3544     uint8_t        major_opcode; /**<  */
3545     uint8_t        pad0; /**<  */
3546     uint16_t       length; /**<  */
3547     xcb_drawable_t drawable; /**<  */
3548     xcb_gcontext_t gc; /**<  */
3549     int16_t        x; /**<  */
3550     int16_t        y; /**<  */
3551 } xcb_poly_text_16_request_t;
3552 
3553 /** Opcode for xcb_image_text_8. */
3554 #define XCB_IMAGE_TEXT_8 76
3555 
3556 /**
3557  * @brief xcb_image_text_8_request_t
3558  **/
3559 typedef struct xcb_image_text_8_request_t {
3560     uint8_t        major_opcode; /**<  */
3561     uint8_t        string_len; /**<  */
3562     uint16_t       length; /**<  */
3563     xcb_drawable_t drawable; /**<  */
3564     xcb_gcontext_t gc; /**<  */
3565     int16_t        x; /**<  */
3566     int16_t        y; /**<  */
3567 } xcb_image_text_8_request_t;
3568 
3569 /** Opcode for xcb_image_text_16. */
3570 #define XCB_IMAGE_TEXT_16 77
3571 
3572 /**
3573  * @brief xcb_image_text_16_request_t
3574  **/
3575 typedef struct xcb_image_text_16_request_t {
3576     uint8_t        major_opcode; /**<  */
3577     uint8_t        string_len; /**<  */
3578     uint16_t       length; /**<  */
3579     xcb_drawable_t drawable; /**<  */
3580     xcb_gcontext_t gc; /**<  */
3581     int16_t        x; /**<  */
3582     int16_t        y; /**<  */
3583 } xcb_image_text_16_request_t;
3584 
3585 typedef enum xcb_colormap_alloc_t {
3586     XCB_COLORMAP_ALLOC_NONE = 0,
3587     XCB_COLORMAP_ALLOC_ALL = 1
3588 } xcb_colormap_alloc_t;
3589 
3590 /** Opcode for xcb_create_colormap. */
3591 #define XCB_CREATE_COLORMAP 78
3592 
3593 /**
3594  * @brief xcb_create_colormap_request_t
3595  **/
3596 typedef struct xcb_create_colormap_request_t {
3597     uint8_t        major_opcode; /**<  */
3598     uint8_t        alloc; /**<  */
3599     uint16_t       length; /**<  */
3600     xcb_colormap_t mid; /**<  */
3601     xcb_window_t   window; /**<  */
3602     xcb_visualid_t visual; /**<  */
3603 } xcb_create_colormap_request_t;
3604 
3605 /** Opcode for xcb_free_colormap. */
3606 #define XCB_FREE_COLORMAP 79
3607 
3608 /**
3609  * @brief xcb_free_colormap_request_t
3610  **/
3611 typedef struct xcb_free_colormap_request_t {
3612     uint8_t        major_opcode; /**<  */
3613     uint8_t        pad0; /**<  */
3614     uint16_t       length; /**<  */
3615     xcb_colormap_t cmap; /**<  */
3616 } xcb_free_colormap_request_t;
3617 
3618 /** Opcode for xcb_copy_colormap_and_free. */
3619 #define XCB_COPY_COLORMAP_AND_FREE 80
3620 
3621 /**
3622  * @brief xcb_copy_colormap_and_free_request_t
3623  **/
3624 typedef struct xcb_copy_colormap_and_free_request_t {
3625     uint8_t        major_opcode; /**<  */
3626     uint8_t        pad0; /**<  */
3627     uint16_t       length; /**<  */
3628     xcb_colormap_t mid; /**<  */
3629     xcb_colormap_t src_cmap; /**<  */
3630 } xcb_copy_colormap_and_free_request_t;
3631 
3632 /** Opcode for xcb_install_colormap. */
3633 #define XCB_INSTALL_COLORMAP 81
3634 
3635 /**
3636  * @brief xcb_install_colormap_request_t
3637  **/
3638 typedef struct xcb_install_colormap_request_t {
3639     uint8_t        major_opcode; /**<  */
3640     uint8_t        pad0; /**<  */
3641     uint16_t       length; /**<  */
3642     xcb_colormap_t cmap; /**<  */
3643 } xcb_install_colormap_request_t;
3644 
3645 /** Opcode for xcb_uninstall_colormap. */
3646 #define XCB_UNINSTALL_COLORMAP 82
3647 
3648 /**
3649  * @brief xcb_uninstall_colormap_request_t
3650  **/
3651 typedef struct xcb_uninstall_colormap_request_t {
3652     uint8_t        major_opcode; /**<  */
3653     uint8_t        pad0; /**<  */
3654     uint16_t       length; /**<  */
3655     xcb_colormap_t cmap; /**<  */
3656 } xcb_uninstall_colormap_request_t;
3657 
3658 /**
3659  * @brief xcb_list_installed_colormaps_cookie_t
3660  **/
3661 typedef struct xcb_list_installed_colormaps_cookie_t {
3662     unsigned int sequence; /**<  */
3663 } xcb_list_installed_colormaps_cookie_t;
3664 
3665 /** Opcode for xcb_list_installed_colormaps. */
3666 #define XCB_LIST_INSTALLED_COLORMAPS 83
3667 
3668 /**
3669  * @brief xcb_list_installed_colormaps_request_t
3670  **/
3671 typedef struct xcb_list_installed_colormaps_request_t {
3672     uint8_t      major_opcode; /**<  */
3673     uint8_t      pad0; /**<  */
3674     uint16_t     length; /**<  */
3675     xcb_window_t window; /**<  */
3676 } xcb_list_installed_colormaps_request_t;
3677 
3678 /**
3679  * @brief xcb_list_installed_colormaps_reply_t
3680  **/
3681 typedef struct xcb_list_installed_colormaps_reply_t {
3682     uint8_t  response_type; /**<  */
3683     uint8_t  pad0; /**<  */
3684     uint16_t sequence; /**<  */
3685     uint32_t length; /**<  */
3686     uint16_t cmaps_len; /**<  */
3687     uint8_t  pad1[22]; /**<  */
3688 } xcb_list_installed_colormaps_reply_t;
3689 
3690 /**
3691  * @brief xcb_alloc_color_cookie_t
3692  **/
3693 typedef struct xcb_alloc_color_cookie_t {
3694     unsigned int sequence; /**<  */
3695 } xcb_alloc_color_cookie_t;
3696 
3697 /** Opcode for xcb_alloc_color. */
3698 #define XCB_ALLOC_COLOR 84
3699 
3700 /**
3701  * @brief xcb_alloc_color_request_t
3702  **/
3703 typedef struct xcb_alloc_color_request_t {
3704     uint8_t        major_opcode; /**<  */
3705     uint8_t        pad0; /**<  */
3706     uint16_t       length; /**<  */
3707     xcb_colormap_t cmap; /**<  */
3708     uint16_t       red; /**<  */
3709     uint16_t       green; /**<  */
3710     uint16_t       blue; /**<  */
3711     uint8_t        pad1[2]; /**<  */
3712 } xcb_alloc_color_request_t;
3713 
3714 /**
3715  * @brief xcb_alloc_color_reply_t
3716  **/
3717 typedef struct xcb_alloc_color_reply_t {
3718     uint8_t  response_type; /**<  */
3719     uint8_t  pad0; /**<  */
3720     uint16_t sequence; /**<  */
3721     uint32_t length; /**<  */
3722     uint16_t red; /**<  */
3723     uint16_t green; /**<  */
3724     uint16_t blue; /**<  */
3725     uint8_t  pad1[2]; /**<  */
3726     uint32_t pixel; /**<  */
3727 } xcb_alloc_color_reply_t;
3728 
3729 /**
3730  * @brief xcb_alloc_named_color_cookie_t
3731  **/
3732 typedef struct xcb_alloc_named_color_cookie_t {
3733     unsigned int sequence; /**<  */
3734 } xcb_alloc_named_color_cookie_t;
3735 
3736 /** Opcode for xcb_alloc_named_color. */
3737 #define XCB_ALLOC_NAMED_COLOR 85
3738 
3739 /**
3740  * @brief xcb_alloc_named_color_request_t
3741  **/
3742 typedef struct xcb_alloc_named_color_request_t {
3743     uint8_t        major_opcode; /**<  */
3744     uint8_t        pad0; /**<  */
3745     uint16_t       length; /**<  */
3746     xcb_colormap_t cmap; /**<  */
3747     uint16_t       name_len; /**<  */
3748     uint8_t        pad1[2]; /**<  */
3749 } xcb_alloc_named_color_request_t;
3750 
3751 /**
3752  * @brief xcb_alloc_named_color_reply_t
3753  **/
3754 typedef struct xcb_alloc_named_color_reply_t {
3755     uint8_t  response_type; /**<  */
3756     uint8_t  pad0; /**<  */
3757     uint16_t sequence; /**<  */
3758     uint32_t length; /**<  */
3759     uint32_t pixel; /**<  */
3760     uint16_t exact_red; /**<  */
3761     uint16_t exact_green; /**<  */
3762     uint16_t exact_blue; /**<  */
3763     uint16_t visual_red; /**<  */
3764     uint16_t visual_green; /**<  */
3765     uint16_t visual_blue; /**<  */
3766 } xcb_alloc_named_color_reply_t;
3767 
3768 /**
3769  * @brief xcb_alloc_color_cells_cookie_t
3770  **/
3771 typedef struct xcb_alloc_color_cells_cookie_t {
3772     unsigned int sequence; /**<  */
3773 } xcb_alloc_color_cells_cookie_t;
3774 
3775 /** Opcode for xcb_alloc_color_cells. */
3776 #define XCB_ALLOC_COLOR_CELLS 86
3777 
3778 /**
3779  * @brief xcb_alloc_color_cells_request_t
3780  **/
3781 typedef struct xcb_alloc_color_cells_request_t {
3782     uint8_t        major_opcode; /**<  */
3783     uint8_t        contiguous; /**<  */
3784     uint16_t       length; /**<  */
3785     xcb_colormap_t cmap; /**<  */
3786     uint16_t       colors; /**<  */
3787     uint16_t       planes; /**<  */
3788 } xcb_alloc_color_cells_request_t;
3789 
3790 /**
3791  * @brief xcb_alloc_color_cells_reply_t
3792  **/
3793 typedef struct xcb_alloc_color_cells_reply_t {
3794     uint8_t  response_type; /**<  */
3795     uint8_t  pad0; /**<  */
3796     uint16_t sequence; /**<  */
3797     uint32_t length; /**<  */
3798     uint16_t pixels_len; /**<  */
3799     uint16_t masks_len; /**<  */
3800     uint8_t  pad1[20]; /**<  */
3801 } xcb_alloc_color_cells_reply_t;
3802 
3803 /**
3804  * @brief xcb_alloc_color_planes_cookie_t
3805  **/
3806 typedef struct xcb_alloc_color_planes_cookie_t {
3807     unsigned int sequence; /**<  */
3808 } xcb_alloc_color_planes_cookie_t;
3809 
3810 /** Opcode for xcb_alloc_color_planes. */
3811 #define XCB_ALLOC_COLOR_PLANES 87
3812 
3813 /**
3814  * @brief xcb_alloc_color_planes_request_t
3815  **/
3816 typedef struct xcb_alloc_color_planes_request_t {
3817     uint8_t        major_opcode; /**<  */
3818     uint8_t        contiguous; /**<  */
3819     uint16_t       length; /**<  */
3820     xcb_colormap_t cmap; /**<  */
3821     uint16_t       colors; /**<  */
3822     uint16_t       reds; /**<  */
3823     uint16_t       greens; /**<  */
3824     uint16_t       blues; /**<  */
3825 } xcb_alloc_color_planes_request_t;
3826 
3827 /**
3828  * @brief xcb_alloc_color_planes_reply_t
3829  **/
3830 typedef struct xcb_alloc_color_planes_reply_t {
3831     uint8_t  response_type; /**<  */
3832     uint8_t  pad0; /**<  */
3833     uint16_t sequence; /**<  */
3834     uint32_t length; /**<  */
3835     uint16_t pixels_len; /**<  */
3836     uint8_t  pad1[2]; /**<  */
3837     uint32_t red_mask; /**<  */
3838     uint32_t green_mask; /**<  */
3839     uint32_t blue_mask; /**<  */
3840     uint8_t  pad2[8]; /**<  */
3841 } xcb_alloc_color_planes_reply_t;
3842 
3843 /** Opcode for xcb_free_colors. */
3844 #define XCB_FREE_COLORS 88
3845 
3846 /**
3847  * @brief xcb_free_colors_request_t
3848  **/
3849 typedef struct xcb_free_colors_request_t {
3850     uint8_t        major_opcode; /**<  */
3851     uint8_t        pad0; /**<  */
3852     uint16_t       length; /**<  */
3853     xcb_colormap_t cmap; /**<  */
3854     uint32_t       plane_mask; /**<  */
3855 } xcb_free_colors_request_t;
3856 
3857 typedef enum xcb_color_flag_t {
3858     XCB_COLOR_FLAG_RED = 1,
3859     XCB_COLOR_FLAG_GREEN = 2,
3860     XCB_COLOR_FLAG_BLUE = 4
3861 } xcb_color_flag_t;
3862 
3863 /**
3864  * @brief xcb_coloritem_t
3865  **/
3866 typedef struct xcb_coloritem_t {
3867     uint32_t pixel; /**<  */
3868     uint16_t red; /**<  */
3869     uint16_t green; /**<  */
3870     uint16_t blue; /**<  */
3871     uint8_t  flags; /**<  */
3872     uint8_t  pad0; /**<  */
3873 } xcb_coloritem_t;
3874 
3875 /**
3876  * @brief xcb_coloritem_iterator_t
3877  **/
3878 typedef struct xcb_coloritem_iterator_t {
3879     xcb_coloritem_t *data; /**<  */
3880     int              rem; /**<  */
3881     int              index; /**<  */
3882 } xcb_coloritem_iterator_t;
3883 
3884 /** Opcode for xcb_store_colors. */
3885 #define XCB_STORE_COLORS 89
3886 
3887 /**
3888  * @brief xcb_store_colors_request_t
3889  **/
3890 typedef struct xcb_store_colors_request_t {
3891     uint8_t        major_opcode; /**<  */
3892     uint8_t        pad0; /**<  */
3893     uint16_t       length; /**<  */
3894     xcb_colormap_t cmap; /**<  */
3895 } xcb_store_colors_request_t;
3896 
3897 /** Opcode for xcb_store_named_color. */
3898 #define XCB_STORE_NAMED_COLOR 90
3899 
3900 /**
3901  * @brief xcb_store_named_color_request_t
3902  **/
3903 typedef struct xcb_store_named_color_request_t {
3904     uint8_t        major_opcode; /**<  */
3905     uint8_t        flags; /**<  */
3906     uint16_t       length; /**<  */
3907     xcb_colormap_t cmap; /**<  */
3908     uint32_t       pixel; /**<  */
3909     uint16_t       name_len; /**<  */
3910     uint8_t        pad0[2]; /**<  */
3911 } xcb_store_named_color_request_t;
3912 
3913 /**
3914  * @brief xcb_rgb_t
3915  **/
3916 typedef struct xcb_rgb_t {
3917     uint16_t red; /**<  */
3918     uint16_t green; /**<  */
3919     uint16_t blue; /**<  */
3920     uint8_t  pad0[2]; /**<  */
3921 } xcb_rgb_t;
3922 
3923 /**
3924  * @brief xcb_rgb_iterator_t
3925  **/
3926 typedef struct xcb_rgb_iterator_t {
3927     xcb_rgb_t *data; /**<  */
3928     int        rem; /**<  */
3929     int        index; /**<  */
3930 } xcb_rgb_iterator_t;
3931 
3932 /**
3933  * @brief xcb_query_colors_cookie_t
3934  **/
3935 typedef struct xcb_query_colors_cookie_t {
3936     unsigned int sequence; /**<  */
3937 } xcb_query_colors_cookie_t;
3938 
3939 /** Opcode for xcb_query_colors. */
3940 #define XCB_QUERY_COLORS 91
3941 
3942 /**
3943  * @brief xcb_query_colors_request_t
3944  **/
3945 typedef struct xcb_query_colors_request_t {
3946     uint8_t        major_opcode; /**<  */
3947     uint8_t        pad0; /**<  */
3948     uint16_t       length; /**<  */
3949     xcb_colormap_t cmap; /**<  */
3950 } xcb_query_colors_request_t;
3951 
3952 /**
3953  * @brief xcb_query_colors_reply_t
3954  **/
3955 typedef struct xcb_query_colors_reply_t {
3956     uint8_t  response_type; /**<  */
3957     uint8_t  pad0; /**<  */
3958     uint16_t sequence; /**<  */
3959     uint32_t length; /**<  */
3960     uint16_t colors_len; /**<  */
3961     uint8_t  pad1[22]; /**<  */
3962 } xcb_query_colors_reply_t;
3963 
3964 /**
3965  * @brief xcb_lookup_color_cookie_t
3966  **/
3967 typedef struct xcb_lookup_color_cookie_t {
3968     unsigned int sequence; /**<  */
3969 } xcb_lookup_color_cookie_t;
3970 
3971 /** Opcode for xcb_lookup_color. */
3972 #define XCB_LOOKUP_COLOR 92
3973 
3974 /**
3975  * @brief xcb_lookup_color_request_t
3976  **/
3977 typedef struct xcb_lookup_color_request_t {
3978     uint8_t        major_opcode; /**<  */
3979     uint8_t        pad0; /**<  */
3980     uint16_t       length; /**<  */
3981     xcb_colormap_t cmap; /**<  */
3982     uint16_t       name_len; /**<  */
3983     uint8_t        pad1[2]; /**<  */
3984 } xcb_lookup_color_request_t;
3985 
3986 /**
3987  * @brief xcb_lookup_color_reply_t
3988  **/
3989 typedef struct xcb_lookup_color_reply_t {
3990     uint8_t  response_type; /**<  */
3991     uint8_t  pad0; /**<  */
3992     uint16_t sequence; /**<  */
3993     uint32_t length; /**<  */
3994     uint16_t exact_red; /**<  */
3995     uint16_t exact_green; /**<  */
3996     uint16_t exact_blue; /**<  */
3997     uint16_t visual_red; /**<  */
3998     uint16_t visual_green; /**<  */
3999     uint16_t visual_blue; /**<  */
4000 } xcb_lookup_color_reply_t;
4001 
4002 typedef enum xcb_pixmap_enum_t {
4003     XCB_PIXMAP_NONE = 0
4004 } xcb_pixmap_enum_t;
4005 
4006 /** Opcode for xcb_create_cursor. */
4007 #define XCB_CREATE_CURSOR 93
4008 
4009 /**
4010  * @brief xcb_create_cursor_request_t
4011  **/
4012 typedef struct xcb_create_cursor_request_t {
4013     uint8_t      major_opcode; /**<  */
4014     uint8_t      pad0; /**<  */
4015     uint16_t     length; /**<  */
4016     xcb_cursor_t cid; /**<  */
4017     xcb_pixmap_t source; /**<  */
4018     xcb_pixmap_t mask; /**<  */
4019     uint16_t     fore_red; /**<  */
4020     uint16_t     fore_green; /**<  */
4021     uint16_t     fore_blue; /**<  */
4022     uint16_t     back_red; /**<  */
4023     uint16_t     back_green; /**<  */
4024     uint16_t     back_blue; /**<  */
4025     uint16_t     x; /**<  */
4026     uint16_t     y; /**<  */
4027 } xcb_create_cursor_request_t;
4028 
4029 typedef enum xcb_font_enum_t {
4030     XCB_FONT_NONE = 0
4031 } xcb_font_enum_t;
4032 
4033 /** Opcode for xcb_create_glyph_cursor. */
4034 #define XCB_CREATE_GLYPH_CURSOR 94
4035 
4036 /**
4037  * @brief xcb_create_glyph_cursor_request_t
4038  **/
4039 typedef struct xcb_create_glyph_cursor_request_t {
4040     uint8_t      major_opcode; /**<  */
4041     uint8_t      pad0; /**<  */
4042     uint16_t     length; /**<  */
4043     xcb_cursor_t cid; /**<  */
4044     xcb_font_t   source_font; /**<  */
4045     xcb_font_t   mask_font; /**<  */
4046     uint16_t     source_char; /**<  */
4047     uint16_t     mask_char; /**<  */
4048     uint16_t     fore_red; /**<  */
4049     uint16_t     fore_green; /**<  */
4050     uint16_t     fore_blue; /**<  */
4051     uint16_t     back_red; /**<  */
4052     uint16_t     back_green; /**<  */
4053     uint16_t     back_blue; /**<  */
4054 } xcb_create_glyph_cursor_request_t;
4055 
4056 /** Opcode for xcb_free_cursor. */
4057 #define XCB_FREE_CURSOR 95
4058 
4059 /**
4060  * @brief xcb_free_cursor_request_t
4061  **/
4062 typedef struct xcb_free_cursor_request_t {
4063     uint8_t      major_opcode; /**<  */
4064     uint8_t      pad0; /**<  */
4065     uint16_t     length; /**<  */
4066     xcb_cursor_t cursor; /**<  */
4067 } xcb_free_cursor_request_t;
4068 
4069 /** Opcode for xcb_recolor_cursor. */
4070 #define XCB_RECOLOR_CURSOR 96
4071 
4072 /**
4073  * @brief xcb_recolor_cursor_request_t
4074  **/
4075 typedef struct xcb_recolor_cursor_request_t {
4076     uint8_t      major_opcode; /**<  */
4077     uint8_t      pad0; /**<  */
4078     uint16_t     length; /**<  */
4079     xcb_cursor_t cursor; /**<  */
4080     uint16_t     fore_red; /**<  */
4081     uint16_t     fore_green; /**<  */
4082     uint16_t     fore_blue; /**<  */
4083     uint16_t     back_red; /**<  */
4084     uint16_t     back_green; /**<  */
4085     uint16_t     back_blue; /**<  */
4086 } xcb_recolor_cursor_request_t;
4087 
4088 typedef enum xcb_query_shape_of_t {
4089     XCB_QUERY_SHAPE_OF_LARGEST_CURSOR = 0,
4090     XCB_QUERY_SHAPE_OF_FASTEST_TILE = 1,
4091     XCB_QUERY_SHAPE_OF_FASTEST_STIPPLE = 2
4092 } xcb_query_shape_of_t;
4093 
4094 /**
4095  * @brief xcb_query_best_size_cookie_t
4096  **/
4097 typedef struct xcb_query_best_size_cookie_t {
4098     unsigned int sequence; /**<  */
4099 } xcb_query_best_size_cookie_t;
4100 
4101 /** Opcode for xcb_query_best_size. */
4102 #define XCB_QUERY_BEST_SIZE 97
4103 
4104 /**
4105  * @brief xcb_query_best_size_request_t
4106  **/
4107 typedef struct xcb_query_best_size_request_t {
4108     uint8_t        major_opcode; /**<  */
4109     uint8_t        _class; /**<  */
4110     uint16_t       length; /**<  */
4111     xcb_drawable_t drawable; /**<  */
4112     uint16_t       width; /**<  */
4113     uint16_t       height; /**<  */
4114 } xcb_query_best_size_request_t;
4115 
4116 /**
4117  * @brief xcb_query_best_size_reply_t
4118  **/
4119 typedef struct xcb_query_best_size_reply_t {
4120     uint8_t  response_type; /**<  */
4121     uint8_t  pad0; /**<  */
4122     uint16_t sequence; /**<  */
4123     uint32_t length; /**<  */
4124     uint16_t width; /**<  */
4125     uint16_t height; /**<  */
4126 } xcb_query_best_size_reply_t;
4127 
4128 /**
4129  * @brief xcb_query_extension_cookie_t
4130  **/
4131 typedef struct xcb_query_extension_cookie_t {
4132     unsigned int sequence; /**<  */
4133 } xcb_query_extension_cookie_t;
4134 
4135 /** Opcode for xcb_query_extension. */
4136 #define XCB_QUERY_EXTENSION 98
4137 
4138 /**
4139  * @brief xcb_query_extension_request_t
4140  **/
4141 typedef struct xcb_query_extension_request_t {
4142     uint8_t  major_opcode; /**<  */
4143     uint8_t  pad0; /**<  */
4144     uint16_t length; /**<  */
4145     uint16_t name_len; /**<  */
4146     uint8_t  pad1[2]; /**<  */
4147 } xcb_query_extension_request_t;
4148 
4149 /**
4150  * @brief xcb_query_extension_reply_t
4151  **/
4152 typedef struct xcb_query_extension_reply_t {
4153     uint8_t  response_type; /**<  */
4154     uint8_t  pad0; /**<  */
4155     uint16_t sequence; /**<  */
4156     uint32_t length; /**<  */
4157     uint8_t  present; /**<  */
4158     uint8_t  major_opcode; /**<  */
4159     uint8_t  first_event; /**<  */
4160     uint8_t  first_error; /**<  */
4161 } xcb_query_extension_reply_t;
4162 
4163 /**
4164  * @brief xcb_list_extensions_cookie_t
4165  **/
4166 typedef struct xcb_list_extensions_cookie_t {
4167     unsigned int sequence; /**<  */
4168 } xcb_list_extensions_cookie_t;
4169 
4170 /** Opcode for xcb_list_extensions. */
4171 #define XCB_LIST_EXTENSIONS 99
4172 
4173 /**
4174  * @brief xcb_list_extensions_request_t
4175  **/
4176 typedef struct xcb_list_extensions_request_t {
4177     uint8_t  major_opcode; /**<  */
4178     uint8_t  pad0; /**<  */
4179     uint16_t length; /**<  */
4180 } xcb_list_extensions_request_t;
4181 
4182 /**
4183  * @brief xcb_list_extensions_reply_t
4184  **/
4185 typedef struct xcb_list_extensions_reply_t {
4186     uint8_t  response_type; /**<  */
4187     uint8_t  names_len; /**<  */
4188     uint16_t sequence; /**<  */
4189     uint32_t length; /**<  */
4190     uint8_t  pad0[24]; /**<  */
4191 } xcb_list_extensions_reply_t;
4192 
4193 /** Opcode for xcb_change_keyboard_mapping. */
4194 #define XCB_CHANGE_KEYBOARD_MAPPING 100
4195 
4196 /**
4197  * @brief xcb_change_keyboard_mapping_request_t
4198  **/
4199 typedef struct xcb_change_keyboard_mapping_request_t {
4200     uint8_t       major_opcode; /**<  */
4201     uint8_t       keycode_count; /**<  */
4202     uint16_t      length; /**<  */
4203     xcb_keycode_t first_keycode; /**<  */
4204     uint8_t       keysyms_per_keycode; /**<  */
4205     uint8_t       pad0[2]; /**<  */
4206 } xcb_change_keyboard_mapping_request_t;
4207 
4208 /**
4209  * @brief xcb_get_keyboard_mapping_cookie_t
4210  **/
4211 typedef struct xcb_get_keyboard_mapping_cookie_t {
4212     unsigned int sequence; /**<  */
4213 } xcb_get_keyboard_mapping_cookie_t;
4214 
4215 /** Opcode for xcb_get_keyboard_mapping. */
4216 #define XCB_GET_KEYBOARD_MAPPING 101
4217 
4218 /**
4219  * @brief xcb_get_keyboard_mapping_request_t
4220  **/
4221 typedef struct xcb_get_keyboard_mapping_request_t {
4222     uint8_t       major_opcode; /**<  */
4223     uint8_t       pad0; /**<  */
4224     uint16_t      length; /**<  */
4225     xcb_keycode_t first_keycode; /**<  */
4226     uint8_t       count; /**<  */
4227 } xcb_get_keyboard_mapping_request_t;
4228 
4229 /**
4230  * @brief xcb_get_keyboard_mapping_reply_t
4231  **/
4232 typedef struct xcb_get_keyboard_mapping_reply_t {
4233     uint8_t  response_type; /**<  */
4234     uint8_t  keysyms_per_keycode; /**<  */
4235     uint16_t sequence; /**<  */
4236     uint32_t length; /**<  */
4237     uint8_t  pad0[24]; /**<  */
4238 } xcb_get_keyboard_mapping_reply_t;
4239 
4240 typedef enum xcb_kb_t {
4241     XCB_KB_KEY_CLICK_PERCENT = 1,
4242     XCB_KB_BELL_PERCENT = 2,
4243     XCB_KB_BELL_PITCH = 4,
4244     XCB_KB_BELL_DURATION = 8,
4245     XCB_KB_LED = 16,
4246     XCB_KB_LED_MODE = 32,
4247     XCB_KB_KEY = 64,
4248     XCB_KB_AUTO_REPEAT_MODE = 128
4249 } xcb_kb_t;
4250 
4251 typedef enum xcb_led_mode_t {
4252     XCB_LED_MODE_OFF = 0,
4253     XCB_LED_MODE_ON = 1
4254 } xcb_led_mode_t;
4255 
4256 typedef enum xcb_auto_repeat_mode_t {
4257     XCB_AUTO_REPEAT_MODE_OFF = 0,
4258     XCB_AUTO_REPEAT_MODE_ON = 1,
4259     XCB_AUTO_REPEAT_MODE_DEFAULT = 2
4260 } xcb_auto_repeat_mode_t;
4261 
4262 /** Opcode for xcb_change_keyboard_control. */
4263 #define XCB_CHANGE_KEYBOARD_CONTROL 102
4264 
4265 /**
4266  * @brief xcb_change_keyboard_control_request_t
4267  **/
4268 typedef struct xcb_change_keyboard_control_request_t {
4269     uint8_t  major_opcode; /**<  */
4270     uint8_t  pad0; /**<  */
4271     uint16_t length; /**<  */
4272     uint32_t value_mask; /**<  */
4273 } xcb_change_keyboard_control_request_t;
4274 
4275 /**
4276  * @brief xcb_get_keyboard_control_cookie_t
4277  **/
4278 typedef struct xcb_get_keyboard_control_cookie_t {
4279     unsigned int sequence; /**<  */
4280 } xcb_get_keyboard_control_cookie_t;
4281 
4282 /** Opcode for xcb_get_keyboard_control. */
4283 #define XCB_GET_KEYBOARD_CONTROL 103
4284 
4285 /**
4286  * @brief xcb_get_keyboard_control_request_t
4287  **/
4288 typedef struct xcb_get_keyboard_control_request_t {
4289     uint8_t  major_opcode; /**<  */
4290     uint8_t  pad0; /**<  */
4291     uint16_t length; /**<  */
4292 } xcb_get_keyboard_control_request_t;
4293 
4294 /**
4295  * @brief xcb_get_keyboard_control_reply_t
4296  **/
4297 typedef struct xcb_get_keyboard_control_reply_t {
4298     uint8_t  response_type; /**<  */
4299     uint8_t  global_auto_repeat; /**<  */
4300     uint16_t sequence; /**<  */
4301     uint32_t length; /**<  */
4302     uint32_t led_mask; /**<  */
4303     uint8_t  key_click_percent; /**<  */
4304     uint8_t  bell_percent; /**<  */
4305     uint16_t bell_pitch; /**<  */
4306     uint16_t bell_duration; /**<  */
4307     uint8_t  pad0[2]; /**<  */
4308     uint8_t  auto_repeats[32]; /**<  */
4309 } xcb_get_keyboard_control_reply_t;
4310 
4311 /** Opcode for xcb_bell. */
4312 #define XCB_BELL 104
4313 
4314 /**
4315  * @brief xcb_bell_request_t
4316  **/
4317 typedef struct xcb_bell_request_t {
4318     uint8_t  major_opcode; /**<  */
4319     int8_t   percent; /**<  */
4320     uint16_t length; /**<  */
4321 } xcb_bell_request_t;
4322 
4323 /** Opcode for xcb_change_pointer_control. */
4324 #define XCB_CHANGE_POINTER_CONTROL 105
4325 
4326 /**
4327  * @brief xcb_change_pointer_control_request_t
4328  **/
4329 typedef struct xcb_change_pointer_control_request_t {
4330     uint8_t  major_opcode; /**<  */
4331     uint8_t  pad0; /**<  */
4332     uint16_t length; /**<  */
4333     int16_t  acceleration_numerator; /**<  */
4334     int16_t  acceleration_denominator; /**<  */
4335     int16_t  threshold; /**<  */
4336     uint8_t  do_acceleration; /**<  */
4337     uint8_t  do_threshold; /**<  */
4338 } xcb_change_pointer_control_request_t;
4339 
4340 /**
4341  * @brief xcb_get_pointer_control_cookie_t
4342  **/
4343 typedef struct xcb_get_pointer_control_cookie_t {
4344     unsigned int sequence; /**<  */
4345 } xcb_get_pointer_control_cookie_t;
4346 
4347 /** Opcode for xcb_get_pointer_control. */
4348 #define XCB_GET_POINTER_CONTROL 106
4349 
4350 /**
4351  * @brief xcb_get_pointer_control_request_t
4352  **/
4353 typedef struct xcb_get_pointer_control_request_t {
4354     uint8_t  major_opcode; /**<  */
4355     uint8_t  pad0; /**<  */
4356     uint16_t length; /**<  */
4357 } xcb_get_pointer_control_request_t;
4358 
4359 /**
4360  * @brief xcb_get_pointer_control_reply_t
4361  **/
4362 typedef struct xcb_get_pointer_control_reply_t {
4363     uint8_t  response_type; /**<  */
4364     uint8_t  pad0; /**<  */
4365     uint16_t sequence; /**<  */
4366     uint32_t length; /**<  */
4367     uint16_t acceleration_numerator; /**<  */
4368     uint16_t acceleration_denominator; /**<  */
4369     uint16_t threshold; /**<  */
4370     uint8_t  pad1[18]; /**<  */
4371 } xcb_get_pointer_control_reply_t;
4372 
4373 typedef enum xcb_blanking_t {
4374     XCB_BLANKING_NOT_PREFERRED = 0,
4375     XCB_BLANKING_PREFERRED = 1,
4376     XCB_BLANKING_DEFAULT = 2
4377 } xcb_blanking_t;
4378 
4379 typedef enum xcb_exposures_t {
4380     XCB_EXPOSURES_NOT_ALLOWED = 0,
4381     XCB_EXPOSURES_ALLOWED = 1,
4382     XCB_EXPOSURES_DEFAULT = 2
4383 } xcb_exposures_t;
4384 
4385 /** Opcode for xcb_set_screen_saver. */
4386 #define XCB_SET_SCREEN_SAVER 107
4387 
4388 /**
4389  * @brief xcb_set_screen_saver_request_t
4390  **/
4391 typedef struct xcb_set_screen_saver_request_t {
4392     uint8_t  major_opcode; /**<  */
4393     uint8_t  pad0; /**<  */
4394     uint16_t length; /**<  */
4395     int16_t  timeout; /**<  */
4396     int16_t  interval; /**<  */
4397     uint8_t  prefer_blanking; /**<  */
4398     uint8_t  allow_exposures; /**<  */
4399 } xcb_set_screen_saver_request_t;
4400 
4401 /**
4402  * @brief xcb_get_screen_saver_cookie_t
4403  **/
4404 typedef struct xcb_get_screen_saver_cookie_t {
4405     unsigned int sequence; /**<  */
4406 } xcb_get_screen_saver_cookie_t;
4407 
4408 /** Opcode for xcb_get_screen_saver. */
4409 #define XCB_GET_SCREEN_SAVER 108
4410 
4411 /**
4412  * @brief xcb_get_screen_saver_request_t
4413  **/
4414 typedef struct xcb_get_screen_saver_request_t {
4415     uint8_t  major_opcode; /**<  */
4416     uint8_t  pad0; /**<  */
4417     uint16_t length; /**<  */
4418 } xcb_get_screen_saver_request_t;
4419 
4420 /**
4421  * @brief xcb_get_screen_saver_reply_t
4422  **/
4423 typedef struct xcb_get_screen_saver_reply_t {
4424     uint8_t  response_type; /**<  */
4425     uint8_t  pad0; /**<  */
4426     uint16_t sequence; /**<  */
4427     uint32_t length; /**<  */
4428     uint16_t timeout; /**<  */
4429     uint16_t interval; /**<  */
4430     uint8_t  prefer_blanking; /**<  */
4431     uint8_t  allow_exposures; /**<  */
4432     uint8_t  pad1[18]; /**<  */
4433 } xcb_get_screen_saver_reply_t;
4434 
4435 typedef enum xcb_host_mode_t {
4436     XCB_HOST_MODE_INSERT = 0,
4437     XCB_HOST_MODE_DELETE = 1
4438 } xcb_host_mode_t;
4439 
4440 typedef enum xcb_family_t {
4441     XCB_FAMILY_INTERNET = 0,
4442     XCB_FAMILY_DECNET = 1,
4443     XCB_FAMILY_CHAOS = 2,
4444     XCB_FAMILY_SERVER_INTERPRETED = 5,
4445     XCB_FAMILY_INTERNET_6 = 6
4446 } xcb_family_t;
4447 
4448 /** Opcode for xcb_change_hosts. */
4449 #define XCB_CHANGE_HOSTS 109
4450 
4451 /**
4452  * @brief xcb_change_hosts_request_t
4453  **/
4454 typedef struct xcb_change_hosts_request_t {
4455     uint8_t  major_opcode; /**<  */
4456     uint8_t  mode; /**<  */
4457     uint16_t length; /**<  */
4458     uint8_t  family; /**<  */
4459     uint8_t  pad0; /**<  */
4460     uint16_t address_len; /**<  */
4461 } xcb_change_hosts_request_t;
4462 
4463 /**
4464  * @brief xcb_host_t
4465  **/
4466 typedef struct xcb_host_t {
4467     uint8_t  family; /**<  */
4468     uint8_t  pad0; /**<  */
4469     uint16_t address_len; /**<  */
4470 } xcb_host_t;
4471 
4472 /**
4473  * @brief xcb_host_iterator_t
4474  **/
4475 typedef struct xcb_host_iterator_t {
4476     xcb_host_t *data; /**<  */
4477     int         rem; /**<  */
4478     int         index; /**<  */
4479 } xcb_host_iterator_t;
4480 
4481 /**
4482  * @brief xcb_list_hosts_cookie_t
4483  **/
4484 typedef struct xcb_list_hosts_cookie_t {
4485     unsigned int sequence; /**<  */
4486 } xcb_list_hosts_cookie_t;
4487 
4488 /** Opcode for xcb_list_hosts. */
4489 #define XCB_LIST_HOSTS 110
4490 
4491 /**
4492  * @brief xcb_list_hosts_request_t
4493  **/
4494 typedef struct xcb_list_hosts_request_t {
4495     uint8_t  major_opcode; /**<  */
4496     uint8_t  pad0; /**<  */
4497     uint16_t length; /**<  */
4498 } xcb_list_hosts_request_t;
4499 
4500 /**
4501  * @brief xcb_list_hosts_reply_t
4502  **/
4503 typedef struct xcb_list_hosts_reply_t {
4504     uint8_t  response_type; /**<  */
4505     uint8_t  mode; /**<  */
4506     uint16_t sequence; /**<  */
4507     uint32_t length; /**<  */
4508     uint16_t hosts_len; /**<  */
4509     uint8_t  pad0[22]; /**<  */
4510 } xcb_list_hosts_reply_t;
4511 
4512 typedef enum xcb_access_control_t {
4513     XCB_ACCESS_CONTROL_DISABLE = 0,
4514     XCB_ACCESS_CONTROL_ENABLE = 1
4515 } xcb_access_control_t;
4516 
4517 /** Opcode for xcb_set_access_control. */
4518 #define XCB_SET_ACCESS_CONTROL 111
4519 
4520 /**
4521  * @brief xcb_set_access_control_request_t
4522  **/
4523 typedef struct xcb_set_access_control_request_t {
4524     uint8_t  major_opcode; /**<  */
4525     uint8_t  mode; /**<  */
4526     uint16_t length; /**<  */
4527 } xcb_set_access_control_request_t;
4528 
4529 typedef enum xcb_close_down_t {
4530     XCB_CLOSE_DOWN_DESTROY_ALL = 0,
4531     XCB_CLOSE_DOWN_RETAIN_PERMANENT = 1,
4532     XCB_CLOSE_DOWN_RETAIN_TEMPORARY = 2
4533 } xcb_close_down_t;
4534 
4535 /** Opcode for xcb_set_close_down_mode. */
4536 #define XCB_SET_CLOSE_DOWN_MODE 112
4537 
4538 /**
4539  * @brief xcb_set_close_down_mode_request_t
4540  **/
4541 typedef struct xcb_set_close_down_mode_request_t {
4542     uint8_t  major_opcode; /**<  */
4543     uint8_t  mode; /**<  */
4544     uint16_t length; /**<  */
4545 } xcb_set_close_down_mode_request_t;
4546 
4547 typedef enum xcb_kill_t {
4548     XCB_KILL_ALL_TEMPORARY = 0
4549 } xcb_kill_t;
4550 
4551 /** Opcode for xcb_kill_client. */
4552 #define XCB_KILL_CLIENT 113
4553 
4554 /**
4555  * @brief xcb_kill_client_request_t
4556  **/
4557 typedef struct xcb_kill_client_request_t {
4558     uint8_t  major_opcode; /**<  */
4559     uint8_t  pad0; /**<  */
4560     uint16_t length; /**<  */
4561     uint32_t resource; /**<  */
4562 } xcb_kill_client_request_t;
4563 
4564 /** Opcode for xcb_rotate_properties. */
4565 #define XCB_ROTATE_PROPERTIES 114
4566 
4567 /**
4568  * @brief xcb_rotate_properties_request_t
4569  **/
4570 typedef struct xcb_rotate_properties_request_t {
4571     uint8_t      major_opcode; /**<  */
4572     uint8_t      pad0; /**<  */
4573     uint16_t     length; /**<  */
4574     xcb_window_t window; /**<  */
4575     uint16_t     atoms_len; /**<  */
4576     int16_t      delta; /**<  */
4577 } xcb_rotate_properties_request_t;
4578 
4579 typedef enum xcb_screen_saver_t {
4580     XCB_SCREEN_SAVER_RESET = 0,
4581     XCB_SCREEN_SAVER_ACTIVE = 1
4582 } xcb_screen_saver_t;
4583 
4584 /** Opcode for xcb_force_screen_saver. */
4585 #define XCB_FORCE_SCREEN_SAVER 115
4586 
4587 /**
4588  * @brief xcb_force_screen_saver_request_t
4589  **/
4590 typedef struct xcb_force_screen_saver_request_t {
4591     uint8_t  major_opcode; /**<  */
4592     uint8_t  mode; /**<  */
4593     uint16_t length; /**<  */
4594 } xcb_force_screen_saver_request_t;
4595 
4596 typedef enum xcb_mapping_status_t {
4597     XCB_MAPPING_STATUS_SUCCESS = 0,
4598     XCB_MAPPING_STATUS_BUSY = 1,
4599     XCB_MAPPING_STATUS_FAILURE = 2
4600 } xcb_mapping_status_t;
4601 
4602 /**
4603  * @brief xcb_set_pointer_mapping_cookie_t
4604  **/
4605 typedef struct xcb_set_pointer_mapping_cookie_t {
4606     unsigned int sequence; /**<  */
4607 } xcb_set_pointer_mapping_cookie_t;
4608 
4609 /** Opcode for xcb_set_pointer_mapping. */
4610 #define XCB_SET_POINTER_MAPPING 116
4611 
4612 /**
4613  * @brief xcb_set_pointer_mapping_request_t
4614  **/
4615 typedef struct xcb_set_pointer_mapping_request_t {
4616     uint8_t  major_opcode; /**<  */
4617     uint8_t  map_len; /**<  */
4618     uint16_t length; /**<  */
4619 } xcb_set_pointer_mapping_request_t;
4620 
4621 /**
4622  * @brief xcb_set_pointer_mapping_reply_t
4623  **/
4624 typedef struct xcb_set_pointer_mapping_reply_t {
4625     uint8_t  response_type; /**<  */
4626     uint8_t  status; /**<  */
4627     uint16_t sequence; /**<  */
4628     uint32_t length; /**<  */
4629 } xcb_set_pointer_mapping_reply_t;
4630 
4631 /**
4632  * @brief xcb_get_pointer_mapping_cookie_t
4633  **/
4634 typedef struct xcb_get_pointer_mapping_cookie_t {
4635     unsigned int sequence; /**<  */
4636 } xcb_get_pointer_mapping_cookie_t;
4637 
4638 /** Opcode for xcb_get_pointer_mapping. */
4639 #define XCB_GET_POINTER_MAPPING 117
4640 
4641 /**
4642  * @brief xcb_get_pointer_mapping_request_t
4643  **/
4644 typedef struct xcb_get_pointer_mapping_request_t {
4645     uint8_t  major_opcode; /**<  */
4646     uint8_t  pad0; /**<  */
4647     uint16_t length; /**<  */
4648 } xcb_get_pointer_mapping_request_t;
4649 
4650 /**
4651  * @brief xcb_get_pointer_mapping_reply_t
4652  **/
4653 typedef struct xcb_get_pointer_mapping_reply_t {
4654     uint8_t  response_type; /**<  */
4655     uint8_t  map_len; /**<  */
4656     uint16_t sequence; /**<  */
4657     uint32_t length; /**<  */
4658     uint8_t  pad0[24]; /**<  */
4659 } xcb_get_pointer_mapping_reply_t;
4660 
4661 typedef enum xcb_map_index_t {
4662     XCB_MAP_INDEX_SHIFT = 0,
4663     XCB_MAP_INDEX_LOCK = 1,
4664     XCB_MAP_INDEX_CONTROL = 2,
4665     XCB_MAP_INDEX_1 = 3,
4666     XCB_MAP_INDEX_2 = 4,
4667     XCB_MAP_INDEX_3 = 5,
4668     XCB_MAP_INDEX_4 = 6,
4669     XCB_MAP_INDEX_5 = 7
4670 } xcb_map_index_t;
4671 
4672 /**
4673  * @brief xcb_set_modifier_mapping_cookie_t
4674  **/
4675 typedef struct xcb_set_modifier_mapping_cookie_t {
4676     unsigned int sequence; /**<  */
4677 } xcb_set_modifier_mapping_cookie_t;
4678 
4679 /** Opcode for xcb_set_modifier_mapping. */
4680 #define XCB_SET_MODIFIER_MAPPING 118
4681 
4682 /**
4683  * @brief xcb_set_modifier_mapping_request_t
4684  **/
4685 typedef struct xcb_set_modifier_mapping_request_t {
4686     uint8_t  major_opcode; /**<  */
4687     uint8_t  keycodes_per_modifier; /**<  */
4688     uint16_t length; /**<  */
4689 } xcb_set_modifier_mapping_request_t;
4690 
4691 /**
4692  * @brief xcb_set_modifier_mapping_reply_t
4693  **/
4694 typedef struct xcb_set_modifier_mapping_reply_t {
4695     uint8_t  response_type; /**<  */
4696     uint8_t  status; /**<  */
4697     uint16_t sequence; /**<  */
4698     uint32_t length; /**<  */
4699 } xcb_set_modifier_mapping_reply_t;
4700 
4701 /**
4702  * @brief xcb_get_modifier_mapping_cookie_t
4703  **/
4704 typedef struct xcb_get_modifier_mapping_cookie_t {
4705     unsigned int sequence; /**<  */
4706 } xcb_get_modifier_mapping_cookie_t;
4707 
4708 /** Opcode for xcb_get_modifier_mapping. */
4709 #define XCB_GET_MODIFIER_MAPPING 119
4710 
4711 /**
4712  * @brief xcb_get_modifier_mapping_request_t
4713  **/
4714 typedef struct xcb_get_modifier_mapping_request_t {
4715     uint8_t  major_opcode; /**<  */
4716     uint8_t  pad0; /**<  */
4717     uint16_t length; /**<  */
4718 } xcb_get_modifier_mapping_request_t;
4719 
4720 /**
4721  * @brief xcb_get_modifier_mapping_reply_t
4722  **/
4723 typedef struct xcb_get_modifier_mapping_reply_t {
4724     uint8_t  response_type; /**<  */
4725     uint8_t  keycodes_per_modifier; /**<  */
4726     uint16_t sequence; /**<  */
4727     uint32_t length; /**<  */
4728     uint8_t  pad0[24]; /**<  */
4729 } xcb_get_modifier_mapping_reply_t;
4730 
4731 /** Opcode for xcb_no_operation. */
4732 #define XCB_NO_OPERATION 127
4733 
4734 /**
4735  * @brief xcb_no_operation_request_t
4736  **/
4737 typedef struct xcb_no_operation_request_t {
4738     uint8_t  major_opcode; /**<  */
4739     uint8_t  pad0; /**<  */
4740     uint16_t length; /**<  */
4741 } xcb_no_operation_request_t;
4742 
4743 /**
4744  * Get the next element of the iterator
4745  * @param i Pointer to a xcb_char2b_iterator_t
4746  *
4747  * Get the next element in the iterator. The member rem is
4748  * decreased by one. The member data points to the next
4749  * element. The member index is increased by sizeof(xcb_char2b_t)
4750  */
4751 void
4752 xcb_char2b_next (xcb_char2b_iterator_t *i  /**< */);
4753 
4754 /**
4755  * Return the iterator pointing to the last element
4756  * @param i An xcb_char2b_iterator_t
4757  * @return  The iterator pointing to the last element
4758  *
4759  * Set the current element in the iterator to the last element.
4760  * The member rem is set to 0. The member data points to the
4761  * last element.
4762  */
4763 xcb_generic_iterator_t
4764 xcb_char2b_end (xcb_char2b_iterator_t i  /**< */);
4765 
4766 /**
4767  * Get the next element of the iterator
4768  * @param i Pointer to a xcb_window_iterator_t
4769  *
4770  * Get the next element in the iterator. The member rem is
4771  * decreased by one. The member data points to the next
4772  * element. The member index is increased by sizeof(xcb_window_t)
4773  */
4774 void
4775 xcb_window_next (xcb_window_iterator_t *i  /**< */);
4776 
4777 /**
4778  * Return the iterator pointing to the last element
4779  * @param i An xcb_window_iterator_t
4780  * @return  The iterator pointing to the last element
4781  *
4782  * Set the current element in the iterator to the last element.
4783  * The member rem is set to 0. The member data points to the
4784  * last element.
4785  */
4786 xcb_generic_iterator_t
4787 xcb_window_end (xcb_window_iterator_t i  /**< */);
4788 
4789 /**
4790  * Get the next element of the iterator
4791  * @param i Pointer to a xcb_pixmap_iterator_t
4792  *
4793  * Get the next element in the iterator. The member rem is
4794  * decreased by one. The member data points to the next
4795  * element. The member index is increased by sizeof(xcb_pixmap_t)
4796  */
4797 void
4798 xcb_pixmap_next (xcb_pixmap_iterator_t *i  /**< */);
4799 
4800 /**
4801  * Return the iterator pointing to the last element
4802  * @param i An xcb_pixmap_iterator_t
4803  * @return  The iterator pointing to the last element
4804  *
4805  * Set the current element in the iterator to the last element.
4806  * The member rem is set to 0. The member data points to the
4807  * last element.
4808  */
4809 xcb_generic_iterator_t
4810 xcb_pixmap_end (xcb_pixmap_iterator_t i  /**< */);
4811 
4812 /**
4813  * Get the next element of the iterator
4814  * @param i Pointer to a xcb_cursor_iterator_t
4815  *
4816  * Get the next element in the iterator. The member rem is
4817  * decreased by one. The member data points to the next
4818  * element. The member index is increased by sizeof(xcb_cursor_t)
4819  */
4820 void
4821 xcb_cursor_next (xcb_cursor_iterator_t *i  /**< */);
4822 
4823 /**
4824  * Return the iterator pointing to the last element
4825  * @param i An xcb_cursor_iterator_t
4826  * @return  The iterator pointing to the last element
4827  *
4828  * Set the current element in the iterator to the last element.
4829  * The member rem is set to 0. The member data points to the
4830  * last element.
4831  */
4832 xcb_generic_iterator_t
4833 xcb_cursor_end (xcb_cursor_iterator_t i  /**< */);
4834 
4835 /**
4836  * Get the next element of the iterator
4837  * @param i Pointer to a xcb_font_iterator_t
4838  *
4839  * Get the next element in the iterator. The member rem is
4840  * decreased by one. The member data points to the next
4841  * element. The member index is increased by sizeof(xcb_font_t)
4842  */
4843 void
4844 xcb_font_next (xcb_font_iterator_t *i  /**< */);
4845 
4846 /**
4847  * Return the iterator pointing to the last element
4848  * @param i An xcb_font_iterator_t
4849  * @return  The iterator pointing to the last element
4850  *
4851  * Set the current element in the iterator to the last element.
4852  * The member rem is set to 0. The member data points to the
4853  * last element.
4854  */
4855 xcb_generic_iterator_t
4856 xcb_font_end (xcb_font_iterator_t i  /**< */);
4857 
4858 /**
4859  * Get the next element of the iterator
4860  * @param i Pointer to a xcb_gcontext_iterator_t
4861  *
4862  * Get the next element in the iterator. The member rem is
4863  * decreased by one. The member data points to the next
4864  * element. The member index is increased by sizeof(xcb_gcontext_t)
4865  */
4866 void
4867 xcb_gcontext_next (xcb_gcontext_iterator_t *i  /**< */);
4868 
4869 /**
4870  * Return the iterator pointing to the last element
4871  * @param i An xcb_gcontext_iterator_t
4872  * @return  The iterator pointing to the last element
4873  *
4874  * Set the current element in the iterator to the last element.
4875  * The member rem is set to 0. The member data points to the
4876  * last element.
4877  */
4878 xcb_generic_iterator_t
4879 xcb_gcontext_end (xcb_gcontext_iterator_t i  /**< */);
4880 
4881 /**
4882  * Get the next element of the iterator
4883  * @param i Pointer to a xcb_colormap_iterator_t
4884  *
4885  * Get the next element in the iterator. The member rem is
4886  * decreased by one. The member data points to the next
4887  * element. The member index is increased by sizeof(xcb_colormap_t)
4888  */
4889 void
4890 xcb_colormap_next (xcb_colormap_iterator_t *i  /**< */);
4891 
4892 /**
4893  * Return the iterator pointing to the last element
4894  * @param i An xcb_colormap_iterator_t
4895  * @return  The iterator pointing to the last element
4896  *
4897  * Set the current element in the iterator to the last element.
4898  * The member rem is set to 0. The member data points to the
4899  * last element.
4900  */
4901 xcb_generic_iterator_t
4902 xcb_colormap_end (xcb_colormap_iterator_t i  /**< */);
4903 
4904 /**
4905  * Get the next element of the iterator
4906  * @param i Pointer to a xcb_atom_iterator_t
4907  *
4908  * Get the next element in the iterator. The member rem is
4909  * decreased by one. The member data points to the next
4910  * element. The member index is increased by sizeof(xcb_atom_t)
4911  */
4912 void
4913 xcb_atom_next (xcb_atom_iterator_t *i  /**< */);
4914 
4915 /**
4916  * Return the iterator pointing to the last element
4917  * @param i An xcb_atom_iterator_t
4918  * @return  The iterator pointing to the last element
4919  *
4920  * Set the current element in the iterator to the last element.
4921  * The member rem is set to 0. The member data points to the
4922  * last element.
4923  */
4924 xcb_generic_iterator_t
4925 xcb_atom_end (xcb_atom_iterator_t i  /**< */);
4926 
4927 /**
4928  * Get the next element of the iterator
4929  * @param i Pointer to a xcb_drawable_iterator_t
4930  *
4931  * Get the next element in the iterator. The member rem is
4932  * decreased by one. The member data points to the next
4933  * element. The member index is increased by sizeof(xcb_drawable_t)
4934  */
4935 void
4936 xcb_drawable_next (xcb_drawable_iterator_t *i  /**< */);
4937 
4938 /**
4939  * Return the iterator pointing to the last element
4940  * @param i An xcb_drawable_iterator_t
4941  * @return  The iterator pointing to the last element
4942  *
4943  * Set the current element in the iterator to the last element.
4944  * The member rem is set to 0. The member data points to the
4945  * last element.
4946  */
4947 xcb_generic_iterator_t
4948 xcb_drawable_end (xcb_drawable_iterator_t i  /**< */);
4949 
4950 /**
4951  * Get the next element of the iterator
4952  * @param i Pointer to a xcb_fontable_iterator_t
4953  *
4954  * Get the next element in the iterator. The member rem is
4955  * decreased by one. The member data points to the next
4956  * element. The member index is increased by sizeof(xcb_fontable_t)
4957  */
4958 void
4959 xcb_fontable_next (xcb_fontable_iterator_t *i  /**< */);
4960 
4961 /**
4962  * Return the iterator pointing to the last element
4963  * @param i An xcb_fontable_iterator_t
4964  * @return  The iterator pointing to the last element
4965  *
4966  * Set the current element in the iterator to the last element.
4967  * The member rem is set to 0. The member data points to the
4968  * last element.
4969  */
4970 xcb_generic_iterator_t
4971 xcb_fontable_end (xcb_fontable_iterator_t i  /**< */);
4972 
4973 /**
4974  * Get the next element of the iterator
4975  * @param i Pointer to a xcb_visualid_iterator_t
4976  *
4977  * Get the next element in the iterator. The member rem is
4978  * decreased by one. The member data points to the next
4979  * element. The member index is increased by sizeof(xcb_visualid_t)
4980  */
4981 void
4982 xcb_visualid_next (xcb_visualid_iterator_t *i  /**< */);
4983 
4984 /**
4985  * Return the iterator pointing to the last element
4986  * @param i An xcb_visualid_iterator_t
4987  * @return  The iterator pointing to the last element
4988  *
4989  * Set the current element in the iterator to the last element.
4990  * The member rem is set to 0. The member data points to the
4991  * last element.
4992  */
4993 xcb_generic_iterator_t
4994 xcb_visualid_end (xcb_visualid_iterator_t i  /**< */);
4995 
4996 /**
4997  * Get the next element of the iterator
4998  * @param i Pointer to a xcb_timestamp_iterator_t
4999  *
5000  * Get the next element in the iterator. The member rem is
5001  * decreased by one. The member data points to the next
5002  * element. The member index is increased by sizeof(xcb_timestamp_t)
5003  */
5004 void
5005 xcb_timestamp_next (xcb_timestamp_iterator_t *i  /**< */);
5006 
5007 /**
5008  * Return the iterator pointing to the last element
5009  * @param i An xcb_timestamp_iterator_t
5010  * @return  The iterator pointing to the last element
5011  *
5012  * Set the current element in the iterator to the last element.
5013  * The member rem is set to 0. The member data points to the
5014  * last element.
5015  */
5016 xcb_generic_iterator_t
5017 xcb_timestamp_end (xcb_timestamp_iterator_t i  /**< */);
5018 
5019 /**
5020  * Get the next element of the iterator
5021  * @param i Pointer to a xcb_keysym_iterator_t
5022  *
5023  * Get the next element in the iterator. The member rem is
5024  * decreased by one. The member data points to the next
5025  * element. The member index is increased by sizeof(xcb_keysym_t)
5026  */
5027 void
5028 xcb_keysym_next (xcb_keysym_iterator_t *i  /**< */);
5029 
5030 /**
5031  * Return the iterator pointing to the last element
5032  * @param i An xcb_keysym_iterator_t
5033  * @return  The iterator pointing to the last element
5034  *
5035  * Set the current element in the iterator to the last element.
5036  * The member rem is set to 0. The member data points to the
5037  * last element.
5038  */
5039 xcb_generic_iterator_t
5040 xcb_keysym_end (xcb_keysym_iterator_t i  /**< */);
5041 
5042 /**
5043  * Get the next element of the iterator
5044  * @param i Pointer to a xcb_keycode_iterator_t
5045  *
5046  * Get the next element in the iterator. The member rem is
5047  * decreased by one. The member data points to the next
5048  * element. The member index is increased by sizeof(xcb_keycode_t)
5049  */
5050 void
5051 xcb_keycode_next (xcb_keycode_iterator_t *i  /**< */);
5052 
5053 /**
5054  * Return the iterator pointing to the last element
5055  * @param i An xcb_keycode_iterator_t
5056  * @return  The iterator pointing to the last element
5057  *
5058  * Set the current element in the iterator to the last element.
5059  * The member rem is set to 0. The member data points to the
5060  * last element.
5061  */
5062 xcb_generic_iterator_t
5063 xcb_keycode_end (xcb_keycode_iterator_t i  /**< */);
5064 
5065 /**
5066  * Get the next element of the iterator
5067  * @param i Pointer to a xcb_button_iterator_t
5068  *
5069  * Get the next element in the iterator. The member rem is
5070  * decreased by one. The member data points to the next
5071  * element. The member index is increased by sizeof(xcb_button_t)
5072  */
5073 void
5074 xcb_button_next (xcb_button_iterator_t *i  /**< */);
5075 
5076 /**
5077  * Return the iterator pointing to the last element
5078  * @param i An xcb_button_iterator_t
5079  * @return  The iterator pointing to the last element
5080  *
5081  * Set the current element in the iterator to the last element.
5082  * The member rem is set to 0. The member data points to the
5083  * last element.
5084  */
5085 xcb_generic_iterator_t
5086 xcb_button_end (xcb_button_iterator_t i  /**< */);
5087 
5088 /**
5089  * Get the next element of the iterator
5090  * @param i Pointer to a xcb_point_iterator_t
5091  *
5092  * Get the next element in the iterator. The member rem is
5093  * decreased by one. The member data points to the next
5094  * element. The member index is increased by sizeof(xcb_point_t)
5095  */
5096 void
5097 xcb_point_next (xcb_point_iterator_t *i  /**< */);
5098 
5099 /**
5100  * Return the iterator pointing to the last element
5101  * @param i An xcb_point_iterator_t
5102  * @return  The iterator pointing to the last element
5103  *
5104  * Set the current element in the iterator to the last element.
5105  * The member rem is set to 0. The member data points to the
5106  * last element.
5107  */
5108 xcb_generic_iterator_t
5109 xcb_point_end (xcb_point_iterator_t i  /**< */);
5110 
5111 /**
5112  * Get the next element of the iterator
5113  * @param i Pointer to a xcb_rectangle_iterator_t
5114  *
5115  * Get the next element in the iterator. The member rem is
5116  * decreased by one. The member data points to the next
5117  * element. The member index is increased by sizeof(xcb_rectangle_t)
5118  */
5119 void
5120 xcb_rectangle_next (xcb_rectangle_iterator_t *i  /**< */);
5121 
5122 /**
5123  * Return the iterator pointing to the last element
5124  * @param i An xcb_rectangle_iterator_t
5125  * @return  The iterator pointing to the last element
5126  *
5127  * Set the current element in the iterator to the last element.
5128  * The member rem is set to 0. The member data points to the
5129  * last element.
5130  */
5131 xcb_generic_iterator_t
5132 xcb_rectangle_end (xcb_rectangle_iterator_t i  /**< */);
5133 
5134 /**
5135  * Get the next element of the iterator
5136  * @param i Pointer to a xcb_arc_iterator_t
5137  *
5138  * Get the next element in the iterator. The member rem is
5139  * decreased by one. The member data points to the next
5140  * element. The member index is increased by sizeof(xcb_arc_t)
5141  */
5142 void
5143 xcb_arc_next (xcb_arc_iterator_t *i  /**< */);
5144 
5145 /**
5146  * Return the iterator pointing to the last element
5147  * @param i An xcb_arc_iterator_t
5148  * @return  The iterator pointing to the last element
5149  *
5150  * Set the current element in the iterator to the last element.
5151  * The member rem is set to 0. The member data points to the
5152  * last element.
5153  */
5154 xcb_generic_iterator_t
5155 xcb_arc_end (xcb_arc_iterator_t i  /**< */);
5156 
5157 /**
5158  * Get the next element of the iterator
5159  * @param i Pointer to a xcb_format_iterator_t
5160  *
5161  * Get the next element in the iterator. The member rem is
5162  * decreased by one. The member data points to the next
5163  * element. The member index is increased by sizeof(xcb_format_t)
5164  */
5165 void
5166 xcb_format_next (xcb_format_iterator_t *i  /**< */);
5167 
5168 /**
5169  * Return the iterator pointing to the last element
5170  * @param i An xcb_format_iterator_t
5171  * @return  The iterator pointing to the last element
5172  *
5173  * Set the current element in the iterator to the last element.
5174  * The member rem is set to 0. The member data points to the
5175  * last element.
5176  */
5177 xcb_generic_iterator_t
5178 xcb_format_end (xcb_format_iterator_t i  /**< */);
5179 
5180 /**
5181  * Get the next element of the iterator
5182  * @param i Pointer to a xcb_visualtype_iterator_t
5183  *
5184  * Get the next element in the iterator. The member rem is
5185  * decreased by one. The member data points to the next
5186  * element. The member index is increased by sizeof(xcb_visualtype_t)
5187  */
5188 void
5189 xcb_visualtype_next (xcb_visualtype_iterator_t *i  /**< */);
5190 
5191 /**
5192  * Return the iterator pointing to the last element
5193  * @param i An xcb_visualtype_iterator_t
5194  * @return  The iterator pointing to the last element
5195  *
5196  * Set the current element in the iterator to the last element.
5197  * The member rem is set to 0. The member data points to the
5198  * last element.
5199  */
5200 xcb_generic_iterator_t
5201 xcb_visualtype_end (xcb_visualtype_iterator_t i  /**< */);
5202 
5203 int
5204 xcb_depth_sizeof (const void  *_buffer  /**< */);
5205 
5206 xcb_visualtype_t *
5207 xcb_depth_visuals (const xcb_depth_t *R  /**< */);
5208 
5209 int
5210 xcb_depth_visuals_length (const xcb_depth_t *R  /**< */);
5211 
5212 xcb_visualtype_iterator_t
5213 xcb_depth_visuals_iterator (const xcb_depth_t *R  /**< */);
5214 
5215 /**
5216  * Get the next element of the iterator
5217  * @param i Pointer to a xcb_depth_iterator_t
5218  *
5219  * Get the next element in the iterator. The member rem is
5220  * decreased by one. The member data points to the next
5221  * element. The member index is increased by sizeof(xcb_depth_t)
5222  */
5223 void
5224 xcb_depth_next (xcb_depth_iterator_t *i  /**< */);
5225 
5226 /**
5227  * Return the iterator pointing to the last element
5228  * @param i An xcb_depth_iterator_t
5229  * @return  The iterator pointing to the last element
5230  *
5231  * Set the current element in the iterator to the last element.
5232  * The member rem is set to 0. The member data points to the
5233  * last element.
5234  */
5235 xcb_generic_iterator_t
5236 xcb_depth_end (xcb_depth_iterator_t i  /**< */);
5237 
5238 int
5239 xcb_screen_sizeof (const void  *_buffer  /**< */);
5240 
5241 int
5242 xcb_screen_allowed_depths_length (const xcb_screen_t *R  /**< */);
5243 
5244 xcb_depth_iterator_t
5245 xcb_screen_allowed_depths_iterator (const xcb_screen_t *R  /**< */);
5246 
5247 /**
5248  * Get the next element of the iterator
5249  * @param i Pointer to a xcb_screen_iterator_t
5250  *
5251  * Get the next element in the iterator. The member rem is
5252  * decreased by one. The member data points to the next
5253  * element. The member index is increased by sizeof(xcb_screen_t)
5254  */
5255 void
5256 xcb_screen_next (xcb_screen_iterator_t *i  /**< */);
5257 
5258 /**
5259  * Return the iterator pointing to the last element
5260  * @param i An xcb_screen_iterator_t
5261  * @return  The iterator pointing to the last element
5262  *
5263  * Set the current element in the iterator to the last element.
5264  * The member rem is set to 0. The member data points to the
5265  * last element.
5266  */
5267 xcb_generic_iterator_t
5268 xcb_screen_end (xcb_screen_iterator_t i  /**< */);
5269 
5270 int
5271 xcb_setup_request_sizeof (const void  *_buffer  /**< */);
5272 
5273 char *
5274 xcb_setup_request_authorization_protocol_name (const xcb_setup_request_t *R  /**< */);
5275 
5276 int
5277 xcb_setup_request_authorization_protocol_name_length (const xcb_setup_request_t *R  /**< */);
5278 
5279 xcb_generic_iterator_t
5280 xcb_setup_request_authorization_protocol_name_end (const xcb_setup_request_t *R  /**< */);
5281 
5282 char *
5283 xcb_setup_request_authorization_protocol_data (const xcb_setup_request_t *R  /**< */);
5284 
5285 int
5286 xcb_setup_request_authorization_protocol_data_length (const xcb_setup_request_t *R  /**< */);
5287 
5288 xcb_generic_iterator_t
5289 xcb_setup_request_authorization_protocol_data_end (const xcb_setup_request_t *R  /**< */);
5290 
5291 /**
5292  * Get the next element of the iterator
5293  * @param i Pointer to a xcb_setup_request_iterator_t
5294  *
5295  * Get the next element in the iterator. The member rem is
5296  * decreased by one. The member data points to the next
5297  * element. The member index is increased by sizeof(xcb_setup_request_t)
5298  */
5299 void
5300 xcb_setup_request_next (xcb_setup_request_iterator_t *i  /**< */);
5301 
5302 /**
5303  * Return the iterator pointing to the last element
5304  * @param i An xcb_setup_request_iterator_t
5305  * @return  The iterator pointing to the last element
5306  *
5307  * Set the current element in the iterator to the last element.
5308  * The member rem is set to 0. The member data points to the
5309  * last element.
5310  */
5311 xcb_generic_iterator_t
5312 xcb_setup_request_end (xcb_setup_request_iterator_t i  /**< */);
5313 
5314 int
5315 xcb_setup_failed_sizeof (const void  *_buffer  /**< */);
5316 
5317 char *
5318 xcb_setup_failed_reason (const xcb_setup_failed_t *R  /**< */);
5319 
5320 int
5321 xcb_setup_failed_reason_length (const xcb_setup_failed_t *R  /**< */);
5322 
5323 xcb_generic_iterator_t
5324 xcb_setup_failed_reason_end (const xcb_setup_failed_t *R  /**< */);
5325 
5326 /**
5327  * Get the next element of the iterator
5328  * @param i Pointer to a xcb_setup_failed_iterator_t
5329  *
5330  * Get the next element in the iterator. The member rem is
5331  * decreased by one. The member data points to the next
5332  * element. The member index is increased by sizeof(xcb_setup_failed_t)
5333  */
5334 void
5335 xcb_setup_failed_next (xcb_setup_failed_iterator_t *i  /**< */);
5336 
5337 /**
5338  * Return the iterator pointing to the last element
5339  * @param i An xcb_setup_failed_iterator_t
5340  * @return  The iterator pointing to the last element
5341  *
5342  * Set the current element in the iterator to the last element.
5343  * The member rem is set to 0. The member data points to the
5344  * last element.
5345  */
5346 xcb_generic_iterator_t
5347 xcb_setup_failed_end (xcb_setup_failed_iterator_t i  /**< */);
5348 
5349 int
5350 xcb_setup_authenticate_sizeof (const void  *_buffer  /**< */);
5351 
5352 char *
5353 xcb_setup_authenticate_reason (const xcb_setup_authenticate_t *R  /**< */);
5354 
5355 int
5356 xcb_setup_authenticate_reason_length (const xcb_setup_authenticate_t *R  /**< */);
5357 
5358 xcb_generic_iterator_t
5359 xcb_setup_authenticate_reason_end (const xcb_setup_authenticate_t *R  /**< */);
5360 
5361 /**
5362  * Get the next element of the iterator
5363  * @param i Pointer to a xcb_setup_authenticate_iterator_t
5364  *
5365  * Get the next element in the iterator. The member rem is
5366  * decreased by one. The member data points to the next
5367  * element. The member index is increased by sizeof(xcb_setup_authenticate_t)
5368  */
5369 void
5370 xcb_setup_authenticate_next (xcb_setup_authenticate_iterator_t *i  /**< */);
5371 
5372 /**
5373  * Return the iterator pointing to the last element
5374  * @param i An xcb_setup_authenticate_iterator_t
5375  * @return  The iterator pointing to the last element
5376  *
5377  * Set the current element in the iterator to the last element.
5378  * The member rem is set to 0. The member data points to the
5379  * last element.
5380  */
5381 xcb_generic_iterator_t
5382 xcb_setup_authenticate_end (xcb_setup_authenticate_iterator_t i  /**< */);
5383 
5384 int
5385 xcb_setup_sizeof (const void  *_buffer  /**< */);
5386 
5387 char *
5388 xcb_setup_vendor (const xcb_setup_t *R  /**< */);
5389 
5390 int
5391 xcb_setup_vendor_length (const xcb_setup_t *R  /**< */);
5392 
5393 xcb_generic_iterator_t
5394 xcb_setup_vendor_end (const xcb_setup_t *R  /**< */);
5395 
5396 xcb_format_t *
5397 xcb_setup_pixmap_formats (const xcb_setup_t *R  /**< */);
5398 
5399 int
5400 xcb_setup_pixmap_formats_length (const xcb_setup_t *R  /**< */);
5401 
5402 xcb_format_iterator_t
5403 xcb_setup_pixmap_formats_iterator (const xcb_setup_t *R  /**< */);
5404 
5405 int
5406 xcb_setup_roots_length (const xcb_setup_t *R  /**< */);
5407 
5408 xcb_screen_iterator_t
5409 xcb_setup_roots_iterator (const xcb_setup_t *R  /**< */);
5410 
5411 /**
5412  * Get the next element of the iterator
5413  * @param i Pointer to a xcb_setup_iterator_t
5414  *
5415  * Get the next element in the iterator. The member rem is
5416  * decreased by one. The member data points to the next
5417  * element. The member index is increased by sizeof(xcb_setup_t)
5418  */
5419 void
5420 xcb_setup_next (xcb_setup_iterator_t *i  /**< */);
5421 
5422 /**
5423  * Return the iterator pointing to the last element
5424  * @param i An xcb_setup_iterator_t
5425  * @return  The iterator pointing to the last element
5426  *
5427  * Set the current element in the iterator to the last element.
5428  * The member rem is set to 0. The member data points to the
5429  * last element.
5430  */
5431 xcb_generic_iterator_t
5432 xcb_setup_end (xcb_setup_iterator_t i  /**< */);
5433 
5434 /**
5435  * Get the next element of the iterator
5436  * @param i Pointer to a xcb_client_message_data_iterator_t
5437  *
5438  * Get the next element in the iterator. The member rem is
5439  * decreased by one. The member data points to the next
5440  * element. The member index is increased by sizeof(xcb_client_message_data_t)
5441  */
5442 void
5443 xcb_client_message_data_next (xcb_client_message_data_iterator_t *i  /**< */);
5444 
5445 /**
5446  * Return the iterator pointing to the last element
5447  * @param i An xcb_client_message_data_iterator_t
5448  * @return  The iterator pointing to the last element
5449  *
5450  * Set the current element in the iterator to the last element.
5451  * The member rem is set to 0. The member data points to the
5452  * last element.
5453  */
5454 xcb_generic_iterator_t
5455 xcb_client_message_data_end (xcb_client_message_data_iterator_t i  /**< */);
5456 
5457 int
5458 xcb_create_window_sizeof (const void  *_buffer  /**< */);
5459 
5460 /**
5461  * @brief Creates a window
5462  *
5463  * @param c The connection
5464  * @param depth Specifies the new window's depth (TODO: what unit?).
5465  * \n
5466  * The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
5467  * \a parent window.
5468  * @param wid The ID with which you will refer to the new window, created by
5469  * `xcb_generate_id`.
5470  * @param parent The parent window of the new window.
5471  * @param x The X coordinate of the new window.
5472  * @param y The Y coordinate of the new window.
5473  * @param width The width of the new window.
5474  * @param height The height of the new window.
5475  * @param border_width TODO:
5476  * \n
5477  * Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
5478  * @param _class A bitmask of #xcb_window_class_t values.
5479  * @param _class \n
5480  * @param visual Specifies the id for the new window's visual.
5481  * \n
5482  * The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
5483  * \a parent window.
5484  * @param value_mask A bitmask of #xcb_cw_t values.
5485  * @return A cookie
5486  *
5487  * Creates an unmapped window as child of the specified \a parent window. A
5488  * CreateNotify event will be generated. The new window is placed on top in the
5489  * stacking order with respect to siblings.
5490  *
5491  * The coordinate system has the X axis horizontal and the Y axis vertical with
5492  * the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
5493  * of pixels, and coincide with pixel centers. Each window and pixmap has its own
5494  * coordinate system. For a window, the origin is inside the border at the inside,
5495  * upper-left corner.
5496  *
5497  * The created window is not yet displayed (mapped), call `xcb_map_window` to
5498  * display it.
5499  *
5500  * The created window will initially use the same cursor as its parent.
5501  *
5502  * This form can be used only if the request will not cause
5503  * a reply to be generated. Any returned error will be
5504  * saved for handling by xcb_request_check().
5505  */
5506 xcb_void_cookie_t
5507 xcb_create_window_checked (xcb_connection_t *c  /**< */,
5508                            uint8_t           depth  /**< */,
5509                            xcb_window_t      wid  /**< */,
5510                            xcb_window_t      parent  /**< */,
5511                            int16_t           x  /**< */,
5512                            int16_t           y  /**< */,
5513                            uint16_t          width  /**< */,
5514                            uint16_t          height  /**< */,
5515                            uint16_t          border_width  /**< */,
5516                            uint16_t          _class  /**< */,
5517                            xcb_visualid_t    visual  /**< */,
5518                            uint32_t          value_mask  /**< */,
5519                            const uint32_t   *value_list  /**< */);
5520 
5521 /**
5522  * @brief Creates a window
5523  *
5524  * @param c The connection
5525  * @param depth Specifies the new window's depth (TODO: what unit?).
5526  * \n
5527  * The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
5528  * \a parent window.
5529  * @param wid The ID with which you will refer to the new window, created by
5530  * `xcb_generate_id`.
5531  * @param parent The parent window of the new window.
5532  * @param x The X coordinate of the new window.
5533  * @param y The Y coordinate of the new window.
5534  * @param width The width of the new window.
5535  * @param height The height of the new window.
5536  * @param border_width TODO:
5537  * \n
5538  * Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
5539  * @param _class A bitmask of #xcb_window_class_t values.
5540  * @param _class \n
5541  * @param visual Specifies the id for the new window's visual.
5542  * \n
5543  * The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
5544  * \a parent window.
5545  * @param value_mask A bitmask of #xcb_cw_t values.
5546  * @return A cookie
5547  *
5548  * Creates an unmapped window as child of the specified \a parent window. A
5549  * CreateNotify event will be generated. The new window is placed on top in the
5550  * stacking order with respect to siblings.
5551  *
5552  * The coordinate system has the X axis horizontal and the Y axis vertical with
5553  * the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
5554  * of pixels, and coincide with pixel centers. Each window and pixmap has its own
5555  * coordinate system. For a window, the origin is inside the border at the inside,
5556  * upper-left corner.
5557  *
5558  * The created window is not yet displayed (mapped), call `xcb_map_window` to
5559  * display it.
5560  *
5561  * The created window will initially use the same cursor as its parent.
5562  *
5563  */
5564 xcb_void_cookie_t
5565 xcb_create_window (xcb_connection_t *c  /**< */,
5566                    uint8_t           depth  /**< */,
5567                    xcb_window_t      wid  /**< */,
5568                    xcb_window_t      parent  /**< */,
5569                    int16_t           x  /**< */,
5570                    int16_t           y  /**< */,
5571                    uint16_t          width  /**< */,
5572                    uint16_t          height  /**< */,
5573                    uint16_t          border_width  /**< */,
5574                    uint16_t          _class  /**< */,
5575                    xcb_visualid_t    visual  /**< */,
5576                    uint32_t          value_mask  /**< */,
5577                    const uint32_t   *value_list  /**< */);
5578 
5579 int
5580 xcb_change_window_attributes_sizeof (const void  *_buffer  /**< */);
5581 
5582 /**
5583  * @brief change window attributes
5584  *
5585  * @param c The connection
5586  * @param window The window to change.
5587  * @param value_mask A bitmask of #xcb_cw_t values.
5588  * @param value_mask \n
5589  * @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The
5590  * order has to correspond to the order of possible \a value_mask bits. See the
5591  * example.
5592  * @return A cookie
5593  *
5594  * Changes the attributes specified by \a value_mask for the specified \a window.
5595  *
5596  * This form can be used only if the request will not cause
5597  * a reply to be generated. Any returned error will be
5598  * saved for handling by xcb_request_check().
5599  */
5600 xcb_void_cookie_t
5601 xcb_change_window_attributes_checked (xcb_connection_t *c  /**< */,
5602                                       xcb_window_t      window  /**< */,
5603                                       uint32_t          value_mask  /**< */,
5604                                       const uint32_t   *value_list  /**< */);
5605 
5606 /**
5607  * @brief change window attributes
5608  *
5609  * @param c The connection
5610  * @param window The window to change.
5611  * @param value_mask A bitmask of #xcb_cw_t values.
5612  * @param value_mask \n
5613  * @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The
5614  * order has to correspond to the order of possible \a value_mask bits. See the
5615  * example.
5616  * @return A cookie
5617  *
5618  * Changes the attributes specified by \a value_mask for the specified \a window.
5619  *
5620  */
5621 xcb_void_cookie_t
5622 xcb_change_window_attributes (xcb_connection_t *c  /**< */,
5623                               xcb_window_t      window  /**< */,
5624                               uint32_t          value_mask  /**< */,
5625                               const uint32_t   *value_list  /**< */);
5626 
5627 /**
5628  * @brief Gets window attributes
5629  *
5630  * @param c The connection
5631  * @param window The window to get the attributes from.
5632  * @return A cookie
5633  *
5634  * Gets the current attributes for the specified \a window.
5635  *
5636  */
5637 xcb_get_window_attributes_cookie_t
5638 xcb_get_window_attributes (xcb_connection_t *c  /**< */,
5639                            xcb_window_t      window  /**< */);
5640 
5641 /**
5642  * @brief Gets window attributes
5643  *
5644  * @param c The connection
5645  * @param window The window to get the attributes from.
5646  * @return A cookie
5647  *
5648  * Gets the current attributes for the specified \a window.
5649  *
5650  * This form can be used only if the request will cause
5651  * a reply to be generated. Any returned error will be
5652  * placed in the event queue.
5653  */
5654 xcb_get_window_attributes_cookie_t
5655 xcb_get_window_attributes_unchecked (xcb_connection_t *c  /**< */,
5656                                      xcb_window_t      window  /**< */);
5657 
5658 /**
5659  * Return the reply
5660  * @param c      The connection
5661  * @param cookie The cookie
5662  * @param e      The xcb_generic_error_t supplied
5663  *
5664  * Returns the reply of the request asked by
5665  *
5666  * The parameter @p e supplied to this function must be NULL if
5667  * xcb_get_window_attributes_unchecked(). is used.
5668  * Otherwise, it stores the error if any.
5669  *
5670  * The returned value must be freed by the caller using free().
5671  */
5672 xcb_get_window_attributes_reply_t *
5673 xcb_get_window_attributes_reply (xcb_connection_t                    *c  /**< */,
5674                                  xcb_get_window_attributes_cookie_t   cookie  /**< */,
5675                                  xcb_generic_error_t                **e  /**< */);
5676 
5677 /**
5678  * @brief Destroys a window
5679  *
5680  * @param c The connection
5681  * @param window The window to destroy.
5682  * @return A cookie
5683  *
5684  * Destroys the specified window and all of its subwindows. A DestroyNotify event
5685  * is generated for each destroyed window (a DestroyNotify event is first generated
5686  * for any given window's inferiors). If the window was mapped, it will be
5687  * automatically unmapped before destroying.
5688  *
5689  * Calling DestroyWindow on the root window will do nothing.
5690  *
5691  * This form can be used only if the request will not cause
5692  * a reply to be generated. Any returned error will be
5693  * saved for handling by xcb_request_check().
5694  */
5695 xcb_void_cookie_t
5696 xcb_destroy_window_checked (xcb_connection_t *c  /**< */,
5697                             xcb_window_t      window  /**< */);
5698 
5699 /**
5700  * @brief Destroys a window
5701  *
5702  * @param c The connection
5703  * @param window The window to destroy.
5704  * @return A cookie
5705  *
5706  * Destroys the specified window and all of its subwindows. A DestroyNotify event
5707  * is generated for each destroyed window (a DestroyNotify event is first generated
5708  * for any given window's inferiors). If the window was mapped, it will be
5709  * automatically unmapped before destroying.
5710  *
5711  * Calling DestroyWindow on the root window will do nothing.
5712  *
5713  */
5714 xcb_void_cookie_t
5715 xcb_destroy_window (xcb_connection_t *c  /**< */,
5716                     xcb_window_t      window  /**< */);
5717 
5718 /**
5719  *
5720  * @param c The connection
5721  * @return A cookie
5722  *
5723  * Delivers a request to the X server.
5724  *
5725  * This form can be used only if the request will not cause
5726  * a reply to be generated. Any returned error will be
5727  * saved for handling by xcb_request_check().
5728  */
5729 xcb_void_cookie_t
5730 xcb_destroy_subwindows_checked (xcb_connection_t *c  /**< */,
5731                                 xcb_window_t      window  /**< */);
5732 
5733 /**
5734  *
5735  * @param c The connection
5736  * @return A cookie
5737  *
5738  * Delivers a request to the X server.
5739  *
5740  */
5741 xcb_void_cookie_t
5742 xcb_destroy_subwindows (xcb_connection_t *c  /**< */,
5743                         xcb_window_t      window  /**< */);
5744 
5745 /**
5746  * @brief Changes a client's save set
5747  *
5748  * @param c The connection
5749  * @param mode A bitmask of #xcb_set_mode_t values.
5750  * @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.
5751  * @param window The window to add or delete to/from your save set.
5752  * @return A cookie
5753  *
5754  * TODO: explain what the save set is for.
5755  *
5756  * This function either adds or removes the specified window to the client's (your
5757  * application's) save set.
5758  *
5759  * This form can be used only if the request will not cause
5760  * a reply to be generated. Any returned error will be
5761  * saved for handling by xcb_request_check().
5762  */
5763 xcb_void_cookie_t
5764 xcb_change_save_set_checked (xcb_connection_t *c  /**< */,
5765                              uint8_t           mode  /**< */,
5766                              xcb_window_t      window  /**< */);
5767 
5768 /**
5769  * @brief Changes a client's save set
5770  *
5771  * @param c The connection
5772  * @param mode A bitmask of #xcb_set_mode_t values.
5773  * @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.
5774  * @param window The window to add or delete to/from your save set.
5775  * @return A cookie
5776  *
5777  * TODO: explain what the save set is for.
5778  *
5779  * This function either adds or removes the specified window to the client's (your
5780  * application's) save set.
5781  *
5782  */
5783 xcb_void_cookie_t
5784 xcb_change_save_set (xcb_connection_t *c  /**< */,
5785                      uint8_t           mode  /**< */,
5786                      xcb_window_t      window  /**< */);
5787 
5788 /**
5789  * @brief Reparents a window
5790  *
5791  * @param c The connection
5792  * @param window The window to reparent.
5793  * @param parent The new parent of the window.
5794  * @param x The X position of the window within its new parent.
5795  * @param y The Y position of the window within its new parent.
5796  * @return A cookie
5797  *
5798  * Makes the specified window a child of the specified parent window. If the
5799  * window is mapped, it will automatically be unmapped before reparenting and
5800  * re-mapped after reparenting. The window is placed in the stacking order on top
5801  * with respect to sibling windows.
5802  *
5803  * After reparenting, a ReparentNotify event is generated.
5804  *
5805  * This form can be used only if the request will not cause
5806  * a reply to be generated. Any returned error will be
5807  * saved for handling by xcb_request_check().
5808  */
5809 xcb_void_cookie_t
5810 xcb_reparent_window_checked (xcb_connection_t *c  /**< */,
5811                              xcb_window_t      window  /**< */,
5812                              xcb_window_t      parent  /**< */,
5813                              int16_t           x  /**< */,
5814                              int16_t           y  /**< */);
5815 
5816 /**
5817  * @brief Reparents a window
5818  *
5819  * @param c The connection
5820  * @param window The window to reparent.
5821  * @param parent The new parent of the window.
5822  * @param x The X position of the window within its new parent.
5823  * @param y The Y position of the window within its new parent.
5824  * @return A cookie
5825  *
5826  * Makes the specified window a child of the specified parent window. If the
5827  * window is mapped, it will automatically be unmapped before reparenting and
5828  * re-mapped after reparenting. The window is placed in the stacking order on top
5829  * with respect to sibling windows.
5830  *
5831  * After reparenting, a ReparentNotify event is generated.
5832  *
5833  */
5834 xcb_void_cookie_t
5835 xcb_reparent_window (xcb_connection_t *c  /**< */,
5836                      xcb_window_t      window  /**< */,
5837                      xcb_window_t      parent  /**< */,
5838                      int16_t           x  /**< */,
5839                      int16_t           y  /**< */);
5840 
5841 /**
5842  * @brief Makes a window visible
5843  *
5844  * @param c The connection
5845  * @param window The window to make visible.
5846  * @return A cookie
5847  *
5848  * Maps the specified window. This means making the window visible (as long as its
5849  * parent is visible).
5850  *
5851  * This MapWindow request will be translated to a MapRequest request if a window
5852  * manager is running. The window manager then decides to either map the window or
5853  * not. Set the override-redirect window attribute to true if you want to bypass
5854  * this mechanism.
5855  *
5856  * If the window manager decides to map the window (or if no window manager is
5857  * running), a MapNotify event is generated.
5858  *
5859  * If the window becomes viewable and no earlier contents for it are remembered,
5860  * the X server tiles the window with its background. If the window's background
5861  * is undefined, the existing screen contents are not altered, and the X server
5862  * generates zero or more Expose events.
5863  *
5864  * If the window type is InputOutput, an Expose event will be generated when the
5865  * window becomes visible. The normal response to an Expose event should be to
5866  * repaint the window.
5867  *
5868  * This form can be used only if the request will not cause
5869  * a reply to be generated. Any returned error will be
5870  * saved for handling by xcb_request_check().
5871  */
5872 xcb_void_cookie_t
5873 xcb_map_window_checked (xcb_connection_t *c  /**< */,
5874                         xcb_window_t      window  /**< */);
5875 
5876 /**
5877  * @brief Makes a window visible
5878  *
5879  * @param c The connection
5880  * @param window The window to make visible.
5881  * @return A cookie
5882  *
5883  * Maps the specified window. This means making the window visible (as long as its
5884  * parent is visible).
5885  *
5886  * This MapWindow request will be translated to a MapRequest request if a window
5887  * manager is running. The window manager then decides to either map the window or
5888  * not. Set the override-redirect window attribute to true if you want to bypass
5889  * this mechanism.
5890  *
5891  * If the window manager decides to map the window (or if no window manager is
5892  * running), a MapNotify event is generated.
5893  *
5894  * If the window becomes viewable and no earlier contents for it are remembered,
5895  * the X server tiles the window with its background. If the window's background
5896  * is undefined, the existing screen contents are not altered, and the X server
5897  * generates zero or more Expose events.
5898  *
5899  * If the window type is InputOutput, an Expose event will be generated when the
5900  * window becomes visible. The normal response to an Expose event should be to
5901  * repaint the window.
5902  *
5903  */
5904 xcb_void_cookie_t
5905 xcb_map_window (xcb_connection_t *c  /**< */,
5906                 xcb_window_t      window  /**< */);
5907 
5908 /**
5909  *
5910  * @param c The connection
5911  * @return A cookie
5912  *
5913  * Delivers a request to the X server.
5914  *
5915  * This form can be used only if the request will not cause
5916  * a reply to be generated. Any returned error will be
5917  * saved for handling by xcb_request_check().
5918  */
5919 xcb_void_cookie_t
5920 xcb_map_subwindows_checked (xcb_connection_t *c  /**< */,
5921                             xcb_window_t      window  /**< */);
5922 
5923 /**
5924  *
5925  * @param c The connection
5926  * @return A cookie
5927  *
5928  * Delivers a request to the X server.
5929  *
5930  */
5931 xcb_void_cookie_t
5932 xcb_map_subwindows (xcb_connection_t *c  /**< */,
5933                     xcb_window_t      window  /**< */);
5934 
5935 /**
5936  * @brief Makes a window invisible
5937  *
5938  * @param c The connection
5939  * @param window The window to make invisible.
5940  * @return A cookie
5941  *
5942  * Unmaps the specified window. This means making the window invisible (and all
5943  * its child windows).
5944  *
5945  * Unmapping a window leads to the `UnmapNotify` event being generated. Also,
5946  * `Expose` events are generated for formerly obscured windows.
5947  *
5948  * This form can be used only if the request will not cause
5949  * a reply to be generated. Any returned error will be
5950  * saved for handling by xcb_request_check().
5951  */
5952 xcb_void_cookie_t
5953 xcb_unmap_window_checked (xcb_connection_t *c  /**< */,
5954                           xcb_window_t      window  /**< */);
5955 
5956 /**
5957  * @brief Makes a window invisible
5958  *
5959  * @param c The connection
5960  * @param window The window to make invisible.
5961  * @return A cookie
5962  *
5963  * Unmaps the specified window. This means making the window invisible (and all
5964  * its child windows).
5965  *
5966  * Unmapping a window leads to the `UnmapNotify` event being generated. Also,
5967  * `Expose` events are generated for formerly obscured windows.
5968  *
5969  */
5970 xcb_void_cookie_t
5971 xcb_unmap_window (xcb_connection_t *c  /**< */,
5972                   xcb_window_t      window  /**< */);
5973 
5974 /**
5975  *
5976  * @param c The connection
5977  * @return A cookie
5978  *
5979  * Delivers a request to the X server.
5980  *
5981  * This form can be used only if the request will not cause
5982  * a reply to be generated. Any returned error will be
5983  * saved for handling by xcb_request_check().
5984  */
5985 xcb_void_cookie_t
5986 xcb_unmap_subwindows_checked (xcb_connection_t *c  /**< */,
5987                               xcb_window_t      window  /**< */);
5988 
5989 /**
5990  *
5991  * @param c The connection
5992  * @return A cookie
5993  *
5994  * Delivers a request to the X server.
5995  *
5996  */
5997 xcb_void_cookie_t
5998 xcb_unmap_subwindows (xcb_connection_t *c  /**< */,
5999                       xcb_window_t      window  /**< */);
6000 
6001 int
6002 xcb_configure_window_sizeof (const void  *_buffer  /**< */);
6003 
6004 /**
6005  * @brief Configures window attributes
6006  *
6007  * @param c The connection
6008  * @param window The window to configure.
6009  * @param value_mask Bitmask of attributes to change.
6010  * @param value_list New values, corresponding to the attributes in value_mask. The order has to
6011  * correspond to the order of possible \a value_mask bits. See the example.
6012  * @return A cookie
6013  *
6014  * Configures a window's size, position, border width and stacking order.
6015  *
6016  * This form can be used only if the request will not cause
6017  * a reply to be generated. Any returned error will be
6018  * saved for handling by xcb_request_check().
6019  */
6020 xcb_void_cookie_t
6021 xcb_configure_window_checked (xcb_connection_t *c  /**< */,
6022                               xcb_window_t      window  /**< */,
6023                               uint16_t          value_mask  /**< */,
6024                               const uint32_t   *value_list  /**< */);
6025 
6026 /**
6027  * @brief Configures window attributes
6028  *
6029  * @param c The connection
6030  * @param window The window to configure.
6031  * @param value_mask Bitmask of attributes to change.
6032  * @param value_list New values, corresponding to the attributes in value_mask. The order has to
6033  * correspond to the order of possible \a value_mask bits. See the example.
6034  * @return A cookie
6035  *
6036  * Configures a window's size, position, border width and stacking order.
6037  *
6038  */
6039 xcb_void_cookie_t
6040 xcb_configure_window (xcb_connection_t *c  /**< */,
6041                       xcb_window_t      window  /**< */,
6042                       uint16_t          value_mask  /**< */,
6043                       const uint32_t   *value_list  /**< */);
6044 
6045 /**
6046  * @brief Change window stacking order
6047  *
6048  * @param c The connection
6049  * @param direction A bitmask of #xcb_circulate_t values.
6050  * @param direction \n
6051  * @param window The window to raise/lower (depending on \a direction).
6052  * @return A cookie
6053  *
6054  * If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if
6055  * any) will be raised to the top of the stack.
6056  *
6057  * If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will
6058  * be lowered to the bottom of the stack.
6059  *
6060  * This form can be used only if the request will not cause
6061  * a reply to be generated. Any returned error will be
6062  * saved for handling by xcb_request_check().
6063  */
6064 xcb_void_cookie_t
6065 xcb_circulate_window_checked (xcb_connection_t *c  /**< */,
6066                               uint8_t           direction  /**< */,
6067                               xcb_window_t      window  /**< */);
6068 
6069 /**
6070  * @brief Change window stacking order
6071  *
6072  * @param c The connection
6073  * @param direction A bitmask of #xcb_circulate_t values.
6074  * @param direction \n
6075  * @param window The window to raise/lower (depending on \a direction).
6076  * @return A cookie
6077  *
6078  * If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if
6079  * any) will be raised to the top of the stack.
6080  *
6081  * If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will
6082  * be lowered to the bottom of the stack.
6083  *
6084  */
6085 xcb_void_cookie_t
6086 xcb_circulate_window (xcb_connection_t *c  /**< */,
6087                       uint8_t           direction  /**< */,
6088                       xcb_window_t      window  /**< */);
6089 
6090 /**
6091  * @brief Get current window geometry
6092  *
6093  * @param c The connection
6094  * @param drawable The drawable (`Window` or `Pixmap`) of which the geometry will be received.
6095  * @return A cookie
6096  *
6097  * Gets the current geometry of the specified drawable (either `Window` or `Pixmap`).
6098  *
6099  */
6100 xcb_get_geometry_cookie_t
6101 xcb_get_geometry (xcb_connection_t *c  /**< */,
6102                   xcb_drawable_t    drawable  /**< */);
6103 
6104 /**
6105  * @brief Get current window geometry
6106  *
6107  * @param c The connection
6108  * @param drawable The drawable (`Window` or `Pixmap`) of which the geometry will be received.
6109  * @return A cookie
6110  *
6111  * Gets the current geometry of the specified drawable (either `Window` or `Pixmap`).
6112  *
6113  * This form can be used only if the request will cause
6114  * a reply to be generated. Any returned error will be
6115  * placed in the event queue.
6116  */
6117 xcb_get_geometry_cookie_t
6118 xcb_get_geometry_unchecked (xcb_connection_t *c  /**< */,
6119                             xcb_drawable_t    drawable  /**< */);
6120 
6121 /**
6122  * Return the reply
6123  * @param c      The connection
6124  * @param cookie The cookie
6125  * @param e      The xcb_generic_error_t supplied
6126  *
6127  * Returns the reply of the request asked by
6128  *
6129  * The parameter @p e supplied to this function must be NULL if
6130  * xcb_get_geometry_unchecked(). is used.
6131  * Otherwise, it stores the error if any.
6132  *
6133  * The returned value must be freed by the caller using free().
6134  */
6135 xcb_get_geometry_reply_t *
6136 xcb_get_geometry_reply (xcb_connection_t           *c  /**< */,
6137                         xcb_get_geometry_cookie_t   cookie  /**< */,
6138                         xcb_generic_error_t       **e  /**< */);
6139 
6140 int
6141 xcb_query_tree_sizeof (const void  *_buffer  /**< */);
6142 
6143 /**
6144  * @brief query the window tree
6145  *
6146  * @param c The connection
6147  * @param window The \a window to query.
6148  * @return A cookie
6149  *
6150  * Gets the root window ID, parent window ID and list of children windows for the
6151  * specified \a window. The children are listed in bottom-to-top stacking order.
6152  *
6153  */
6154 xcb_query_tree_cookie_t
6155 xcb_query_tree (xcb_connection_t *c  /**< */,
6156                 xcb_window_t      window  /**< */);
6157 
6158 /**
6159  * @brief query the window tree
6160  *
6161  * @param c The connection
6162  * @param window The \a window to query.
6163  * @return A cookie
6164  *
6165  * Gets the root window ID, parent window ID and list of children windows for the
6166  * specified \a window. The children are listed in bottom-to-top stacking order.
6167  *
6168  * This form can be used only if the request will cause
6169  * a reply to be generated. Any returned error will be
6170  * placed in the event queue.
6171  */
6172 xcb_query_tree_cookie_t
6173 xcb_query_tree_unchecked (xcb_connection_t *c  /**< */,
6174                           xcb_window_t      window  /**< */);
6175 
6176 xcb_window_t *
6177 xcb_query_tree_children (const xcb_query_tree_reply_t *R  /**< */);
6178 
6179 int
6180 xcb_query_tree_children_length (const xcb_query_tree_reply_t *R  /**< */);
6181 
6182 xcb_generic_iterator_t
6183 xcb_query_tree_children_end (const xcb_query_tree_reply_t *R  /**< */);
6184 
6185 /**
6186  * Return the reply
6187  * @param c      The connection
6188  * @param cookie The cookie
6189  * @param e      The xcb_generic_error_t supplied
6190  *
6191  * Returns the reply of the request asked by
6192  *
6193  * The parameter @p e supplied to this function must be NULL if
6194  * xcb_query_tree_unchecked(). is used.
6195  * Otherwise, it stores the error if any.
6196  *
6197  * The returned value must be freed by the caller using free().
6198  */
6199 xcb_query_tree_reply_t *
6200 xcb_query_tree_reply (xcb_connection_t         *c  /**< */,
6201                       xcb_query_tree_cookie_t   cookie  /**< */,
6202                       xcb_generic_error_t     **e  /**< */);
6203 
6204 int
6205 xcb_intern_atom_sizeof (const void  *_buffer  /**< */);
6206 
6207 /**
6208  * @brief Get atom identifier by name
6209  *
6210  * @param c The connection
6211  * @param only_if_exists Return a valid atom id only if the atom already exists.
6212  * @param name_len The length of the following \a name.
6213  * @param name The name of the atom.
6214  * @return A cookie
6215  *
6216  * Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified
6217  * name. Atoms are used in protocols like EWMH, for example to store window titles
6218  * (`_NET_WM_NAME` atom) as property of a window.
6219  *
6220  * If \a only_if_exists is 0, the atom will be created if it does not already exist.
6221  * If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does
6222  * not yet exist.
6223  *
6224  */
6225 xcb_intern_atom_cookie_t
6226 xcb_intern_atom (xcb_connection_t *c  /**< */,
6227                  uint8_t           only_if_exists  /**< */,
6228                  uint16_t          name_len  /**< */,
6229                  const char       *name  /**< */);
6230 
6231 /**
6232  * @brief Get atom identifier by name
6233  *
6234  * @param c The connection
6235  * @param only_if_exists Return a valid atom id only if the atom already exists.
6236  * @param name_len The length of the following \a name.
6237  * @param name The name of the atom.
6238  * @return A cookie
6239  *
6240  * Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified
6241  * name. Atoms are used in protocols like EWMH, for example to store window titles
6242  * (`_NET_WM_NAME` atom) as property of a window.
6243  *
6244  * If \a only_if_exists is 0, the atom will be created if it does not already exist.
6245  * If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does
6246  * not yet exist.
6247  *
6248  * This form can be used only if the request will cause
6249  * a reply to be generated. Any returned error will be
6250  * placed in the event queue.
6251  */
6252 xcb_intern_atom_cookie_t
6253 xcb_intern_atom_unchecked (xcb_connection_t *c  /**< */,
6254                            uint8_t           only_if_exists  /**< */,
6255                            uint16_t          name_len  /**< */,
6256                            const char       *name  /**< */);
6257 
6258 /**
6259  * Return the reply
6260  * @param c      The connection
6261  * @param cookie The cookie
6262  * @param e      The xcb_generic_error_t supplied
6263  *
6264  * Returns the reply of the request asked by
6265  *
6266  * The parameter @p e supplied to this function must be NULL if
6267  * xcb_intern_atom_unchecked(). is used.
6268  * Otherwise, it stores the error if any.
6269  *
6270  * The returned value must be freed by the caller using free().
6271  */
6272 xcb_intern_atom_reply_t *
6273 xcb_intern_atom_reply (xcb_connection_t          *c  /**< */,
6274                        xcb_intern_atom_cookie_t   cookie  /**< */,
6275                        xcb_generic_error_t      **e  /**< */);
6276 
6277 int
6278 xcb_get_atom_name_sizeof (const void  *_buffer  /**< */);
6279 
6280 /**
6281  *
6282  * @param c The connection
6283  * @return A cookie
6284  *
6285  * Delivers a request to the X server.
6286  *
6287  */
6288 xcb_get_atom_name_cookie_t
6289 xcb_get_atom_name (xcb_connection_t *c  /**< */,
6290                    xcb_atom_t        atom  /**< */);
6291 
6292 /**
6293  *
6294  * @param c The connection
6295  * @return A cookie
6296  *
6297  * Delivers a request to the X server.
6298  *
6299  * This form can be used only if the request will cause
6300  * a reply to be generated. Any returned error will be
6301  * placed in the event queue.
6302  */
6303 xcb_get_atom_name_cookie_t
6304 xcb_get_atom_name_unchecked (xcb_connection_t *c  /**< */,
6305                              xcb_atom_t        atom  /**< */);
6306 
6307 char *
6308 xcb_get_atom_name_name (const xcb_get_atom_name_reply_t *R  /**< */);
6309 
6310 int
6311 xcb_get_atom_name_name_length (const xcb_get_atom_name_reply_t *R  /**< */);
6312 
6313 xcb_generic_iterator_t
6314 xcb_get_atom_name_name_end (const xcb_get_atom_name_reply_t *R  /**< */);
6315 
6316 /**
6317  * Return the reply
6318  * @param c      The connection
6319  * @param cookie The cookie
6320  * @param e      The xcb_generic_error_t supplied
6321  *
6322  * Returns the reply of the request asked by
6323  *
6324  * The parameter @p e supplied to this function must be NULL if
6325  * xcb_get_atom_name_unchecked(). is used.
6326  * Otherwise, it stores the error if any.
6327  *
6328  * The returned value must be freed by the caller using free().
6329  */
6330 xcb_get_atom_name_reply_t *
6331 xcb_get_atom_name_reply (xcb_connection_t            *c  /**< */,
6332                          xcb_get_atom_name_cookie_t   cookie  /**< */,
6333                          xcb_generic_error_t        **e  /**< */);
6334 
6335 int
6336 xcb_change_property_sizeof (const void  *_buffer  /**< */);
6337 
6338 /**
6339  * @brief Changes a window property
6340  *
6341  * @param c The connection
6342  * @param mode A bitmask of #xcb_prop_mode_t values.
6343  * @param mode \n
6344  * @param window The window whose property you want to change.
6345  * @param property The property you want to change (an atom).
6346  * @param type The type of the property you want to change (an atom).
6347  * @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or
6348  * 32-bit quantities. Possible values are 8, 16 and 32. This information allows
6349  * the X server to correctly perform byte-swap operations as necessary.
6350  * @param data_len Specifies the number of elements (see \a format).
6351  * @param data The property data.
6352  * @return A cookie
6353  *
6354  * Sets or updates a property on the specified \a window. Properties are for
6355  * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
6356  * Protocols such as EWMH also use properties - for example EWMH defines the
6357  * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
6358  *
6359  * This form can be used only if the request will not cause
6360  * a reply to be generated. Any returned error will be
6361  * saved for handling by xcb_request_check().
6362  */
6363 xcb_void_cookie_t
6364 xcb_change_property_checked (xcb_connection_t *c  /**< */,
6365                              uint8_t           mode  /**< */,
6366                              xcb_window_t      window  /**< */,
6367                              xcb_atom_t        property  /**< */,
6368                              xcb_atom_t        type  /**< */,
6369                              uint8_t           format  /**< */,
6370                              uint32_t          data_len  /**< */,
6371                              const void       *data  /**< */);
6372 
6373 /**
6374  * @brief Changes a window property
6375  *
6376  * @param c The connection
6377  * @param mode A bitmask of #xcb_prop_mode_t values.
6378  * @param mode \n
6379  * @param window The window whose property you want to change.
6380  * @param property The property you want to change (an atom).
6381  * @param type The type of the property you want to change (an atom).
6382  * @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or
6383  * 32-bit quantities. Possible values are 8, 16 and 32. This information allows
6384  * the X server to correctly perform byte-swap operations as necessary.
6385  * @param data_len Specifies the number of elements (see \a format).
6386  * @param data The property data.
6387  * @return A cookie
6388  *
6389  * Sets or updates a property on the specified \a window. Properties are for
6390  * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
6391  * Protocols such as EWMH also use properties - for example EWMH defines the
6392  * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
6393  *
6394  */
6395 xcb_void_cookie_t
6396 xcb_change_property (xcb_connection_t *c  /**< */,
6397                      uint8_t           mode  /**< */,
6398                      xcb_window_t      window  /**< */,
6399                      xcb_atom_t        property  /**< */,
6400                      xcb_atom_t        type  /**< */,
6401                      uint8_t           format  /**< */,
6402                      uint32_t          data_len  /**< */,
6403                      const void       *data  /**< */);
6404 
6405 /**
6406  *
6407  * @param c The connection
6408  * @return A cookie
6409  *
6410  * Delivers a request to the X server.
6411  *
6412  * This form can be used only if the request will not cause
6413  * a reply to be generated. Any returned error will be
6414  * saved for handling by xcb_request_check().
6415  */
6416 xcb_void_cookie_t
6417 xcb_delete_property_checked (xcb_connection_t *c  /**< */,
6418                              xcb_window_t      window  /**< */,
6419                              xcb_atom_t        property  /**< */);
6420 
6421 /**
6422  *
6423  * @param c The connection
6424  * @return A cookie
6425  *
6426  * Delivers a request to the X server.
6427  *
6428  */
6429 xcb_void_cookie_t
6430 xcb_delete_property (xcb_connection_t *c  /**< */,
6431                      xcb_window_t      window  /**< */,
6432                      xcb_atom_t        property  /**< */);
6433 
6434 int
6435 xcb_get_property_sizeof (const void  *_buffer  /**< */);
6436 
6437 /**
6438  * @brief Gets a window property
6439  *
6440  * @param c The connection
6441  * @param _delete Whether the property should actually be deleted. For deleting a property, the
6442  * specified \a type has to match the actual property type.
6443  * @param window The window whose property you want to get.
6444  * @param property The property you want to get (an atom).
6445  * @param type The type of the property you want to get (an atom).
6446  * @param long_offset Specifies the offset (in 32-bit multiples) in the specified property where the
6447  * data is to be retrieved.
6448  * @param long_length Specifies how many 32-bit multiples of data should be retrieved (e.g. if you
6449  * set \a long_length to 4, you will receive 16 bytes of data).
6450  * @return A cookie
6451  *
6452  * Gets the specified \a property from the specified \a window. Properties are for
6453  * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
6454  * Protocols such as EWMH also use properties - for example EWMH defines the
6455  * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
6456  *
6457  * TODO: talk about \a type
6458  *
6459  * TODO: talk about `delete`
6460  *
6461  * TODO: talk about the offset/length thing. what's a valid use case?
6462  *
6463  */
6464 xcb_get_property_cookie_t
6465 xcb_get_property (xcb_connection_t *c  /**< */,
6466                   uint8_t           _delete  /**< */,
6467                   xcb_window_t      window  /**< */,
6468                   xcb_atom_t        property  /**< */,
6469                   xcb_atom_t        type  /**< */,
6470                   uint32_t          long_offset  /**< */,
6471                   uint32_t          long_length  /**< */);
6472 
6473 /**
6474  * @brief Gets a window property
6475  *
6476  * @param c The connection
6477  * @param _delete Whether the property should actually be deleted. For deleting a property, the
6478  * specified \a type has to match the actual property type.
6479  * @param window The window whose property you want to get.
6480  * @param property The property you want to get (an atom).
6481  * @param type The type of the property you want to get (an atom).
6482  * @param long_offset Specifies the offset (in 32-bit multiples) in the specified property where the
6483  * data is to be retrieved.
6484  * @param long_length Specifies how many 32-bit multiples of data should be retrieved (e.g. if you
6485  * set \a long_length to 4, you will receive 16 bytes of data).
6486  * @return A cookie
6487  *
6488  * Gets the specified \a property from the specified \a window. Properties are for
6489  * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
6490  * Protocols such as EWMH also use properties - for example EWMH defines the
6491  * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
6492  *
6493  * TODO: talk about \a type
6494  *
6495  * TODO: talk about `delete`
6496  *
6497  * TODO: talk about the offset/length thing. what's a valid use case?
6498  *
6499  * This form can be used only if the request will cause
6500  * a reply to be generated. Any returned error will be
6501  * placed in the event queue.
6502  */
6503 xcb_get_property_cookie_t
6504 xcb_get_property_unchecked (xcb_connection_t *c  /**< */,
6505                             uint8_t           _delete  /**< */,
6506                             xcb_window_t      window  /**< */,
6507                             xcb_atom_t        property  /**< */,
6508                             xcb_atom_t        type  /**< */,
6509                             uint32_t          long_offset  /**< */,
6510                             uint32_t          long_length  /**< */);
6511 
6512 void *
6513 xcb_get_property_value (const xcb_get_property_reply_t *R  /**< */);
6514 
6515 int
6516 xcb_get_property_value_length (const xcb_get_property_reply_t *R  /**< */);
6517 
6518 xcb_generic_iterator_t
6519 xcb_get_property_value_end (const xcb_get_property_reply_t *R  /**< */);
6520 
6521 /**
6522  * Return the reply
6523  * @param c      The connection
6524  * @param cookie The cookie
6525  * @param e      The xcb_generic_error_t supplied
6526  *
6527  * Returns the reply of the request asked by
6528  *
6529  * The parameter @p e supplied to this function must be NULL if
6530  * xcb_get_property_unchecked(). is used.
6531  * Otherwise, it stores the error if any.
6532  *
6533  * The returned value must be freed by the caller using free().
6534  */
6535 xcb_get_property_reply_t *
6536 xcb_get_property_reply (xcb_connection_t           *c  /**< */,
6537                         xcb_get_property_cookie_t   cookie  /**< */,
6538                         xcb_generic_error_t       **e  /**< */);
6539 
6540 int
6541 xcb_list_properties_sizeof (const void  *_buffer  /**< */);
6542 
6543 /**
6544  *
6545  * @param c The connection
6546  * @return A cookie
6547  *
6548  * Delivers a request to the X server.
6549  *
6550  */
6551 xcb_list_properties_cookie_t
6552 xcb_list_properties (xcb_connection_t *c  /**< */,
6553                      xcb_window_t      window  /**< */);
6554 
6555 /**
6556  *
6557  * @param c The connection
6558  * @return A cookie
6559  *
6560  * Delivers a request to the X server.
6561  *
6562  * This form can be used only if the request will cause
6563  * a reply to be generated. Any returned error will be
6564  * placed in the event queue.
6565  */
6566 xcb_list_properties_cookie_t
6567 xcb_list_properties_unchecked (xcb_connection_t *c  /**< */,
6568                                xcb_window_t      window  /**< */);
6569 
6570 xcb_atom_t *
6571 xcb_list_properties_atoms (const xcb_list_properties_reply_t *R  /**< */);
6572 
6573 int
6574 xcb_list_properties_atoms_length (const xcb_list_properties_reply_t *R  /**< */);
6575 
6576 xcb_generic_iterator_t
6577 xcb_list_properties_atoms_end (const xcb_list_properties_reply_t *R  /**< */);
6578 
6579 /**
6580  * Return the reply
6581  * @param c      The connection
6582  * @param cookie The cookie
6583  * @param e      The xcb_generic_error_t supplied
6584  *
6585  * Returns the reply of the request asked by
6586  *
6587  * The parameter @p e supplied to this function must be NULL if
6588  * xcb_list_properties_unchecked(). is used.
6589  * Otherwise, it stores the error if any.
6590  *
6591  * The returned value must be freed by the caller using free().
6592  */
6593 xcb_list_properties_reply_t *
6594 xcb_list_properties_reply (xcb_connection_t              *c  /**< */,
6595                            xcb_list_properties_cookie_t   cookie  /**< */,
6596                            xcb_generic_error_t          **e  /**< */);
6597 
6598 /**
6599  * @brief Sets the owner of a selection
6600  *
6601  * @param c The connection
6602  * @param owner The new owner of the selection.
6603  * \n
6604  * The special value `XCB_NONE` means that the selection will have no owner.
6605  * @param selection The selection.
6606  * @param time Timestamp to avoid race conditions when running X over the network.
6607  * \n
6608  * The selection will not be changed if \a time is earlier than the current
6609  * last-change time of the \a selection or is later than the current X server time.
6610  * Otherwise, the last-change time is set to the specified time.
6611  * \n
6612  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
6613  * time.
6614  * @return A cookie
6615  *
6616  * Makes `window` the owner of the selection \a selection and updates the
6617  * last-change time of the specified selection.
6618  *
6619  * TODO: briefly explain what a selection is.
6620  *
6621  * This form can be used only if the request will not cause
6622  * a reply to be generated. Any returned error will be
6623  * saved for handling by xcb_request_check().
6624  */
6625 xcb_void_cookie_t
6626 xcb_set_selection_owner_checked (xcb_connection_t *c  /**< */,
6627                                  xcb_window_t      owner  /**< */,
6628                                  xcb_atom_t        selection  /**< */,
6629                                  xcb_timestamp_t   time  /**< */);
6630 
6631 /**
6632  * @brief Sets the owner of a selection
6633  *
6634  * @param c The connection
6635  * @param owner The new owner of the selection.
6636  * \n
6637  * The special value `XCB_NONE` means that the selection will have no owner.
6638  * @param selection The selection.
6639  * @param time Timestamp to avoid race conditions when running X over the network.
6640  * \n
6641  * The selection will not be changed if \a time is earlier than the current
6642  * last-change time of the \a selection or is later than the current X server time.
6643  * Otherwise, the last-change time is set to the specified time.
6644  * \n
6645  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
6646  * time.
6647  * @return A cookie
6648  *
6649  * Makes `window` the owner of the selection \a selection and updates the
6650  * last-change time of the specified selection.
6651  *
6652  * TODO: briefly explain what a selection is.
6653  *
6654  */
6655 xcb_void_cookie_t
6656 xcb_set_selection_owner (xcb_connection_t *c  /**< */,
6657                          xcb_window_t      owner  /**< */,
6658                          xcb_atom_t        selection  /**< */,
6659                          xcb_timestamp_t   time  /**< */);
6660 
6661 /**
6662  * @brief Gets the owner of a selection
6663  *
6664  * @param c The connection
6665  * @param selection The selection.
6666  * @return A cookie
6667  *
6668  * Gets the owner of the specified selection.
6669  *
6670  * TODO: briefly explain what a selection is.
6671  *
6672  */
6673 xcb_get_selection_owner_cookie_t
6674 xcb_get_selection_owner (xcb_connection_t *c  /**< */,
6675                          xcb_atom_t        selection  /**< */);
6676 
6677 /**
6678  * @brief Gets the owner of a selection
6679  *
6680  * @param c The connection
6681  * @param selection The selection.
6682  * @return A cookie
6683  *
6684  * Gets the owner of the specified selection.
6685  *
6686  * TODO: briefly explain what a selection is.
6687  *
6688  * This form can be used only if the request will cause
6689  * a reply to be generated. Any returned error will be
6690  * placed in the event queue.
6691  */
6692 xcb_get_selection_owner_cookie_t
6693 xcb_get_selection_owner_unchecked (xcb_connection_t *c  /**< */,
6694                                    xcb_atom_t        selection  /**< */);
6695 
6696 /**
6697  * Return the reply
6698  * @param c      The connection
6699  * @param cookie The cookie
6700  * @param e      The xcb_generic_error_t supplied
6701  *
6702  * Returns the reply of the request asked by
6703  *
6704  * The parameter @p e supplied to this function must be NULL if
6705  * xcb_get_selection_owner_unchecked(). is used.
6706  * Otherwise, it stores the error if any.
6707  *
6708  * The returned value must be freed by the caller using free().
6709  */
6710 xcb_get_selection_owner_reply_t *
6711 xcb_get_selection_owner_reply (xcb_connection_t                  *c  /**< */,
6712                                xcb_get_selection_owner_cookie_t   cookie  /**< */,
6713                                xcb_generic_error_t              **e  /**< */);
6714 
6715 /**
6716  *
6717  * @param c The connection
6718  * @return A cookie
6719  *
6720  * Delivers a request to the X server.
6721  *
6722  * This form can be used only if the request will not cause
6723  * a reply to be generated. Any returned error will be
6724  * saved for handling by xcb_request_check().
6725  */
6726 xcb_void_cookie_t
6727 xcb_convert_selection_checked (xcb_connection_t *c  /**< */,
6728                                xcb_window_t      requestor  /**< */,
6729                                xcb_atom_t        selection  /**< */,
6730                                xcb_atom_t        target  /**< */,
6731                                xcb_atom_t        property  /**< */,
6732                                xcb_timestamp_t   time  /**< */);
6733 
6734 /**
6735  *
6736  * @param c The connection
6737  * @return A cookie
6738  *
6739  * Delivers a request to the X server.
6740  *
6741  */
6742 xcb_void_cookie_t
6743 xcb_convert_selection (xcb_connection_t *c  /**< */,
6744                        xcb_window_t      requestor  /**< */,
6745                        xcb_atom_t        selection  /**< */,
6746                        xcb_atom_t        target  /**< */,
6747                        xcb_atom_t        property  /**< */,
6748                        xcb_timestamp_t   time  /**< */);
6749 
6750 /**
6751  * @brief send an event
6752  *
6753  * @param c The connection
6754  * @param propagate If \a propagate is true and no clients have selected any event on \a destination,
6755  * the destination is replaced with the closest ancestor of \a destination for
6756  * which some client has selected a type in \a event_mask and for which no
6757  * intervening window has that type in its do-not-propagate-mask. If no such
6758  * window exists or if the window is an ancestor of the focus window and
6759  * `InputFocus` was originally specified as the destination, the event is not sent
6760  * to any clients. Otherwise, the event is reported to every client selecting on
6761  * the final destination any of the types specified in \a event_mask.
6762  * @param destination The window to send this event to. Every client which selects any event within
6763  * \a event_mask on \a destination will get the event.
6764  * \n
6765  * The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window
6766  * that contains the mouse pointer.
6767  * \n
6768  * The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which
6769  * has the keyboard focus.
6770  * @param event_mask Event_mask for determining which clients should receive the specified event.
6771  * See \a destination and \a propagate.
6772  * @param event The event to send to the specified \a destination.
6773  * @return A cookie
6774  *
6775  * Identifies the \a destination window, determines which clients should receive
6776  * the specified event and ignores any active grabs.
6777  *
6778  * The \a event must be one of the core events or an event defined by an extension,
6779  * so that the X server can correctly byte-swap the contents as necessary. The
6780  * contents of \a event are otherwise unaltered and unchecked except for the
6781  * `send_event` field which is forced to 'true'.
6782  *
6783  * This form can be used only if the request will not cause
6784  * a reply to be generated. Any returned error will be
6785  * saved for handling by xcb_request_check().
6786  */
6787 xcb_void_cookie_t
6788 xcb_send_event_checked (xcb_connection_t *c  /**< */,
6789                         uint8_t           propagate  /**< */,
6790                         xcb_window_t      destination  /**< */,
6791                         uint32_t          event_mask  /**< */,
6792                         const char       *event  /**< */);
6793 
6794 /**
6795  * @brief send an event
6796  *
6797  * @param c The connection
6798  * @param propagate If \a propagate is true and no clients have selected any event on \a destination,
6799  * the destination is replaced with the closest ancestor of \a destination for
6800  * which some client has selected a type in \a event_mask and for which no
6801  * intervening window has that type in its do-not-propagate-mask. If no such
6802  * window exists or if the window is an ancestor of the focus window and
6803  * `InputFocus` was originally specified as the destination, the event is not sent
6804  * to any clients. Otherwise, the event is reported to every client selecting on
6805  * the final destination any of the types specified in \a event_mask.
6806  * @param destination The window to send this event to. Every client which selects any event within
6807  * \a event_mask on \a destination will get the event.
6808  * \n
6809  * The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window
6810  * that contains the mouse pointer.
6811  * \n
6812  * The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which
6813  * has the keyboard focus.
6814  * @param event_mask Event_mask for determining which clients should receive the specified event.
6815  * See \a destination and \a propagate.
6816  * @param event The event to send to the specified \a destination.
6817  * @return A cookie
6818  *
6819  * Identifies the \a destination window, determines which clients should receive
6820  * the specified event and ignores any active grabs.
6821  *
6822  * The \a event must be one of the core events or an event defined by an extension,
6823  * so that the X server can correctly byte-swap the contents as necessary. The
6824  * contents of \a event are otherwise unaltered and unchecked except for the
6825  * `send_event` field which is forced to 'true'.
6826  *
6827  */
6828 xcb_void_cookie_t
6829 xcb_send_event (xcb_connection_t *c  /**< */,
6830                 uint8_t           propagate  /**< */,
6831                 xcb_window_t      destination  /**< */,
6832                 uint32_t          event_mask  /**< */,
6833                 const char       *event  /**< */);
6834 
6835 /**
6836  * @brief Grab the pointer
6837  *
6838  * @param c The connection
6839  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
6840  * reported to the \a grab_window.
6841  * @param grab_window Specifies the window on which the pointer should be grabbed.
6842  * @param event_mask Specifies which pointer events are reported to the client.
6843  * \n
6844  * TODO: which values?
6845  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
6846  * @param pointer_mode \n
6847  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
6848  * @param keyboard_mode \n
6849  * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
6850  * move the pointer out of that window).
6851  * \n
6852  * The special value `XCB_NONE` means don't confine the pointer.
6853  * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
6854  * cursor.
6855  * @param time The time argument allows you to avoid certain circumstances that come up if
6856  * applications take a long time to respond or if there are long network delays.
6857  * Consider a situation where you have two applications, both of which normally
6858  * grab the pointer when clicked on. If both applications specify the timestamp
6859  * from the event, the second application may wake up faster and successfully grab
6860  * the pointer before the first application. The first application then will get
6861  * an indication that the other application grabbed the pointer before its request
6862  * was processed.
6863  * \n
6864  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
6865  * time.
6866  * @return A cookie
6867  *
6868  * Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.
6869  *
6870  */
6871 xcb_grab_pointer_cookie_t
6872 xcb_grab_pointer (xcb_connection_t *c  /**< */,
6873                   uint8_t           owner_events  /**< */,
6874                   xcb_window_t      grab_window  /**< */,
6875                   uint16_t          event_mask  /**< */,
6876                   uint8_t           pointer_mode  /**< */,
6877                   uint8_t           keyboard_mode  /**< */,
6878                   xcb_window_t      confine_to  /**< */,
6879                   xcb_cursor_t      cursor  /**< */,
6880                   xcb_timestamp_t   time  /**< */);
6881 
6882 /**
6883  * @brief Grab the pointer
6884  *
6885  * @param c The connection
6886  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
6887  * reported to the \a grab_window.
6888  * @param grab_window Specifies the window on which the pointer should be grabbed.
6889  * @param event_mask Specifies which pointer events are reported to the client.
6890  * \n
6891  * TODO: which values?
6892  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
6893  * @param pointer_mode \n
6894  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
6895  * @param keyboard_mode \n
6896  * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
6897  * move the pointer out of that window).
6898  * \n
6899  * The special value `XCB_NONE` means don't confine the pointer.
6900  * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
6901  * cursor.
6902  * @param time The time argument allows you to avoid certain circumstances that come up if
6903  * applications take a long time to respond or if there are long network delays.
6904  * Consider a situation where you have two applications, both of which normally
6905  * grab the pointer when clicked on. If both applications specify the timestamp
6906  * from the event, the second application may wake up faster and successfully grab
6907  * the pointer before the first application. The first application then will get
6908  * an indication that the other application grabbed the pointer before its request
6909  * was processed.
6910  * \n
6911  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
6912  * time.
6913  * @return A cookie
6914  *
6915  * Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.
6916  *
6917  * This form can be used only if the request will cause
6918  * a reply to be generated. Any returned error will be
6919  * placed in the event queue.
6920  */
6921 xcb_grab_pointer_cookie_t
6922 xcb_grab_pointer_unchecked (xcb_connection_t *c  /**< */,
6923                             uint8_t           owner_events  /**< */,
6924                             xcb_window_t      grab_window  /**< */,
6925                             uint16_t          event_mask  /**< */,
6926                             uint8_t           pointer_mode  /**< */,
6927                             uint8_t           keyboard_mode  /**< */,
6928                             xcb_window_t      confine_to  /**< */,
6929                             xcb_cursor_t      cursor  /**< */,
6930                             xcb_timestamp_t   time  /**< */);
6931 
6932 /**
6933  * Return the reply
6934  * @param c      The connection
6935  * @param cookie The cookie
6936  * @param e      The xcb_generic_error_t supplied
6937  *
6938  * Returns the reply of the request asked by
6939  *
6940  * The parameter @p e supplied to this function must be NULL if
6941  * xcb_grab_pointer_unchecked(). is used.
6942  * Otherwise, it stores the error if any.
6943  *
6944  * The returned value must be freed by the caller using free().
6945  */
6946 xcb_grab_pointer_reply_t *
6947 xcb_grab_pointer_reply (xcb_connection_t           *c  /**< */,
6948                         xcb_grab_pointer_cookie_t   cookie  /**< */,
6949                         xcb_generic_error_t       **e  /**< */);
6950 
6951 /**
6952  * @brief release the pointer
6953  *
6954  * @param c The connection
6955  * @param time Timestamp to avoid race conditions when running X over the network.
6956  * \n
6957  * The pointer will not be released if \a time is earlier than the
6958  * last-pointer-grab time or later than the current X server time.
6959  * @return A cookie
6960  *
6961  * Releases the pointer and any queued events if you actively grabbed the pointer
6962  * before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button
6963  * press.
6964  *
6965  * EnterNotify and LeaveNotify events are generated.
6966  *
6967  * This form can be used only if the request will not cause
6968  * a reply to be generated. Any returned error will be
6969  * saved for handling by xcb_request_check().
6970  */
6971 xcb_void_cookie_t
6972 xcb_ungrab_pointer_checked (xcb_connection_t *c  /**< */,
6973                             xcb_timestamp_t   time  /**< */);
6974 
6975 /**
6976  * @brief release the pointer
6977  *
6978  * @param c The connection
6979  * @param time Timestamp to avoid race conditions when running X over the network.
6980  * \n
6981  * The pointer will not be released if \a time is earlier than the
6982  * last-pointer-grab time or later than the current X server time.
6983  * @return A cookie
6984  *
6985  * Releases the pointer and any queued events if you actively grabbed the pointer
6986  * before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button
6987  * press.
6988  *
6989  * EnterNotify and LeaveNotify events are generated.
6990  *
6991  */
6992 xcb_void_cookie_t
6993 xcb_ungrab_pointer (xcb_connection_t *c  /**< */,
6994                     xcb_timestamp_t   time  /**< */);
6995 
6996 /**
6997  * @brief Grab pointer button(s)
6998  *
6999  * @param c The connection
7000  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
7001  * reported to the \a grab_window.
7002  * @param grab_window Specifies the window on which the pointer should be grabbed.
7003  * @param event_mask Specifies which pointer events are reported to the client.
7004  * \n
7005  * TODO: which values?
7006  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
7007  * @param pointer_mode \n
7008  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
7009  * @param keyboard_mode \n
7010  * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
7011  * move the pointer out of that window).
7012  * \n
7013  * The special value `XCB_NONE` means don't confine the pointer.
7014  * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
7015  * cursor.
7016  * @param button A bitmask of #xcb_button_index_t values.
7017  * @param button \n
7018  * @param modifiers The modifiers to grab.
7019  * \n
7020  * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
7021  * possible modifier combinations.
7022  * @return A cookie
7023  *
7024  * This request establishes a passive grab. The pointer is actively grabbed as
7025  * described in GrabPointer, the last-pointer-grab time is set to the time at
7026  * which the button was pressed (as transmitted in the ButtonPress event), and the
7027  * ButtonPress event is reported if all of the following conditions are true:
7028  *
7029  * The pointer is not grabbed and the specified button is logically pressed when
7030  * the specified modifier keys are logically down, and no other buttons or
7031  * modifier keys are logically down.
7032  *
7033  * The grab-window contains the pointer.
7034  *
7035  * The confine-to window (if any) is viewable.
7036  *
7037  * A passive grab on the same button/key combination does not exist on any
7038  * ancestor of grab-window.
7039  *
7040  * The interpretation of the remaining arguments is the same as for GrabPointer.
7041  * The active grab is terminated automatically when the logical state of the
7042  * pointer has all buttons released, independent of the logical state of modifier
7043  * keys. Note that the logical state of a device (as seen by means of the
7044  * protocol) may lag the physical state if device event processing is frozen. This
7045  * request overrides all previous passive grabs by the same client on the same
7046  * button/key combinations on the same window. A modifier of AnyModifier is
7047  * equivalent to issuing the request for all possible modifier combinations
7048  * (including the combination of no modifiers). It is not required that all
7049  * specified modifiers have currently assigned keycodes. A button of AnyButton is
7050  * equivalent to issuing the request for all possible buttons. Otherwise, it is
7051  * not required that the button specified currently be assigned to a physical
7052  * button.
7053  *
7054  * An Access error is generated if some other client has already issued a
7055  * GrabButton request with the same button/key combination on the same window.
7056  * When using AnyModifier or AnyButton, the request fails completely (no grabs are
7057  * established), and an Access error is generated if there is a conflicting grab
7058  * for any combination. The request has no effect on an active grab.
7059  *
7060  * This form can be used only if the request will not cause
7061  * a reply to be generated. Any returned error will be
7062  * saved for handling by xcb_request_check().
7063  */
7064 xcb_void_cookie_t
7065 xcb_grab_button_checked (xcb_connection_t *c  /**< */,
7066                          uint8_t           owner_events  /**< */,
7067                          xcb_window_t      grab_window  /**< */,
7068                          uint16_t          event_mask  /**< */,
7069                          uint8_t           pointer_mode  /**< */,
7070                          uint8_t           keyboard_mode  /**< */,
7071                          xcb_window_t      confine_to  /**< */,
7072                          xcb_cursor_t      cursor  /**< */,
7073                          uint8_t           button  /**< */,
7074                          uint16_t          modifiers  /**< */);
7075 
7076 /**
7077  * @brief Grab pointer button(s)
7078  *
7079  * @param c The connection
7080  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
7081  * reported to the \a grab_window.
7082  * @param grab_window Specifies the window on which the pointer should be grabbed.
7083  * @param event_mask Specifies which pointer events are reported to the client.
7084  * \n
7085  * TODO: which values?
7086  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
7087  * @param pointer_mode \n
7088  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
7089  * @param keyboard_mode \n
7090  * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
7091  * move the pointer out of that window).
7092  * \n
7093  * The special value `XCB_NONE` means don't confine the pointer.
7094  * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
7095  * cursor.
7096  * @param button A bitmask of #xcb_button_index_t values.
7097  * @param button \n
7098  * @param modifiers The modifiers to grab.
7099  * \n
7100  * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
7101  * possible modifier combinations.
7102  * @return A cookie
7103  *
7104  * This request establishes a passive grab. The pointer is actively grabbed as
7105  * described in GrabPointer, the last-pointer-grab time is set to the time at
7106  * which the button was pressed (as transmitted in the ButtonPress event), and the
7107  * ButtonPress event is reported if all of the following conditions are true:
7108  *
7109  * The pointer is not grabbed and the specified button is logically pressed when
7110  * the specified modifier keys are logically down, and no other buttons or
7111  * modifier keys are logically down.
7112  *
7113  * The grab-window contains the pointer.
7114  *
7115  * The confine-to window (if any) is viewable.
7116  *
7117  * A passive grab on the same button/key combination does not exist on any
7118  * ancestor of grab-window.
7119  *
7120  * The interpretation of the remaining arguments is the same as for GrabPointer.
7121  * The active grab is terminated automatically when the logical state of the
7122  * pointer has all buttons released, independent of the logical state of modifier
7123  * keys. Note that the logical state of a device (as seen by means of the
7124  * protocol) may lag the physical state if device event processing is frozen. This
7125  * request overrides all previous passive grabs by the same client on the same
7126  * button/key combinations on the same window. A modifier of AnyModifier is
7127  * equivalent to issuing the request for all possible modifier combinations
7128  * (including the combination of no modifiers). It is not required that all
7129  * specified modifiers have currently assigned keycodes. A button of AnyButton is
7130  * equivalent to issuing the request for all possible buttons. Otherwise, it is
7131  * not required that the button specified currently be assigned to a physical
7132  * button.
7133  *
7134  * An Access error is generated if some other client has already issued a
7135  * GrabButton request with the same button/key combination on the same window.
7136  * When using AnyModifier or AnyButton, the request fails completely (no grabs are
7137  * established), and an Access error is generated if there is a conflicting grab
7138  * for any combination. The request has no effect on an active grab.
7139  *
7140  */
7141 xcb_void_cookie_t
7142 xcb_grab_button (xcb_connection_t *c  /**< */,
7143                  uint8_t           owner_events  /**< */,
7144                  xcb_window_t      grab_window  /**< */,
7145                  uint16_t          event_mask  /**< */,
7146                  uint8_t           pointer_mode  /**< */,
7147                  uint8_t           keyboard_mode  /**< */,
7148                  xcb_window_t      confine_to  /**< */,
7149                  xcb_cursor_t      cursor  /**< */,
7150                  uint8_t           button  /**< */,
7151                  uint16_t          modifiers  /**< */);
7152 
7153 /**
7154  *
7155  * @param c The connection
7156  * @return A cookie
7157  *
7158  * Delivers a request to the X server.
7159  *
7160  * This form can be used only if the request will not cause
7161  * a reply to be generated. Any returned error will be
7162  * saved for handling by xcb_request_check().
7163  */
7164 xcb_void_cookie_t
7165 xcb_ungrab_button_checked (xcb_connection_t *c  /**< */,
7166                            uint8_t           button  /**< */,
7167                            xcb_window_t      grab_window  /**< */,
7168                            uint16_t          modifiers  /**< */);
7169 
7170 /**
7171  *
7172  * @param c The connection
7173  * @return A cookie
7174  *
7175  * Delivers a request to the X server.
7176  *
7177  */
7178 xcb_void_cookie_t
7179 xcb_ungrab_button (xcb_connection_t *c  /**< */,
7180                    uint8_t           button  /**< */,
7181                    xcb_window_t      grab_window  /**< */,
7182                    uint16_t          modifiers  /**< */);
7183 
7184 /**
7185  *
7186  * @param c The connection
7187  * @return A cookie
7188  *
7189  * Delivers a request to the X server.
7190  *
7191  * This form can be used only if the request will not cause
7192  * a reply to be generated. Any returned error will be
7193  * saved for handling by xcb_request_check().
7194  */
7195 xcb_void_cookie_t
7196 xcb_change_active_pointer_grab_checked (xcb_connection_t *c  /**< */,
7197                                         xcb_cursor_t      cursor  /**< */,
7198                                         xcb_timestamp_t   time  /**< */,
7199                                         uint16_t          event_mask  /**< */);
7200 
7201 /**
7202  *
7203  * @param c The connection
7204  * @return A cookie
7205  *
7206  * Delivers a request to the X server.
7207  *
7208  */
7209 xcb_void_cookie_t
7210 xcb_change_active_pointer_grab (xcb_connection_t *c  /**< */,
7211                                 xcb_cursor_t      cursor  /**< */,
7212                                 xcb_timestamp_t   time  /**< */,
7213                                 uint16_t          event_mask  /**< */);
7214 
7215 /**
7216  * @brief Grab the keyboard
7217  *
7218  * @param c The connection
7219  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
7220  * reported to the \a grab_window.
7221  * @param grab_window Specifies the window on which the pointer should be grabbed.
7222  * @param time Timestamp to avoid race conditions when running X over the network.
7223  * \n
7224  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
7225  * time.
7226  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
7227  * @param pointer_mode \n
7228  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
7229  * @param keyboard_mode \n
7230  * @return A cookie
7231  *
7232  * Actively grabs control of the keyboard and generates FocusIn and FocusOut
7233  * events. Further key events are reported only to the grabbing client.
7234  *
7235  * Any active keyboard grab by this client is overridden. If the keyboard is
7236  * actively grabbed by some other client, `AlreadyGrabbed` is returned. If
7237  * \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard
7238  * is frozen by an active grab of another client, `GrabFrozen` is returned. If the
7239  * specified \a time is earlier than the last-keyboard-grab time or later than the
7240  * current X server time, `GrabInvalidTime` is returned. Otherwise, the
7241  * last-keyboard-grab time is set to the specified time.
7242  *
7243  */
7244 xcb_grab_keyboard_cookie_t
7245 xcb_grab_keyboard (xcb_connection_t *c  /**< */,
7246                    uint8_t           owner_events  /**< */,
7247                    xcb_window_t      grab_window  /**< */,
7248                    xcb_timestamp_t   time  /**< */,
7249                    uint8_t           pointer_mode  /**< */,
7250                    uint8_t           keyboard_mode  /**< */);
7251 
7252 /**
7253  * @brief Grab the keyboard
7254  *
7255  * @param c The connection
7256  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
7257  * reported to the \a grab_window.
7258  * @param grab_window Specifies the window on which the pointer should be grabbed.
7259  * @param time Timestamp to avoid race conditions when running X over the network.
7260  * \n
7261  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
7262  * time.
7263  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
7264  * @param pointer_mode \n
7265  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
7266  * @param keyboard_mode \n
7267  * @return A cookie
7268  *
7269  * Actively grabs control of the keyboard and generates FocusIn and FocusOut
7270  * events. Further key events are reported only to the grabbing client.
7271  *
7272  * Any active keyboard grab by this client is overridden. If the keyboard is
7273  * actively grabbed by some other client, `AlreadyGrabbed` is returned. If
7274  * \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard
7275  * is frozen by an active grab of another client, `GrabFrozen` is returned. If the
7276  * specified \a time is earlier than the last-keyboard-grab time or later than the
7277  * current X server time, `GrabInvalidTime` is returned. Otherwise, the
7278  * last-keyboard-grab time is set to the specified time.
7279  *
7280  * This form can be used only if the request will cause
7281  * a reply to be generated. Any returned error will be
7282  * placed in the event queue.
7283  */
7284 xcb_grab_keyboard_cookie_t
7285 xcb_grab_keyboard_unchecked (xcb_connection_t *c  /**< */,
7286                              uint8_t           owner_events  /**< */,
7287                              xcb_window_t      grab_window  /**< */,
7288                              xcb_timestamp_t   time  /**< */,
7289                              uint8_t           pointer_mode  /**< */,
7290                              uint8_t           keyboard_mode  /**< */);
7291 
7292 /**
7293  * Return the reply
7294  * @param c      The connection
7295  * @param cookie The cookie
7296  * @param e      The xcb_generic_error_t supplied
7297  *
7298  * Returns the reply of the request asked by
7299  *
7300  * The parameter @p e supplied to this function must be NULL if
7301  * xcb_grab_keyboard_unchecked(). is used.
7302  * Otherwise, it stores the error if any.
7303  *
7304  * The returned value must be freed by the caller using free().
7305  */
7306 xcb_grab_keyboard_reply_t *
7307 xcb_grab_keyboard_reply (xcb_connection_t            *c  /**< */,
7308                          xcb_grab_keyboard_cookie_t   cookie  /**< */,
7309                          xcb_generic_error_t        **e  /**< */);
7310 
7311 /**
7312  *
7313  * @param c The connection
7314  * @return A cookie
7315  *
7316  * Delivers a request to the X server.
7317  *
7318  * This form can be used only if the request will not cause
7319  * a reply to be generated. Any returned error will be
7320  * saved for handling by xcb_request_check().
7321  */
7322 xcb_void_cookie_t
7323 xcb_ungrab_keyboard_checked (xcb_connection_t *c  /**< */,
7324                              xcb_timestamp_t   time  /**< */);
7325 
7326 /**
7327  *
7328  * @param c The connection
7329  * @return A cookie
7330  *
7331  * Delivers a request to the X server.
7332  *
7333  */
7334 xcb_void_cookie_t
7335 xcb_ungrab_keyboard (xcb_connection_t *c  /**< */,
7336                      xcb_timestamp_t   time  /**< */);
7337 
7338 /**
7339  * @brief Grab keyboard key(s)
7340  *
7341  * @param c The connection
7342  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
7343  * reported to the \a grab_window.
7344  * @param grab_window Specifies the window on which the pointer should be grabbed.
7345  * @param modifiers The modifiers to grab.
7346  * \n
7347  * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
7348  * possible modifier combinations.
7349  * @param key The keycode of the key to grab.
7350  * \n
7351  * The special value `XCB_GRAB_ANY` means grab any key.
7352  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
7353  * @param pointer_mode \n
7354  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
7355  * @param keyboard_mode \n
7356  * @return A cookie
7357  *
7358  * Establishes a passive grab on the keyboard. In the future, the keyboard is
7359  * actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to
7360  * the time at which the key was pressed (as transmitted in the KeyPress event),
7361  * and the KeyPress event is reported if all of the following conditions are true:
7362  *
7363  * The keyboard is not grabbed and the specified key (which can itself be a
7364  * modifier key) is logically pressed when the specified modifier keys are
7365  * logically down, and no other modifier keys are logically down.
7366  *
7367  * Either the grab_window is an ancestor of (or is) the focus window, or the
7368  * grab_window is a descendant of the focus window and contains the pointer.
7369  *
7370  * A passive grab on the same key combination does not exist on any ancestor of
7371  * grab_window.
7372  *
7373  * The interpretation of the remaining arguments is as for XGrabKeyboard.  The active grab is terminated
7374  * automatically when the logical state of the keyboard has the specified key released (independent of the
7375  * logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.
7376  *
7377  * Note that the logical state of a device (as seen by client applications) may lag the physical state if
7378  * device event processing is frozen.
7379  *
7380  * A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers).  It is not required that all modifiers specified
7381  * have currently assigned KeyCodes.  A keycode argument of AnyKey is equivalent to issuing the request for
7382  * all possible KeyCodes.  Otherwise, the specified keycode must be in the range specified by min_keycode
7383  * and max_keycode in the connection setup, or a BadValue error results.
7384  *
7385  * If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess
7386  * error results.  When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error
7387  * results (no grabs are established) if there is a conflicting grab for any combination.
7388  *
7389  * This form can be used only if the request will not cause
7390  * a reply to be generated. Any returned error will be
7391  * saved for handling by xcb_request_check().
7392  */
7393 xcb_void_cookie_t
7394 xcb_grab_key_checked (xcb_connection_t *c  /**< */,
7395                       uint8_t           owner_events  /**< */,
7396                       xcb_window_t      grab_window  /**< */,
7397                       uint16_t          modifiers  /**< */,
7398                       xcb_keycode_t     key  /**< */,
7399                       uint8_t           pointer_mode  /**< */,
7400                       uint8_t           keyboard_mode  /**< */);
7401 
7402 /**
7403  * @brief Grab keyboard key(s)
7404  *
7405  * @param c The connection
7406  * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
7407  * reported to the \a grab_window.
7408  * @param grab_window Specifies the window on which the pointer should be grabbed.
7409  * @param modifiers The modifiers to grab.
7410  * \n
7411  * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
7412  * possible modifier combinations.
7413  * @param key The keycode of the key to grab.
7414  * \n
7415  * The special value `XCB_GRAB_ANY` means grab any key.
7416  * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
7417  * @param pointer_mode \n
7418  * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
7419  * @param keyboard_mode \n
7420  * @return A cookie
7421  *
7422  * Establishes a passive grab on the keyboard. In the future, the keyboard is
7423  * actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to
7424  * the time at which the key was pressed (as transmitted in the KeyPress event),
7425  * and the KeyPress event is reported if all of the following conditions are true:
7426  *
7427  * The keyboard is not grabbed and the specified key (which can itself be a
7428  * modifier key) is logically pressed when the specified modifier keys are
7429  * logically down, and no other modifier keys are logically down.
7430  *
7431  * Either the grab_window is an ancestor of (or is) the focus window, or the
7432  * grab_window is a descendant of the focus window and contains the pointer.
7433  *
7434  * A passive grab on the same key combination does not exist on any ancestor of
7435  * grab_window.
7436  *
7437  * The interpretation of the remaining arguments is as for XGrabKeyboard.  The active grab is terminated
7438  * automatically when the logical state of the keyboard has the specified key released (independent of the
7439  * logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.
7440  *
7441  * Note that the logical state of a device (as seen by client applications) may lag the physical state if
7442  * device event processing is frozen.
7443  *
7444  * A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers).  It is not required that all modifiers specified
7445  * have currently assigned KeyCodes.  A keycode argument of AnyKey is equivalent to issuing the request for
7446  * all possible KeyCodes.  Otherwise, the specified keycode must be in the range specified by min_keycode
7447  * and max_keycode in the connection setup, or a BadValue error results.
7448  *
7449  * If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess
7450  * error results.  When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error
7451  * results (no grabs are established) if there is a conflicting grab for any combination.
7452  *
7453  */
7454 xcb_void_cookie_t
7455 xcb_grab_key (xcb_connection_t *c  /**< */,
7456               uint8_t           owner_events  /**< */,
7457               xcb_window_t      grab_window  /**< */,
7458               uint16_t          modifiers  /**< */,
7459               xcb_keycode_t     key  /**< */,
7460               uint8_t           pointer_mode  /**< */,
7461               uint8_t           keyboard_mode  /**< */);
7462 
7463 /**
7464  * @brief release a key combination
7465  *
7466  * @param c The connection
7467  * @param key The keycode of the specified key combination.
7468  * \n
7469  * Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.
7470  * @param grab_window The window on which the grabbed key combination will be released.
7471  * @param modifiers The modifiers of the specified key combination.
7472  * \n
7473  * Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination
7474  * with every possible modifier combination.
7475  * @return A cookie
7476  *
7477  * Releases the key combination on \a grab_window if you grabbed it using
7478  * `xcb_grab_key` before.
7479  *
7480  * This form can be used only if the request will not cause
7481  * a reply to be generated. Any returned error will be
7482  * saved for handling by xcb_request_check().
7483  */
7484 xcb_void_cookie_t
7485 xcb_ungrab_key_checked (xcb_connection_t *c  /**< */,
7486                         xcb_keycode_t     key  /**< */,
7487                         xcb_window_t      grab_window  /**< */,
7488                         uint16_t          modifiers  /**< */);
7489 
7490 /**
7491  * @brief release a key combination
7492  *
7493  * @param c The connection
7494  * @param key The keycode of the specified key combination.
7495  * \n
7496  * Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.
7497  * @param grab_window The window on which the grabbed key combination will be released.
7498  * @param modifiers The modifiers of the specified key combination.
7499  * \n
7500  * Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination
7501  * with every possible modifier combination.
7502  * @return A cookie
7503  *
7504  * Releases the key combination on \a grab_window if you grabbed it using
7505  * `xcb_grab_key` before.
7506  *
7507  */
7508 xcb_void_cookie_t
7509 xcb_ungrab_key (xcb_connection_t *c  /**< */,
7510                 xcb_keycode_t     key  /**< */,
7511                 xcb_window_t      grab_window  /**< */,
7512                 uint16_t          modifiers  /**< */);
7513 
7514 /**
7515  * @brief release queued events
7516  *
7517  * @param c The connection
7518  * @param mode A bitmask of #xcb_allow_t values.
7519  * @param mode \n
7520  * @param time Timestamp to avoid race conditions when running X over the network.
7521  * \n
7522  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
7523  * time.
7524  * @return A cookie
7525  *
7526  * Releases queued events if the client has caused a device (pointer/keyboard) to
7527  * freeze due to grabbing it actively. This request has no effect if \a time is
7528  * earlier than the last-grab time of the most recent active grab for this client
7529  * or if \a time is later than the current X server time.
7530  *
7531  * This form can be used only if the request will not cause
7532  * a reply to be generated. Any returned error will be
7533  * saved for handling by xcb_request_check().
7534  */
7535 xcb_void_cookie_t
7536 xcb_allow_events_checked (xcb_connection_t *c  /**< */,
7537                           uint8_t           mode  /**< */,
7538                           xcb_timestamp_t   time  /**< */);
7539 
7540 /**
7541  * @brief release queued events
7542  *
7543  * @param c The connection
7544  * @param mode A bitmask of #xcb_allow_t values.
7545  * @param mode \n
7546  * @param time Timestamp to avoid race conditions when running X over the network.
7547  * \n
7548  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
7549  * time.
7550  * @return A cookie
7551  *
7552  * Releases queued events if the client has caused a device (pointer/keyboard) to
7553  * freeze due to grabbing it actively. This request has no effect if \a time is
7554  * earlier than the last-grab time of the most recent active grab for this client
7555  * or if \a time is later than the current X server time.
7556  *
7557  */
7558 xcb_void_cookie_t
7559 xcb_allow_events (xcb_connection_t *c  /**< */,
7560                   uint8_t           mode  /**< */,
7561                   xcb_timestamp_t   time  /**< */);
7562 
7563 /**
7564  *
7565  * @param c The connection
7566  * @return A cookie
7567  *
7568  * Delivers a request to the X server.
7569  *
7570  * This form can be used only if the request will not cause
7571  * a reply to be generated. Any returned error will be
7572  * saved for handling by xcb_request_check().
7573  */
7574 xcb_void_cookie_t
7575 xcb_grab_server_checked (xcb_connection_t *c  /**< */);
7576 
7577 /**
7578  *
7579  * @param c The connection
7580  * @return A cookie
7581  *
7582  * Delivers a request to the X server.
7583  *
7584  */
7585 xcb_void_cookie_t
7586 xcb_grab_server (xcb_connection_t *c  /**< */);
7587 
7588 /**
7589  *
7590  * @param c The connection
7591  * @return A cookie
7592  *
7593  * Delivers a request to the X server.
7594  *
7595  * This form can be used only if the request will not cause
7596  * a reply to be generated. Any returned error will be
7597  * saved for handling by xcb_request_check().
7598  */
7599 xcb_void_cookie_t
7600 xcb_ungrab_server_checked (xcb_connection_t *c  /**< */);
7601 
7602 /**
7603  *
7604  * @param c The connection
7605  * @return A cookie
7606  *
7607  * Delivers a request to the X server.
7608  *
7609  */
7610 xcb_void_cookie_t
7611 xcb_ungrab_server (xcb_connection_t *c  /**< */);
7612 
7613 /**
7614  * @brief get pointer coordinates
7615  *
7616  * @param c The connection
7617  * @param window A window to check if the pointer is on the same screen as \a window (see the
7618  * `same_screen` field in the reply).
7619  * @return A cookie
7620  *
7621  * Gets the root window the pointer is logically on and the pointer coordinates
7622  * relative to the root window's origin.
7623  *
7624  */
7625 xcb_query_pointer_cookie_t
7626 xcb_query_pointer (xcb_connection_t *c  /**< */,
7627                    xcb_window_t      window  /**< */);
7628 
7629 /**
7630  * @brief get pointer coordinates
7631  *
7632  * @param c The connection
7633  * @param window A window to check if the pointer is on the same screen as \a window (see the
7634  * `same_screen` field in the reply).
7635  * @return A cookie
7636  *
7637  * Gets the root window the pointer is logically on and the pointer coordinates
7638  * relative to the root window's origin.
7639  *
7640  * This form can be used only if the request will cause
7641  * a reply to be generated. Any returned error will be
7642  * placed in the event queue.
7643  */
7644 xcb_query_pointer_cookie_t
7645 xcb_query_pointer_unchecked (xcb_connection_t *c  /**< */,
7646                              xcb_window_t      window  /**< */);
7647 
7648 /**
7649  * Return the reply
7650  * @param c      The connection
7651  * @param cookie The cookie
7652  * @param e      The xcb_generic_error_t supplied
7653  *
7654  * Returns the reply of the request asked by
7655  *
7656  * The parameter @p e supplied to this function must be NULL if
7657  * xcb_query_pointer_unchecked(). is used.
7658  * Otherwise, it stores the error if any.
7659  *
7660  * The returned value must be freed by the caller using free().
7661  */
7662 xcb_query_pointer_reply_t *
7663 xcb_query_pointer_reply (xcb_connection_t            *c  /**< */,
7664                          xcb_query_pointer_cookie_t   cookie  /**< */,
7665                          xcb_generic_error_t        **e  /**< */);
7666 
7667 /**
7668  * Get the next element of the iterator
7669  * @param i Pointer to a xcb_timecoord_iterator_t
7670  *
7671  * Get the next element in the iterator. The member rem is
7672  * decreased by one. The member data points to the next
7673  * element. The member index is increased by sizeof(xcb_timecoord_t)
7674  */
7675 void
7676 xcb_timecoord_next (xcb_timecoord_iterator_t *i  /**< */);
7677 
7678 /**
7679  * Return the iterator pointing to the last element
7680  * @param i An xcb_timecoord_iterator_t
7681  * @return  The iterator pointing to the last element
7682  *
7683  * Set the current element in the iterator to the last element.
7684  * The member rem is set to 0. The member data points to the
7685  * last element.
7686  */
7687 xcb_generic_iterator_t
7688 xcb_timecoord_end (xcb_timecoord_iterator_t i  /**< */);
7689 
7690 int
7691 xcb_get_motion_events_sizeof (const void  *_buffer  /**< */);
7692 
7693 /**
7694  *
7695  * @param c The connection
7696  * @return A cookie
7697  *
7698  * Delivers a request to the X server.
7699  *
7700  */
7701 xcb_get_motion_events_cookie_t
7702 xcb_get_motion_events (xcb_connection_t *c  /**< */,
7703                        xcb_window_t      window  /**< */,
7704                        xcb_timestamp_t   start  /**< */,
7705                        xcb_timestamp_t   stop  /**< */);
7706 
7707 /**
7708  *
7709  * @param c The connection
7710  * @return A cookie
7711  *
7712  * Delivers a request to the X server.
7713  *
7714  * This form can be used only if the request will cause
7715  * a reply to be generated. Any returned error will be
7716  * placed in the event queue.
7717  */
7718 xcb_get_motion_events_cookie_t
7719 xcb_get_motion_events_unchecked (xcb_connection_t *c  /**< */,
7720                                  xcb_window_t      window  /**< */,
7721                                  xcb_timestamp_t   start  /**< */,
7722                                  xcb_timestamp_t   stop  /**< */);
7723 
7724 xcb_timecoord_t *
7725 xcb_get_motion_events_events (const xcb_get_motion_events_reply_t *R  /**< */);
7726 
7727 int
7728 xcb_get_motion_events_events_length (const xcb_get_motion_events_reply_t *R  /**< */);
7729 
7730 xcb_timecoord_iterator_t
7731 xcb_get_motion_events_events_iterator (const xcb_get_motion_events_reply_t *R  /**< */);
7732 
7733 /**
7734  * Return the reply
7735  * @param c      The connection
7736  * @param cookie The cookie
7737  * @param e      The xcb_generic_error_t supplied
7738  *
7739  * Returns the reply of the request asked by
7740  *
7741  * The parameter @p e supplied to this function must be NULL if
7742  * xcb_get_motion_events_unchecked(). is used.
7743  * Otherwise, it stores the error if any.
7744  *
7745  * The returned value must be freed by the caller using free().
7746  */
7747 xcb_get_motion_events_reply_t *
7748 xcb_get_motion_events_reply (xcb_connection_t                *c  /**< */,
7749                              xcb_get_motion_events_cookie_t   cookie  /**< */,
7750                              xcb_generic_error_t            **e  /**< */);
7751 
7752 /**
7753  *
7754  * @param c The connection
7755  * @return A cookie
7756  *
7757  * Delivers a request to the X server.
7758  *
7759  */
7760 xcb_translate_coordinates_cookie_t
7761 xcb_translate_coordinates (xcb_connection_t *c  /**< */,
7762                            xcb_window_t      src_window  /**< */,
7763                            xcb_window_t      dst_window  /**< */,
7764                            int16_t           src_x  /**< */,
7765                            int16_t           src_y  /**< */);
7766 
7767 /**
7768  *
7769  * @param c The connection
7770  * @return A cookie
7771  *
7772  * Delivers a request to the X server.
7773  *
7774  * This form can be used only if the request will cause
7775  * a reply to be generated. Any returned error will be
7776  * placed in the event queue.
7777  */
7778 xcb_translate_coordinates_cookie_t
7779 xcb_translate_coordinates_unchecked (xcb_connection_t *c  /**< */,
7780                                      xcb_window_t      src_window  /**< */,
7781                                      xcb_window_t      dst_window  /**< */,
7782                                      int16_t           src_x  /**< */,
7783                                      int16_t           src_y  /**< */);
7784 
7785 /**
7786  * Return the reply
7787  * @param c      The connection
7788  * @param cookie The cookie
7789  * @param e      The xcb_generic_error_t supplied
7790  *
7791  * Returns the reply of the request asked by
7792  *
7793  * The parameter @p e supplied to this function must be NULL if
7794  * xcb_translate_coordinates_unchecked(). is used.
7795  * Otherwise, it stores the error if any.
7796  *
7797  * The returned value must be freed by the caller using free().
7798  */
7799 xcb_translate_coordinates_reply_t *
7800 xcb_translate_coordinates_reply (xcb_connection_t                    *c  /**< */,
7801                                  xcb_translate_coordinates_cookie_t   cookie  /**< */,
7802                                  xcb_generic_error_t                **e  /**< */);
7803 
7804 /**
7805  * @brief move mouse pointer
7806  *
7807  * @param c The connection
7808  * @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
7809  * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
7810  * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
7811  * \a src_window.
7812  * @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
7813  * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
7814  * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
7815  * relative to the current position of the pointer.
7816  * @return A cookie
7817  *
7818  * Moves the mouse pointer to the specified position.
7819  *
7820  * If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
7821  * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
7822  * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
7823  * \a src_window.
7824  *
7825  * If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
7826  * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
7827  * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
7828  * relative to the current position of the pointer.
7829  *
7830  * This form can be used only if the request will not cause
7831  * a reply to be generated. Any returned error will be
7832  * saved for handling by xcb_request_check().
7833  */
7834 xcb_void_cookie_t
7835 xcb_warp_pointer_checked (xcb_connection_t *c  /**< */,
7836                           xcb_window_t      src_window  /**< */,
7837                           xcb_window_t      dst_window  /**< */,
7838                           int16_t           src_x  /**< */,
7839                           int16_t           src_y  /**< */,
7840                           uint16_t          src_width  /**< */,
7841                           uint16_t          src_height  /**< */,
7842                           int16_t           dst_x  /**< */,
7843                           int16_t           dst_y  /**< */);
7844 
7845 /**
7846  * @brief move mouse pointer
7847  *
7848  * @param c The connection
7849  * @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
7850  * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
7851  * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
7852  * \a src_window.
7853  * @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
7854  * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
7855  * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
7856  * relative to the current position of the pointer.
7857  * @return A cookie
7858  *
7859  * Moves the mouse pointer to the specified position.
7860  *
7861  * If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
7862  * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
7863  * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
7864  * \a src_window.
7865  *
7866  * If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
7867  * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
7868  * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
7869  * relative to the current position of the pointer.
7870  *
7871  */
7872 xcb_void_cookie_t
7873 xcb_warp_pointer (xcb_connection_t *c  /**< */,
7874                   xcb_window_t      src_window  /**< */,
7875                   xcb_window_t      dst_window  /**< */,
7876                   int16_t           src_x  /**< */,
7877                   int16_t           src_y  /**< */,
7878                   uint16_t          src_width  /**< */,
7879                   uint16_t          src_height  /**< */,
7880                   int16_t           dst_x  /**< */,
7881                   int16_t           dst_y  /**< */);
7882 
7883 /**
7884  * @brief Sets input focus
7885  *
7886  * @param c The connection
7887  * @param revert_to A bitmask of #xcb_input_focus_t values.
7888  * @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus
7889  * is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).
7890  * @param focus The window to focus. All keyboard events will be reported to this window. The
7891  * window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).
7892  * \n
7893  * If \a focus is `XCB_NONE` (TODO), all keyboard events are
7894  * discarded until a new focus window is set.
7895  * \n
7896  * If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the
7897  * screen on which the pointer is on currently.
7898  * @param time Timestamp to avoid race conditions when running X over the network.
7899  * \n
7900  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
7901  * time.
7902  * @return A cookie
7903  *
7904  * Changes the input focus and the last-focus-change time. If the specified \a time
7905  * is earlier than the current last-focus-change time, the request is ignored (to
7906  * avoid race conditions when running X over the network).
7907  *
7908  * A FocusIn and FocusOut event is generated when focus is changed.
7909  *
7910  * This form can be used only if the request will not cause
7911  * a reply to be generated. Any returned error will be
7912  * saved for handling by xcb_request_check().
7913  */
7914 xcb_void_cookie_t
7915 xcb_set_input_focus_checked (xcb_connection_t *c  /**< */,
7916                              uint8_t           revert_to  /**< */,
7917                              xcb_window_t      focus  /**< */,
7918                              xcb_timestamp_t   time  /**< */);
7919 
7920 /**
7921  * @brief Sets input focus
7922  *
7923  * @param c The connection
7924  * @param revert_to A bitmask of #xcb_input_focus_t values.
7925  * @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus
7926  * is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).
7927  * @param focus The window to focus. All keyboard events will be reported to this window. The
7928  * window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).
7929  * \n
7930  * If \a focus is `XCB_NONE` (TODO), all keyboard events are
7931  * discarded until a new focus window is set.
7932  * \n
7933  * If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the
7934  * screen on which the pointer is on currently.
7935  * @param time Timestamp to avoid race conditions when running X over the network.
7936  * \n
7937  * The special value `XCB_CURRENT_TIME` will be replaced with the current server
7938  * time.
7939  * @return A cookie
7940  *
7941  * Changes the input focus and the last-focus-change time. If the specified \a time
7942  * is earlier than the current last-focus-change time, the request is ignored (to
7943  * avoid race conditions when running X over the network).
7944  *
7945  * A FocusIn and FocusOut event is generated when focus is changed.
7946  *
7947  */
7948 xcb_void_cookie_t
7949 xcb_set_input_focus (xcb_connection_t *c  /**< */,
7950                      uint8_t           revert_to  /**< */,
7951                      xcb_window_t      focus  /**< */,
7952                      xcb_timestamp_t   time  /**< */);
7953 
7954 /**
7955  *
7956  * @param c The connection
7957  * @return A cookie
7958  *
7959  * Delivers a request to the X server.
7960  *
7961  */
7962 xcb_get_input_focus_cookie_t
7963 xcb_get_input_focus (xcb_connection_t *c  /**< */);
7964 
7965 /**
7966  *
7967  * @param c The connection
7968  * @return A cookie
7969  *
7970  * Delivers a request to the X server.
7971  *
7972  * This form can be used only if the request will cause
7973  * a reply to be generated. Any returned error will be
7974  * placed in the event queue.
7975  */
7976 xcb_get_input_focus_cookie_t
7977 xcb_get_input_focus_unchecked (xcb_connection_t *c  /**< */);
7978 
7979 /**
7980  * Return the reply
7981  * @param c      The connection
7982  * @param cookie The cookie
7983  * @param e      The xcb_generic_error_t supplied
7984  *
7985  * Returns the reply of the request asked by
7986  *
7987  * The parameter @p e supplied to this function must be NULL if
7988  * xcb_get_input_focus_unchecked(). is used.
7989  * Otherwise, it stores the error if any.
7990  *
7991  * The returned value must be freed by the caller using free().
7992  */
7993 xcb_get_input_focus_reply_t *
7994 xcb_get_input_focus_reply (xcb_connection_t              *c  /**< */,
7995                            xcb_get_input_focus_cookie_t   cookie  /**< */,
7996                            xcb_generic_error_t          **e  /**< */);
7997 
7998 /**
7999  *
8000  * @param c The connection
8001  * @return A cookie
8002  *
8003  * Delivers a request to the X server.
8004  *
8005  */
8006 xcb_query_keymap_cookie_t
8007 xcb_query_keymap (xcb_connection_t *c  /**< */);
8008 
8009 /**
8010  *
8011  * @param c The connection
8012  * @return A cookie
8013  *
8014  * Delivers a request to the X server.
8015  *
8016  * This form can be used only if the request will cause
8017  * a reply to be generated. Any returned error will be
8018  * placed in the event queue.
8019  */
8020 xcb_query_keymap_cookie_t
8021 xcb_query_keymap_unchecked (xcb_connection_t *c  /**< */);
8022 
8023 /**
8024  * Return the reply
8025  * @param c      The connection
8026  * @param cookie The cookie
8027  * @param e      The xcb_generic_error_t supplied
8028  *
8029  * Returns the reply of the request asked by
8030  *
8031  * The parameter @p e supplied to this function must be NULL if
8032  * xcb_query_keymap_unchecked(). is used.
8033  * Otherwise, it stores the error if any.
8034  *
8035  * The returned value must be freed by the caller using free().
8036  */
8037 xcb_query_keymap_reply_t *
8038 xcb_query_keymap_reply (xcb_connection_t           *c  /**< */,
8039                         xcb_query_keymap_cookie_t   cookie  /**< */,
8040                         xcb_generic_error_t       **e  /**< */);
8041 
8042 int
8043 xcb_open_font_sizeof (const void  *_buffer  /**< */);
8044 
8045 /**
8046  * @brief opens a font
8047  *
8048  * @param c The connection
8049  * @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.
8050  * @param name_len Length (in bytes) of \a name.
8051  * @param name A pattern describing an X core font.
8052  * @return A cookie
8053  *
8054  * Opens any X core font matching the given \a name (for example "-misc-fixed-*").
8055  *
8056  * Note that X core fonts are deprecated (but still supported) in favor of
8057  * client-side rendering using Xft.
8058  *
8059  * This form can be used only if the request will not cause
8060  * a reply to be generated. Any returned error will be
8061  * saved for handling by xcb_request_check().
8062  */
8063 xcb_void_cookie_t
8064 xcb_open_font_checked (xcb_connection_t *c  /**< */,
8065                        xcb_font_t        fid  /**< */,
8066                        uint16_t          name_len  /**< */,
8067                        const char       *name  /**< */);
8068 
8069 /**
8070  * @brief opens a font
8071  *
8072  * @param c The connection
8073  * @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.
8074  * @param name_len Length (in bytes) of \a name.
8075  * @param name A pattern describing an X core font.
8076  * @return A cookie
8077  *
8078  * Opens any X core font matching the given \a name (for example "-misc-fixed-*").
8079  *
8080  * Note that X core fonts are deprecated (but still supported) in favor of
8081  * client-side rendering using Xft.
8082  *
8083  */
8084 xcb_void_cookie_t
8085 xcb_open_font (xcb_connection_t *c  /**< */,
8086                xcb_font_t        fid  /**< */,
8087                uint16_t          name_len  /**< */,
8088                const char       *name  /**< */);
8089 
8090 /**
8091  *
8092  * @param c The connection
8093  * @return A cookie
8094  *
8095  * Delivers a request to the X server.
8096  *
8097  * This form can be used only if the request will not cause
8098  * a reply to be generated. Any returned error will be
8099  * saved for handling by xcb_request_check().
8100  */
8101 xcb_void_cookie_t
8102 xcb_close_font_checked (xcb_connection_t *c  /**< */,
8103                         xcb_font_t        font  /**< */);
8104 
8105 /**
8106  *
8107  * @param c The connection
8108  * @return A cookie
8109  *
8110  * Delivers a request to the X server.
8111  *
8112  */
8113 xcb_void_cookie_t
8114 xcb_close_font (xcb_connection_t *c  /**< */,
8115                 xcb_font_t        font  /**< */);
8116 
8117 /**
8118  * Get the next element of the iterator
8119  * @param i Pointer to a xcb_fontprop_iterator_t
8120  *
8121  * Get the next element in the iterator. The member rem is
8122  * decreased by one. The member data points to the next
8123  * element. The member index is increased by sizeof(xcb_fontprop_t)
8124  */
8125 void
8126 xcb_fontprop_next (xcb_fontprop_iterator_t *i  /**< */);
8127 
8128 /**
8129  * Return the iterator pointing to the last element
8130  * @param i An xcb_fontprop_iterator_t
8131  * @return  The iterator pointing to the last element
8132  *
8133  * Set the current element in the iterator to the last element.
8134  * The member rem is set to 0. The member data points to the
8135  * last element.
8136  */
8137 xcb_generic_iterator_t
8138 xcb_fontprop_end (xcb_fontprop_iterator_t i  /**< */);
8139 
8140 /**
8141  * Get the next element of the iterator
8142  * @param i Pointer to a xcb_charinfo_iterator_t
8143  *
8144  * Get the next element in the iterator. The member rem is
8145  * decreased by one. The member data points to the next
8146  * element. The member index is increased by sizeof(xcb_charinfo_t)
8147  */
8148 void
8149 xcb_charinfo_next (xcb_charinfo_iterator_t *i  /**< */);
8150 
8151 /**
8152  * Return the iterator pointing to the last element
8153  * @param i An xcb_charinfo_iterator_t
8154  * @return  The iterator pointing to the last element
8155  *
8156  * Set the current element in the iterator to the last element.
8157  * The member rem is set to 0. The member data points to the
8158  * last element.
8159  */
8160 xcb_generic_iterator_t
8161 xcb_charinfo_end (xcb_charinfo_iterator_t i  /**< */);
8162 
8163 int
8164 xcb_query_font_sizeof (const void  *_buffer  /**< */);
8165 
8166 /**
8167  * @brief query font metrics
8168  *
8169  * @param c The connection
8170  * @param font The fontable (Font or Graphics Context) to query.
8171  * @return A cookie
8172  *
8173  * Queries information associated with the font.
8174  *
8175  */
8176 xcb_query_font_cookie_t
8177 xcb_query_font (xcb_connection_t *c  /**< */,
8178                 xcb_fontable_t    font  /**< */);
8179 
8180 /**
8181  * @brief query font metrics
8182  *
8183  * @param c The connection
8184  * @param font The fontable (Font or Graphics Context) to query.
8185  * @return A cookie
8186  *
8187  * Queries information associated with the font.
8188  *
8189  * This form can be used only if the request will cause
8190  * a reply to be generated. Any returned error will be
8191  * placed in the event queue.
8192  */
8193 xcb_query_font_cookie_t
8194 xcb_query_font_unchecked (xcb_connection_t *c  /**< */,
8195                           xcb_fontable_t    font  /**< */);
8196 
8197 xcb_fontprop_t *
8198 xcb_query_font_properties (const xcb_query_font_reply_t *R  /**< */);
8199 
8200 int
8201 xcb_query_font_properties_length (const xcb_query_font_reply_t *R  /**< */);
8202 
8203 xcb_fontprop_iterator_t
8204 xcb_query_font_properties_iterator (const xcb_query_font_reply_t *R  /**< */);
8205 
8206 xcb_charinfo_t *
8207 xcb_query_font_char_infos (const xcb_query_font_reply_t *R  /**< */);
8208 
8209 int
8210 xcb_query_font_char_infos_length (const xcb_query_font_reply_t *R  /**< */);
8211 
8212 xcb_charinfo_iterator_t
8213 xcb_query_font_char_infos_iterator (const xcb_query_font_reply_t *R  /**< */);
8214 
8215 /**
8216  * Return the reply
8217  * @param c      The connection
8218  * @param cookie The cookie
8219  * @param e      The xcb_generic_error_t supplied
8220  *
8221  * Returns the reply of the request asked by
8222  *
8223  * The parameter @p e supplied to this function must be NULL if
8224  * xcb_query_font_unchecked(). is used.
8225  * Otherwise, it stores the error if any.
8226  *
8227  * The returned value must be freed by the caller using free().
8228  */
8229 xcb_query_font_reply_t *
8230 xcb_query_font_reply (xcb_connection_t         *c  /**< */,
8231                       xcb_query_font_cookie_t   cookie  /**< */,
8232                       xcb_generic_error_t     **e  /**< */);
8233 
8234 int
8235 xcb_query_text_extents_sizeof (const void  *_buffer  /**< */,
8236                                uint32_t     string_len  /**< */);
8237 
8238 /**
8239  * @brief get text extents
8240  *
8241  * @param c The connection
8242  * @param font The \a font to calculate text extents in. You can also pass a graphics context.
8243  * @param string_len The number of characters in \a string.
8244  * @param string The text to get text extents for.
8245  * @return A cookie
8246  *
8247  * Query text extents from the X11 server. This request returns the bounding box
8248  * of the specified 16-bit character string in the specified \a font or the font
8249  * contained in the specified graphics context.
8250  *
8251  * `font_ascent` is set to the maximum of the ascent metrics of all characters in
8252  * the string. `font_descent` is set to the maximum of the descent metrics.
8253  * `overall_width` is set to the sum of the character-width metrics of all
8254  * characters in the string. For each character in the string, let W be the sum of
8255  * the character-width metrics of all characters preceding it in the string. Let L
8256  * be the left-side-bearing metric of the character plus W. Let R be the
8257  * right-side-bearing metric of the character plus W. The lbearing member is set
8258  * to the minimum L of all characters in the string. The rbearing member is set to
8259  * the maximum R.
8260  *
8261  * For fonts defined with linear indexing rather than 2-byte matrix indexing, each
8262  * `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the
8263  * most significant byte. If the font has no defined default character, undefined
8264  * characters in the string are taken to have all zero metrics.
8265  *
8266  * Characters with all zero metrics are ignored. If the font has no defined
8267  * default_char, the undefined characters in the string are also ignored.
8268  *
8269  */
8270 xcb_query_text_extents_cookie_t
8271 xcb_query_text_extents (xcb_connection_t   *c  /**< */,
8272                         xcb_fontable_t      font  /**< */,
8273                         uint32_t            string_len  /**< */,
8274                         const xcb_char2b_t *string  /**< */);
8275 
8276 /**
8277  * @brief get text extents
8278  *
8279  * @param c The connection
8280  * @param font The \a font to calculate text extents in. You can also pass a graphics context.
8281  * @param string_len The number of characters in \a string.
8282  * @param string The text to get text extents for.
8283  * @return A cookie
8284  *
8285  * Query text extents from the X11 server. This request returns the bounding box
8286  * of the specified 16-bit character string in the specified \a font or the font
8287  * contained in the specified graphics context.
8288  *
8289  * `font_ascent` is set to the maximum of the ascent metrics of all characters in
8290  * the string. `font_descent` is set to the maximum of the descent metrics.
8291  * `overall_width` is set to the sum of the character-width metrics of all
8292  * characters in the string. For each character in the string, let W be the sum of
8293  * the character-width metrics of all characters preceding it in the string. Let L
8294  * be the left-side-bearing metric of the character plus W. Let R be the
8295  * right-side-bearing metric of the character plus W. The lbearing member is set
8296  * to the minimum L of all characters in the string. The rbearing member is set to
8297  * the maximum R.
8298  *
8299  * For fonts defined with linear indexing rather than 2-byte matrix indexing, each
8300  * `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the
8301  * most significant byte. If the font has no defined default character, undefined
8302  * characters in the string are taken to have all zero metrics.
8303  *
8304  * Characters with all zero metrics are ignored. If the font has no defined
8305  * default_char, the undefined characters in the string are also ignored.
8306  *
8307  * This form can be used only if the request will cause
8308  * a reply to be generated. Any returned error will be
8309  * placed in the event queue.
8310  */
8311 xcb_query_text_extents_cookie_t
8312 xcb_query_text_extents_unchecked (xcb_connection_t   *c  /**< */,
8313                                   xcb_fontable_t      font  /**< */,
8314                                   uint32_t            string_len  /**< */,
8315                                   const xcb_char2b_t *string  /**< */);
8316 
8317 /**
8318  * Return the reply
8319  * @param c      The connection
8320  * @param cookie The cookie
8321  * @param e      The xcb_generic_error_t supplied
8322  *
8323  * Returns the reply of the request asked by
8324  *
8325  * The parameter @p e supplied to this function must be NULL if
8326  * xcb_query_text_extents_unchecked(). is used.
8327  * Otherwise, it stores the error if any.
8328  *
8329  * The returned value must be freed by the caller using free().
8330  */
8331 xcb_query_text_extents_reply_t *
8332 xcb_query_text_extents_reply (xcb_connection_t                 *c  /**< */,
8333                               xcb_query_text_extents_cookie_t   cookie  /**< */,
8334                               xcb_generic_error_t             **e  /**< */);
8335 
8336 int
8337 xcb_str_sizeof (const void  *_buffer  /**< */);
8338 
8339 char *
8340 xcb_str_name (const xcb_str_t *R  /**< */);
8341 
8342 int
8343 xcb_str_name_length (const xcb_str_t *R  /**< */);
8344 
8345 xcb_generic_iterator_t
8346 xcb_str_name_end (const xcb_str_t *R  /**< */);
8347 
8348 /**
8349  * Get the next element of the iterator
8350  * @param i Pointer to a xcb_str_iterator_t
8351  *
8352  * Get the next element in the iterator. The member rem is
8353  * decreased by one. The member data points to the next
8354  * element. The member index is increased by sizeof(xcb_str_t)
8355  */
8356 void
8357 xcb_str_next (xcb_str_iterator_t *i  /**< */);
8358 
8359 /**
8360  * Return the iterator pointing to the last element
8361  * @param i An xcb_str_iterator_t
8362  * @return  The iterator pointing to the last element
8363  *
8364  * Set the current element in the iterator to the last element.
8365  * The member rem is set to 0. The member data points to the
8366  * last element.
8367  */
8368 xcb_generic_iterator_t
8369 xcb_str_end (xcb_str_iterator_t i  /**< */);
8370 
8371 int
8372 xcb_list_fonts_sizeof (const void  *_buffer  /**< */);
8373 
8374 /**
8375  * @brief get matching font names
8376  *
8377  * @param c The connection
8378  * @param max_names The maximum number of fonts to be returned.
8379  * @param pattern_len The length (in bytes) of \a pattern.
8380  * @param pattern A font pattern, for example "-misc-fixed-*".
8381  * \n
8382  * The asterisk (*) is a wildcard for any number of characters. The question mark
8383  * (?) is a wildcard for a single character. Use of uppercase or lowercase does
8384  * not matter.
8385  * @return A cookie
8386  *
8387  * Gets a list of available font names which match the given \a pattern.
8388  *
8389  */
8390 xcb_list_fonts_cookie_t
8391 xcb_list_fonts (xcb_connection_t *c  /**< */,
8392                 uint16_t          max_names  /**< */,
8393                 uint16_t          pattern_len  /**< */,
8394                 const char       *pattern  /**< */);
8395 
8396 /**
8397  * @brief get matching font names
8398  *
8399  * @param c The connection
8400  * @param max_names The maximum number of fonts to be returned.
8401  * @param pattern_len The length (in bytes) of \a pattern.
8402  * @param pattern A font pattern, for example "-misc-fixed-*".
8403  * \n
8404  * The asterisk (*) is a wildcard for any number of characters. The question mark
8405  * (?) is a wildcard for a single character. Use of uppercase or lowercase does
8406  * not matter.
8407  * @return A cookie
8408  *
8409  * Gets a list of available font names which match the given \a pattern.
8410  *
8411  * This form can be used only if the request will cause
8412  * a reply to be generated. Any returned error will be
8413  * placed in the event queue.
8414  */
8415 xcb_list_fonts_cookie_t
8416 xcb_list_fonts_unchecked (xcb_connection_t *c  /**< */,
8417                           uint16_t          max_names  /**< */,
8418                           uint16_t          pattern_len  /**< */,
8419                           const char       *pattern  /**< */);
8420 
8421 int
8422 xcb_list_fonts_names_length (const xcb_list_fonts_reply_t *R  /**< */);
8423 
8424 xcb_str_iterator_t
8425 xcb_list_fonts_names_iterator (const xcb_list_fonts_reply_t *R  /**< */);
8426 
8427 /**
8428  * Return the reply
8429  * @param c      The connection
8430  * @param cookie The cookie
8431  * @param e      The xcb_generic_error_t supplied
8432  *
8433  * Returns the reply of the request asked by
8434  *
8435  * The parameter @p e supplied to this function must be NULL if
8436  * xcb_list_fonts_unchecked(). is used.
8437  * Otherwise, it stores the error if any.
8438  *
8439  * The returned value must be freed by the caller using free().
8440  */
8441 xcb_list_fonts_reply_t *
8442 xcb_list_fonts_reply (xcb_connection_t         *c  /**< */,
8443                       xcb_list_fonts_cookie_t   cookie  /**< */,
8444                       xcb_generic_error_t     **e  /**< */);
8445 
8446 int
8447 xcb_list_fonts_with_info_sizeof (const void  *_buffer  /**< */);
8448 
8449 /**
8450  * @brief get matching font names and information
8451  *
8452  * @param c The connection
8453  * @param max_names The maximum number of fonts to be returned.
8454  * @param pattern_len The length (in bytes) of \a pattern.
8455  * @param pattern A font pattern, for example "-misc-fixed-*".
8456  * \n
8457  * The asterisk (*) is a wildcard for any number of characters. The question mark
8458  * (?) is a wildcard for a single character. Use of uppercase or lowercase does
8459  * not matter.
8460  * @return A cookie
8461  *
8462  * Gets a list of available font names which match the given \a pattern.
8463  *
8464  */
8465 xcb_list_fonts_with_info_cookie_t
8466 xcb_list_fonts_with_info (xcb_connection_t *c  /**< */,
8467                           uint16_t          max_names  /**< */,
8468                           uint16_t          pattern_len  /**< */,
8469                           const char       *pattern  /**< */);
8470 
8471 /**
8472  * @brief get matching font names and information
8473  *
8474  * @param c The connection
8475  * @param max_names The maximum number of fonts to be returned.
8476  * @param pattern_len The length (in bytes) of \a pattern.
8477  * @param pattern A font pattern, for example "-misc-fixed-*".
8478  * \n
8479  * The asterisk (*) is a wildcard for any number of characters. The question mark
8480  * (?) is a wildcard for a single character. Use of uppercase or lowercase does
8481  * not matter.
8482  * @return A cookie
8483  *
8484  * Gets a list of available font names which match the given \a pattern.
8485  *
8486  * This form can be used only if the request will cause
8487  * a reply to be generated. Any returned error will be
8488  * placed in the event queue.
8489  */
8490 xcb_list_fonts_with_info_cookie_t
8491 xcb_list_fonts_with_info_unchecked (xcb_connection_t *c  /**< */,
8492                                     uint16_t          max_names  /**< */,
8493                                     uint16_t          pattern_len  /**< */,
8494                                     const char       *pattern  /**< */);
8495 
8496 xcb_fontprop_t *
8497 xcb_list_fonts_with_info_properties (const xcb_list_fonts_with_info_reply_t *R  /**< */);
8498 
8499 int
8500 xcb_list_fonts_with_info_properties_length (const xcb_list_fonts_with_info_reply_t *R  /**< */);
8501 
8502 xcb_fontprop_iterator_t
8503 xcb_list_fonts_with_info_properties_iterator (const xcb_list_fonts_with_info_reply_t *R  /**< */);
8504 
8505 char *
8506 xcb_list_fonts_with_info_name (const xcb_list_fonts_with_info_reply_t *R  /**< */);
8507 
8508 int
8509 xcb_list_fonts_with_info_name_length (const xcb_list_fonts_with_info_reply_t *R  /**< */);
8510 
8511 xcb_generic_iterator_t
8512 xcb_list_fonts_with_info_name_end (const xcb_list_fonts_with_info_reply_t *R  /**< */);
8513 
8514 /**
8515  * Return the reply
8516  * @param c      The connection
8517  * @param cookie The cookie
8518  * @param e      The xcb_generic_error_t supplied
8519  *
8520  * Returns the reply of the request asked by
8521  *
8522  * The parameter @p e supplied to this function must be NULL if
8523  * xcb_list_fonts_with_info_unchecked(). is used.
8524  * Otherwise, it stores the error if any.
8525  *
8526  * The returned value must be freed by the caller using free().
8527  */
8528 xcb_list_fonts_with_info_reply_t *
8529 xcb_list_fonts_with_info_reply (xcb_connection_t                   *c  /**< */,
8530                                 xcb_list_fonts_with_info_cookie_t   cookie  /**< */,
8531                                 xcb_generic_error_t               **e  /**< */);
8532 
8533 int
8534 xcb_set_font_path_sizeof (const void  *_buffer  /**< */);
8535 
8536 /**
8537  *
8538  * @param c The connection
8539  * @return A cookie
8540  *
8541  * Delivers a request to the X server.
8542  *
8543  * This form can be used only if the request will not cause
8544  * a reply to be generated. Any returned error will be
8545  * saved for handling by xcb_request_check().
8546  */
8547 xcb_void_cookie_t
8548 xcb_set_font_path_checked (xcb_connection_t *c  /**< */,
8549                            uint16_t          font_qty  /**< */,
8550                            const xcb_str_t  *font  /**< */);
8551 
8552 /**
8553  *
8554  * @param c The connection
8555  * @return A cookie
8556  *
8557  * Delivers a request to the X server.
8558  *
8559  */
8560 xcb_void_cookie_t
8561 xcb_set_font_path (xcb_connection_t *c  /**< */,
8562                    uint16_t          font_qty  /**< */,
8563                    const xcb_str_t  *font  /**< */);
8564 
8565 int
8566 xcb_get_font_path_sizeof (const void  *_buffer  /**< */);
8567 
8568 /**
8569  *
8570  * @param c The connection
8571  * @return A cookie
8572  *
8573  * Delivers a request to the X server.
8574  *
8575  */
8576 xcb_get_font_path_cookie_t
8577 xcb_get_font_path (xcb_connection_t *c  /**< */);
8578 
8579 /**
8580  *
8581  * @param c The connection
8582  * @return A cookie
8583  *
8584  * Delivers a request to the X server.
8585  *
8586  * This form can be used only if the request will cause
8587  * a reply to be generated. Any returned error will be
8588  * placed in the event queue.
8589  */
8590 xcb_get_font_path_cookie_t
8591 xcb_get_font_path_unchecked (xcb_connection_t *c  /**< */);
8592 
8593 int
8594 xcb_get_font_path_path_length (const xcb_get_font_path_reply_t *R  /**< */);
8595 
8596 xcb_str_iterator_t
8597 xcb_get_font_path_path_iterator (const xcb_get_font_path_reply_t *R  /**< */);
8598 
8599 /**
8600  * Return the reply
8601  * @param c      The connection
8602  * @param cookie The cookie
8603  * @param e      The xcb_generic_error_t supplied
8604  *
8605  * Returns the reply of the request asked by
8606  *
8607  * The parameter @p e supplied to this function must be NULL if
8608  * xcb_get_font_path_unchecked(). is used.
8609  * Otherwise, it stores the error if any.
8610  *
8611  * The returned value must be freed by the caller using free().
8612  */
8613 xcb_get_font_path_reply_t *
8614 xcb_get_font_path_reply (xcb_connection_t            *c  /**< */,
8615                          xcb_get_font_path_cookie_t   cookie  /**< */,
8616                          xcb_generic_error_t        **e  /**< */);
8617 
8618 /**
8619  * @brief Creates a pixmap
8620  *
8621  * @param c The connection
8622  * @param depth TODO
8623  * @param pid The ID with which you will refer to the new pixmap, created by
8624  * `xcb_generate_id`.
8625  * @param drawable Drawable to get the screen from.
8626  * @param width The width of the new pixmap.
8627  * @param height The height of the new pixmap.
8628  * @return A cookie
8629  *
8630  * Creates a pixmap. The pixmap can only be used on the same screen as \a drawable
8631  * is on and only with drawables of the same \a depth.
8632  *
8633  * This form can be used only if the request will not cause
8634  * a reply to be generated. Any returned error will be
8635  * saved for handling by xcb_request_check().
8636  */
8637 xcb_void_cookie_t
8638 xcb_create_pixmap_checked (xcb_connection_t *c  /**< */,
8639                            uint8_t           depth  /**< */,
8640                            xcb_pixmap_t      pid  /**< */,
8641                            xcb_drawable_t    drawable  /**< */,
8642                            uint16_t          width  /**< */,
8643                            uint16_t          height  /**< */);
8644 
8645 /**
8646  * @brief Creates a pixmap
8647  *
8648  * @param c The connection
8649  * @param depth TODO
8650  * @param pid The ID with which you will refer to the new pixmap, created by
8651  * `xcb_generate_id`.
8652  * @param drawable Drawable to get the screen from.
8653  * @param width The width of the new pixmap.
8654  * @param height The height of the new pixmap.
8655  * @return A cookie
8656  *
8657  * Creates a pixmap. The pixmap can only be used on the same screen as \a drawable
8658  * is on and only with drawables of the same \a depth.
8659  *
8660  */
8661 xcb_void_cookie_t
8662 xcb_create_pixmap (xcb_connection_t *c  /**< */,
8663                    uint8_t           depth  /**< */,
8664                    xcb_pixmap_t      pid  /**< */,
8665                    xcb_drawable_t    drawable  /**< */,
8666                    uint16_t          width  /**< */,
8667                    uint16_t          height  /**< */);
8668 
8669 /**
8670  * @brief Destroys a pixmap
8671  *
8672  * @param c The connection
8673  * @param pixmap The pixmap to destroy.
8674  * @return A cookie
8675  *
8676  * Deletes the association between the pixmap ID and the pixmap. The pixmap
8677  * storage will be freed when there are no more references to it.
8678  *
8679  * This form can be used only if the request will not cause
8680  * a reply to be generated. Any returned error will be
8681  * saved for handling by xcb_request_check().
8682  */
8683 xcb_void_cookie_t
8684 xcb_free_pixmap_checked (xcb_connection_t *c  /**< */,
8685                          xcb_pixmap_t      pixmap  /**< */);
8686 
8687 /**
8688  * @brief Destroys a pixmap
8689  *
8690  * @param c The connection
8691  * @param pixmap The pixmap to destroy.
8692  * @return A cookie
8693  *
8694  * Deletes the association between the pixmap ID and the pixmap. The pixmap
8695  * storage will be freed when there are no more references to it.
8696  *
8697  */
8698 xcb_void_cookie_t
8699 xcb_free_pixmap (xcb_connection_t *c  /**< */,
8700                  xcb_pixmap_t      pixmap  /**< */);
8701 
8702 int
8703 xcb_create_gc_sizeof (const void  *_buffer  /**< */);
8704 
8705 /**
8706  * @brief Creates a graphics context
8707  *
8708  * @param c The connection
8709  * @param cid The ID with which you will refer to the graphics context, created by
8710  * `xcb_generate_id`.
8711  * @param drawable Drawable to get the root/depth from.
8712  * @return A cookie
8713  *
8714  * Creates a graphics context. The graphics context can be used with any drawable
8715  * that has the same root and depth as the specified drawable.
8716  *
8717  * This form can be used only if the request will not cause
8718  * a reply to be generated. Any returned error will be
8719  * saved for handling by xcb_request_check().
8720  */
8721 xcb_void_cookie_t
8722 xcb_create_gc_checked (xcb_connection_t *c  /**< */,
8723                        xcb_gcontext_t    cid  /**< */,
8724                        xcb_drawable_t    drawable  /**< */,
8725                        uint32_t          value_mask  /**< */,
8726                        const uint32_t   *value_list  /**< */);
8727 
8728 /**
8729  * @brief Creates a graphics context
8730  *
8731  * @param c The connection
8732  * @param cid The ID with which you will refer to the graphics context, created by
8733  * `xcb_generate_id`.
8734  * @param drawable Drawable to get the root/depth from.
8735  * @return A cookie
8736  *
8737  * Creates a graphics context. The graphics context can be used with any drawable
8738  * that has the same root and depth as the specified drawable.
8739  *
8740  */
8741 xcb_void_cookie_t
8742 xcb_create_gc (xcb_connection_t *c  /**< */,
8743                xcb_gcontext_t    cid  /**< */,
8744                xcb_drawable_t    drawable  /**< */,
8745                uint32_t          value_mask  /**< */,
8746                const uint32_t   *value_list  /**< */);
8747 
8748 int
8749 xcb_change_gc_sizeof (const void  *_buffer  /**< */);
8750 
8751 /**
8752  * @brief change graphics context components
8753  *
8754  * @param c The connection
8755  * @param gc The graphics context to change.
8756  * @param value_mask A bitmask of #xcb_gc_t values.
8757  * @param value_mask \n
8758  * @param value_list Values for each of the components specified in the bitmask \a value_mask. The
8759  * order has to correspond to the order of possible \a value_mask bits. See the
8760  * example.
8761  * @return A cookie
8762  *
8763  * Changes the components specified by \a value_mask for the specified graphics context.
8764  *
8765  * This form can be used only if the request will not cause
8766  * a reply to be generated. Any returned error will be
8767  * saved for handling by xcb_request_check().
8768  */
8769 xcb_void_cookie_t
8770 xcb_change_gc_checked (xcb_connection_t *c  /**< */,
8771                        xcb_gcontext_t    gc  /**< */,
8772                        uint32_t          value_mask  /**< */,
8773                        const uint32_t   *value_list  /**< */);
8774 
8775 /**
8776  * @brief change graphics context components
8777  *
8778  * @param c The connection
8779  * @param gc The graphics context to change.
8780  * @param value_mask A bitmask of #xcb_gc_t values.
8781  * @param value_mask \n
8782  * @param value_list Values for each of the components specified in the bitmask \a value_mask. The
8783  * order has to correspond to the order of possible \a value_mask bits. See the
8784  * example.
8785  * @return A cookie
8786  *
8787  * Changes the components specified by \a value_mask for the specified graphics context.
8788  *
8789  */
8790 xcb_void_cookie_t
8791 xcb_change_gc (xcb_connection_t *c  /**< */,
8792                xcb_gcontext_t    gc  /**< */,
8793                uint32_t          value_mask  /**< */,
8794                const uint32_t   *value_list  /**< */);
8795 
8796 /**
8797  *
8798  * @param c The connection
8799  * @return A cookie
8800  *
8801  * Delivers a request to the X server.
8802  *
8803  * This form can be used only if the request will not cause
8804  * a reply to be generated. Any returned error will be
8805  * saved for handling by xcb_request_check().
8806  */
8807 xcb_void_cookie_t
8808 xcb_copy_gc_checked (xcb_connection_t *c  /**< */,
8809                      xcb_gcontext_t    src_gc  /**< */,
8810                      xcb_gcontext_t    dst_gc  /**< */,
8811                      uint32_t          value_mask  /**< */);
8812 
8813 /**
8814  *
8815  * @param c The connection
8816  * @return A cookie
8817  *
8818  * Delivers a request to the X server.
8819  *
8820  */
8821 xcb_void_cookie_t
8822 xcb_copy_gc (xcb_connection_t *c  /**< */,
8823              xcb_gcontext_t    src_gc  /**< */,
8824              xcb_gcontext_t    dst_gc  /**< */,
8825              uint32_t          value_mask  /**< */);
8826 
8827 int
8828 xcb_set_dashes_sizeof (const void  *_buffer  /**< */);
8829 
8830 /**
8831  *
8832  * @param c The connection
8833  * @return A cookie
8834  *
8835  * Delivers a request to the X server.
8836  *
8837  * This form can be used only if the request will not cause
8838  * a reply to be generated. Any returned error will be
8839  * saved for handling by xcb_request_check().
8840  */
8841 xcb_void_cookie_t
8842 xcb_set_dashes_checked (xcb_connection_t *c  /**< */,
8843                         xcb_gcontext_t    gc  /**< */,
8844                         uint16_t          dash_offset  /**< */,
8845                         uint16_t          dashes_len  /**< */,
8846                         const uint8_t    *dashes  /**< */);
8847 
8848 /**
8849  *
8850  * @param c The connection
8851  * @return A cookie
8852  *
8853  * Delivers a request to the X server.
8854  *
8855  */
8856 xcb_void_cookie_t
8857 xcb_set_dashes (xcb_connection_t *c  /**< */,
8858                 xcb_gcontext_t    gc  /**< */,
8859                 uint16_t          dash_offset  /**< */,
8860                 uint16_t          dashes_len  /**< */,
8861                 const uint8_t    *dashes  /**< */);
8862 
8863 int
8864 xcb_set_clip_rectangles_sizeof (const void  *_buffer  /**< */,
8865                                 uint32_t     rectangles_len  /**< */);
8866 
8867 /**
8868  *
8869  * @param c The connection
8870  * @return A cookie
8871  *
8872  * Delivers a request to the X server.
8873  *
8874  * This form can be used only if the request will not cause
8875  * a reply to be generated. Any returned error will be
8876  * saved for handling by xcb_request_check().
8877  */
8878 xcb_void_cookie_t
8879 xcb_set_clip_rectangles_checked (xcb_connection_t      *c  /**< */,
8880                                  uint8_t                ordering  /**< */,
8881                                  xcb_gcontext_t         gc  /**< */,
8882                                  int16_t                clip_x_origin  /**< */,
8883                                  int16_t                clip_y_origin  /**< */,
8884                                  uint32_t               rectangles_len  /**< */,
8885                                  const xcb_rectangle_t *rectangles  /**< */);
8886 
8887 /**
8888  *
8889  * @param c The connection
8890  * @return A cookie
8891  *
8892  * Delivers a request to the X server.
8893  *
8894  */
8895 xcb_void_cookie_t
8896 xcb_set_clip_rectangles (xcb_connection_t      *c  /**< */,
8897                          uint8_t                ordering  /**< */,
8898                          xcb_gcontext_t         gc  /**< */,
8899                          int16_t                clip_x_origin  /**< */,
8900                          int16_t                clip_y_origin  /**< */,
8901                          uint32_t               rectangles_len  /**< */,
8902                          const xcb_rectangle_t *rectangles  /**< */);
8903 
8904 /**
8905  * @brief Destroys a graphics context
8906  *
8907  * @param c The connection
8908  * @param gc The graphics context to destroy.
8909  * @return A cookie
8910  *
8911  * Destroys the specified \a gc and all associated storage.
8912  *
8913  * This form can be used only if the request will not cause
8914  * a reply to be generated. Any returned error will be
8915  * saved for handling by xcb_request_check().
8916  */
8917 xcb_void_cookie_t
8918 xcb_free_gc_checked (xcb_connection_t *c  /**< */,
8919                      xcb_gcontext_t    gc  /**< */);
8920 
8921 /**
8922  * @brief Destroys a graphics context
8923  *
8924  * @param c The connection
8925  * @param gc The graphics context to destroy.
8926  * @return A cookie
8927  *
8928  * Destroys the specified \a gc and all associated storage.
8929  *
8930  */
8931 xcb_void_cookie_t
8932 xcb_free_gc (xcb_connection_t *c  /**< */,
8933              xcb_gcontext_t    gc  /**< */);
8934 
8935 /**
8936  *
8937  * @param c The connection
8938  * @return A cookie
8939  *
8940  * Delivers a request to the X server.
8941  *
8942  * This form can be used only if the request will not cause
8943  * a reply to be generated. Any returned error will be
8944  * saved for handling by xcb_request_check().
8945  */
8946 xcb_void_cookie_t
8947 xcb_clear_area_checked (xcb_connection_t *c  /**< */,
8948                         uint8_t           exposures  /**< */,
8949                         xcb_window_t      window  /**< */,
8950                         int16_t           x  /**< */,
8951                         int16_t           y  /**< */,
8952                         uint16_t          width  /**< */,
8953                         uint16_t          height  /**< */);
8954 
8955 /**
8956  *
8957  * @param c The connection
8958  * @return A cookie
8959  *
8960  * Delivers a request to the X server.
8961  *
8962  */
8963 xcb_void_cookie_t
8964 xcb_clear_area (xcb_connection_t *c  /**< */,
8965                 uint8_t           exposures  /**< */,
8966                 xcb_window_t      window  /**< */,
8967                 int16_t           x  /**< */,
8968                 int16_t           y  /**< */,
8969                 uint16_t          width  /**< */,
8970                 uint16_t          height  /**< */);
8971 
8972 /**
8973  * @brief copy areas
8974  *
8975  * @param c The connection
8976  * @param src_drawable The source drawable (Window or Pixmap).
8977  * @param dst_drawable The destination drawable (Window or Pixmap).
8978  * @param gc The graphics context to use.
8979  * @param src_x The source X coordinate.
8980  * @param src_y The source Y coordinate.
8981  * @param dst_x The destination X coordinate.
8982  * @param dst_y The destination Y coordinate.
8983  * @param width The width of the area to copy (in pixels).
8984  * @param height The height of the area to copy (in pixels).
8985  * @return A cookie
8986  *
8987  * Copies the specified rectangle from \a src_drawable to \a dst_drawable.
8988  *
8989  * This form can be used only if the request will not cause
8990  * a reply to be generated. Any returned error will be
8991  * saved for handling by xcb_request_check().
8992  */
8993 xcb_void_cookie_t
8994 xcb_copy_area_checked (xcb_connection_t *c  /**< */,
8995                        xcb_drawable_t    src_drawable  /**< */,
8996                        xcb_drawable_t    dst_drawable  /**< */,
8997                        xcb_gcontext_t    gc  /**< */,
8998                        int16_t           src_x  /**< */,
8999                        int16_t           src_y  /**< */,
9000                        int16_t           dst_x  /**< */,
9001                        int16_t           dst_y  /**< */,
9002                        uint16_t          width  /**< */,
9003                        uint16_t          height  /**< */);
9004 
9005 /**
9006  * @brief copy areas
9007  *
9008  * @param c The connection
9009  * @param src_drawable The source drawable (Window or Pixmap).
9010  * @param dst_drawable The destination drawable (Window or Pixmap).
9011  * @param gc The graphics context to use.
9012  * @param src_x The source X coordinate.
9013  * @param src_y The source Y coordinate.
9014  * @param dst_x The destination X coordinate.
9015  * @param dst_y The destination Y coordinate.
9016  * @param width The width of the area to copy (in pixels).
9017  * @param height The height of the area to copy (in pixels).
9018  * @return A cookie
9019  *
9020  * Copies the specified rectangle from \a src_drawable to \a dst_drawable.
9021  *
9022  */
9023 xcb_void_cookie_t
9024 xcb_copy_area (xcb_connection_t *c  /**< */,
9025                xcb_drawable_t    src_drawable  /**< */,
9026                xcb_drawable_t    dst_drawable  /**< */,
9027                xcb_gcontext_t    gc  /**< */,
9028                int16_t           src_x  /**< */,
9029                int16_t           src_y  /**< */,
9030                int16_t           dst_x  /**< */,
9031                int16_t           dst_y  /**< */,
9032                uint16_t          width  /**< */,
9033                uint16_t          height  /**< */);
9034 
9035 /**
9036  *
9037  * @param c The connection
9038  * @return A cookie
9039  *
9040  * Delivers a request to the X server.
9041  *
9042  * This form can be used only if the request will not cause
9043  * a reply to be generated. Any returned error will be
9044  * saved for handling by xcb_request_check().
9045  */
9046 xcb_void_cookie_t
9047 xcb_copy_plane_checked (xcb_connection_t *c  /**< */,
9048                         xcb_drawable_t    src_drawable  /**< */,
9049                         xcb_drawable_t    dst_drawable  /**< */,
9050                         xcb_gcontext_t    gc  /**< */,
9051                         int16_t           src_x  /**< */,
9052                         int16_t           src_y  /**< */,
9053                         int16_t           dst_x  /**< */,
9054                         int16_t           dst_y  /**< */,
9055                         uint16_t          width  /**< */,
9056                         uint16_t          height  /**< */,
9057                         uint32_t          bit_plane  /**< */);
9058 
9059 /**
9060  *
9061  * @param c The connection
9062  * @return A cookie
9063  *
9064  * Delivers a request to the X server.
9065  *
9066  */
9067 xcb_void_cookie_t
9068 xcb_copy_plane (xcb_connection_t *c  /**< */,
9069                 xcb_drawable_t    src_drawable  /**< */,
9070                 xcb_drawable_t    dst_drawable  /**< */,
9071                 xcb_gcontext_t    gc  /**< */,
9072                 int16_t           src_x  /**< */,
9073                 int16_t           src_y  /**< */,
9074                 int16_t           dst_x  /**< */,
9075                 int16_t           dst_y  /**< */,
9076                 uint16_t          width  /**< */,
9077                 uint16_t          height  /**< */,
9078                 uint32_t          bit_plane  /**< */);
9079 
9080 int
9081 xcb_poly_point_sizeof (const void  *_buffer  /**< */,
9082                        uint32_t     points_len  /**< */);
9083 
9084 /**
9085  *
9086  * @param c The connection
9087  * @return A cookie
9088  *
9089  * Delivers a request to the X server.
9090  *
9091  * This form can be used only if the request will not cause
9092  * a reply to be generated. Any returned error will be
9093  * saved for handling by xcb_request_check().
9094  */
9095 xcb_void_cookie_t
9096 xcb_poly_point_checked (xcb_connection_t  *c  /**< */,
9097                         uint8_t            coordinate_mode  /**< */,
9098                         xcb_drawable_t     drawable  /**< */,
9099                         xcb_gcontext_t     gc  /**< */,
9100                         uint32_t           points_len  /**< */,
9101                         const xcb_point_t *points  /**< */);
9102 
9103 /**
9104  *
9105  * @param c The connection
9106  * @return A cookie
9107  *
9108  * Delivers a request to the X server.
9109  *
9110  */
9111 xcb_void_cookie_t
9112 xcb_poly_point (xcb_connection_t  *c  /**< */,
9113                 uint8_t            coordinate_mode  /**< */,
9114                 xcb_drawable_t     drawable  /**< */,
9115                 xcb_gcontext_t     gc  /**< */,
9116                 uint32_t           points_len  /**< */,
9117                 const xcb_point_t *points  /**< */);
9118 
9119 int
9120 xcb_poly_line_sizeof (const void  *_buffer  /**< */,
9121                       uint32_t     points_len  /**< */);
9122 
9123 /**
9124  * @brief draw lines
9125  *
9126  * @param c The connection
9127  * @param coordinate_mode A bitmask of #xcb_coord_mode_t values.
9128  * @param coordinate_mode \n
9129  * @param drawable The drawable to draw the line(s) on.
9130  * @param gc The graphics context to use.
9131  * @param points_len The number of `xcb_point_t` structures in \a points.
9132  * @param points An array of points.
9133  * @return A cookie
9134  *
9135  * Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])
9136  * in the \a points array. The lines are drawn in the order listed in the array.
9137  * They join correctly at all intermediate points, and if the first and last
9138  * points coincide, the first and last lines also join correctly. For any given
9139  * line, a pixel is not drawn more than once. If thin (zero line-width) lines
9140  * intersect, the intersecting pixels are drawn multiple times. If wide lines
9141  * intersect, the intersecting pixels are drawn only once, as though the entire
9142  * request were a single, filled shape.
9143  *
9144  * This form can be used only if the request will not cause
9145  * a reply to be generated. Any returned error will be
9146  * saved for handling by xcb_request_check().
9147  */
9148 xcb_void_cookie_t
9149 xcb_poly_line_checked (xcb_connection_t  *c  /**< */,
9150                        uint8_t            coordinate_mode  /**< */,
9151                        xcb_drawable_t     drawable  /**< */,
9152                        xcb_gcontext_t     gc  /**< */,
9153                        uint32_t           points_len  /**< */,
9154                        const xcb_point_t *points  /**< */);
9155 
9156 /**
9157  * @brief draw lines
9158  *
9159  * @param c The connection
9160  * @param coordinate_mode A bitmask of #xcb_coord_mode_t values.
9161  * @param coordinate_mode \n
9162  * @param drawable The drawable to draw the line(s) on.
9163  * @param gc The graphics context to use.
9164  * @param points_len The number of `xcb_point_t` structures in \a points.
9165  * @param points An array of points.
9166  * @return A cookie
9167  *
9168  * Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])
9169  * in the \a points array. The lines are drawn in the order listed in the array.
9170  * They join correctly at all intermediate points, and if the first and last
9171  * points coincide, the first and last lines also join correctly. For any given
9172  * line, a pixel is not drawn more than once. If thin (zero line-width) lines
9173  * intersect, the intersecting pixels are drawn multiple times. If wide lines
9174  * intersect, the intersecting pixels are drawn only once, as though the entire
9175  * request were a single, filled shape.
9176  *
9177  */
9178 xcb_void_cookie_t
9179 xcb_poly_line (xcb_connection_t  *c  /**< */,
9180                uint8_t            coordinate_mode  /**< */,
9181                xcb_drawable_t     drawable  /**< */,
9182                xcb_gcontext_t     gc  /**< */,
9183                uint32_t           points_len  /**< */,
9184                const xcb_point_t *points  /**< */);
9185 
9186 /**
9187  * Get the next element of the iterator
9188  * @param i Pointer to a xcb_segment_iterator_t
9189  *
9190  * Get the next element in the iterator. The member rem is
9191  * decreased by one. The member data points to the next
9192  * element. The member index is increased by sizeof(xcb_segment_t)
9193  */
9194 void
9195 xcb_segment_next (xcb_segment_iterator_t *i  /**< */);
9196 
9197 /**
9198  * Return the iterator pointing to the last element
9199  * @param i An xcb_segment_iterator_t
9200  * @return  The iterator pointing to the last element
9201  *
9202  * Set the current element in the iterator to the last element.
9203  * The member rem is set to 0. The member data points to the
9204  * last element.
9205  */
9206 xcb_generic_iterator_t
9207 xcb_segment_end (xcb_segment_iterator_t i  /**< */);
9208 
9209 int
9210 xcb_poly_segment_sizeof (const void  *_buffer  /**< */,
9211                          uint32_t     segments_len  /**< */);
9212 
9213 /**
9214  * @brief draw lines
9215  *
9216  * @param c The connection
9217  * @param drawable A drawable (Window or Pixmap) to draw on.
9218  * @param gc The graphics context to use.
9219  * \n
9220  * TODO: document which attributes of a gc are used
9221  * @param segments_len The number of `xcb_segment_t` structures in \a segments.
9222  * @param segments An array of `xcb_segment_t` structures.
9223  * @return A cookie
9224  *
9225  * Draws multiple, unconnected lines. For each segment, a line is drawn between
9226  * (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of
9227  * `xcb_segment_t` structures and does not perform joining at coincident
9228  * endpoints. For any given line, a pixel is not drawn more than once. If lines
9229  * intersect, the intersecting pixels are drawn multiple times.
9230  *
9231  * TODO: include the xcb_segment_t data structure
9232  *
9233  * TODO: an example
9234  *
9235  * This form can be used only if the request will not cause
9236  * a reply to be generated. Any returned error will be
9237  * saved for handling by xcb_request_check().
9238  */
9239 xcb_void_cookie_t
9240 xcb_poly_segment_checked (xcb_connection_t    *c  /**< */,
9241                           xcb_drawable_t       drawable  /**< */,
9242                           xcb_gcontext_t       gc  /**< */,
9243                           uint32_t             segments_len  /**< */,
9244                           const xcb_segment_t *segments  /**< */);
9245 
9246 /**
9247  * @brief draw lines
9248  *
9249  * @param c The connection
9250  * @param drawable A drawable (Window or Pixmap) to draw on.
9251  * @param gc The graphics context to use.
9252  * \n
9253  * TODO: document which attributes of a gc are used
9254  * @param segments_len The number of `xcb_segment_t` structures in \a segments.
9255  * @param segments An array of `xcb_segment_t` structures.
9256  * @return A cookie
9257  *
9258  * Draws multiple, unconnected lines. For each segment, a line is drawn between
9259  * (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of
9260  * `xcb_segment_t` structures and does not perform joining at coincident
9261  * endpoints. For any given line, a pixel is not drawn more than once. If lines
9262  * intersect, the intersecting pixels are drawn multiple times.
9263  *
9264  * TODO: include the xcb_segment_t data structure
9265  *
9266  * TODO: an example
9267  *
9268  */
9269 xcb_void_cookie_t
9270 xcb_poly_segment (xcb_connection_t    *c  /**< */,
9271                   xcb_drawable_t       drawable  /**< */,
9272                   xcb_gcontext_t       gc  /**< */,
9273                   uint32_t             segments_len  /**< */,
9274                   const xcb_segment_t *segments  /**< */);
9275 
9276 int
9277 xcb_poly_rectangle_sizeof (const void  *_buffer  /**< */,
9278                            uint32_t     rectangles_len  /**< */);
9279 
9280 /**
9281  *
9282  * @param c The connection
9283  * @return A cookie
9284  *
9285  * Delivers a request to the X server.
9286  *
9287  * This form can be used only if the request will not cause
9288  * a reply to be generated. Any returned error will be
9289  * saved for handling by xcb_request_check().
9290  */
9291 xcb_void_cookie_t
9292 xcb_poly_rectangle_checked (xcb_connection_t      *c  /**< */,
9293                             xcb_drawable_t         drawable  /**< */,
9294                             xcb_gcontext_t         gc  /**< */,
9295                             uint32_t               rectangles_len  /**< */,
9296                             const xcb_rectangle_t *rectangles  /**< */);
9297 
9298 /**
9299  *
9300  * @param c The connection
9301  * @return A cookie
9302  *
9303  * Delivers a request to the X server.
9304  *
9305  */
9306 xcb_void_cookie_t
9307 xcb_poly_rectangle (xcb_connection_t      *c  /**< */,
9308                     xcb_drawable_t         drawable  /**< */,
9309                     xcb_gcontext_t         gc  /**< */,
9310                     uint32_t               rectangles_len  /**< */,
9311                     const xcb_rectangle_t *rectangles  /**< */);
9312 
9313 int
9314 xcb_poly_arc_sizeof (const void  *_buffer  /**< */,
9315                      uint32_t     arcs_len  /**< */);
9316 
9317 /**
9318  *
9319  * @param c The connection
9320  * @return A cookie
9321  *
9322  * Delivers a request to the X server.
9323  *
9324  * This form can be used only if the request will not cause
9325  * a reply to be generated. Any returned error will be
9326  * saved for handling by xcb_request_check().
9327  */
9328 xcb_void_cookie_t
9329 xcb_poly_arc_checked (xcb_connection_t *c  /**< */,
9330                       xcb_drawable_t    drawable  /**< */,
9331                       xcb_gcontext_t    gc  /**< */,
9332                       uint32_t          arcs_len  /**< */,
9333                       const xcb_arc_t  *arcs  /**< */);
9334 
9335 /**
9336  *
9337  * @param c The connection
9338  * @return A cookie
9339  *
9340  * Delivers a request to the X server.
9341  *
9342  */
9343 xcb_void_cookie_t
9344 xcb_poly_arc (xcb_connection_t *c  /**< */,
9345               xcb_drawable_t    drawable  /**< */,
9346               xcb_gcontext_t    gc  /**< */,
9347               uint32_t          arcs_len  /**< */,
9348               const xcb_arc_t  *arcs  /**< */);
9349 
9350 int
9351 xcb_fill_poly_sizeof (const void  *_buffer  /**< */,
9352                       uint32_t     points_len  /**< */);
9353 
9354 /**
9355  *
9356  * @param c The connection
9357  * @return A cookie
9358  *
9359  * Delivers a request to the X server.
9360  *
9361  * This form can be used only if the request will not cause
9362  * a reply to be generated. Any returned error will be
9363  * saved for handling by xcb_request_check().
9364  */
9365 xcb_void_cookie_t
9366 xcb_fill_poly_checked (xcb_connection_t  *c  /**< */,
9367                        xcb_drawable_t     drawable  /**< */,
9368                        xcb_gcontext_t     gc  /**< */,
9369                        uint8_t            shape  /**< */,
9370                        uint8_t            coordinate_mode  /**< */,
9371                        uint32_t           points_len  /**< */,
9372                        const xcb_point_t *points  /**< */);
9373 
9374 /**
9375  *
9376  * @param c The connection
9377  * @return A cookie
9378  *
9379  * Delivers a request to the X server.
9380  *
9381  */
9382 xcb_void_cookie_t
9383 xcb_fill_poly (xcb_connection_t  *c  /**< */,
9384                xcb_drawable_t     drawable  /**< */,
9385                xcb_gcontext_t     gc  /**< */,
9386                uint8_t            shape  /**< */,
9387                uint8_t            coordinate_mode  /**< */,
9388                uint32_t           points_len  /**< */,
9389                const xcb_point_t *points  /**< */);
9390 
9391 int
9392 xcb_poly_fill_rectangle_sizeof (const void  *_buffer  /**< */,
9393                                 uint32_t     rectangles_len  /**< */);
9394 
9395 /**
9396  * @brief Fills rectangles
9397  *
9398  * @param c The connection
9399  * @param drawable The drawable (Window or Pixmap) to draw on.
9400  * @param gc The graphics context to use.
9401  * \n
9402  * The following graphics context components are used: function, plane-mask,
9403  * fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
9404  * \n
9405  * The following graphics context mode-dependent components are used:
9406  * foreground, background, tile, stipple, tile-stipple-x-origin, and
9407  * tile-stipple-y-origin.
9408  * @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.
9409  * @param rectangles The rectangles to fill.
9410  * @return A cookie
9411  *
9412  * Fills the specified rectangle(s) in the order listed in the array. For any
9413  * given rectangle, each pixel is not drawn more than once. If rectangles
9414  * intersect, the intersecting pixels are drawn multiple times.
9415  *
9416  * This form can be used only if the request will not cause
9417  * a reply to be generated. Any returned error will be
9418  * saved for handling by xcb_request_check().
9419  */
9420 xcb_void_cookie_t
9421 xcb_poly_fill_rectangle_checked (xcb_connection_t      *c  /**< */,
9422                                  xcb_drawable_t         drawable  /**< */,
9423                                  xcb_gcontext_t         gc  /**< */,
9424                                  uint32_t               rectangles_len  /**< */,
9425                                  const xcb_rectangle_t *rectangles  /**< */);
9426 
9427 /**
9428  * @brief Fills rectangles
9429  *
9430  * @param c The connection
9431  * @param drawable The drawable (Window or Pixmap) to draw on.
9432  * @param gc The graphics context to use.
9433  * \n
9434  * The following graphics context components are used: function, plane-mask,
9435  * fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
9436  * \n
9437  * The following graphics context mode-dependent components are used:
9438  * foreground, background, tile, stipple, tile-stipple-x-origin, and
9439  * tile-stipple-y-origin.
9440  * @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.
9441  * @param rectangles The rectangles to fill.
9442  * @return A cookie
9443  *
9444  * Fills the specified rectangle(s) in the order listed in the array. For any
9445  * given rectangle, each pixel is not drawn more than once. If rectangles
9446  * intersect, the intersecting pixels are drawn multiple times.
9447  *
9448  */
9449 xcb_void_cookie_t
9450 xcb_poly_fill_rectangle (xcb_connection_t      *c  /**< */,
9451                          xcb_drawable_t         drawable  /**< */,
9452                          xcb_gcontext_t         gc  /**< */,
9453                          uint32_t               rectangles_len  /**< */,
9454                          const xcb_rectangle_t *rectangles  /**< */);
9455 
9456 int
9457 xcb_poly_fill_arc_sizeof (const void  *_buffer  /**< */,
9458                           uint32_t     arcs_len  /**< */);
9459 
9460 /**
9461  *
9462  * @param c The connection
9463  * @return A cookie
9464  *
9465  * Delivers a request to the X server.
9466  *
9467  * This form can be used only if the request will not cause
9468  * a reply to be generated. Any returned error will be
9469  * saved for handling by xcb_request_check().
9470  */
9471 xcb_void_cookie_t
9472 xcb_poly_fill_arc_checked (xcb_connection_t *c  /**< */,
9473                            xcb_drawable_t    drawable  /**< */,
9474                            xcb_gcontext_t    gc  /**< */,
9475                            uint32_t          arcs_len  /**< */,
9476                            const xcb_arc_t  *arcs  /**< */);
9477 
9478 /**
9479  *
9480  * @param c The connection
9481  * @return A cookie
9482  *
9483  * Delivers a request to the X server.
9484  *
9485  */
9486 xcb_void_cookie_t
9487 xcb_poly_fill_arc (xcb_connection_t *c  /**< */,
9488                    xcb_drawable_t    drawable  /**< */,
9489                    xcb_gcontext_t    gc  /**< */,
9490                    uint32_t          arcs_len  /**< */,
9491                    const xcb_arc_t  *arcs  /**< */);
9492 
9493 int
9494 xcb_put_image_sizeof (const void  *_buffer  /**< */,
9495                       uint32_t     data_len  /**< */);
9496 
9497 /**
9498  *
9499  * @param c The connection
9500  * @return A cookie
9501  *
9502  * Delivers a request to the X server.
9503  *
9504  * This form can be used only if the request will not cause
9505  * a reply to be generated. Any returned error will be
9506  * saved for handling by xcb_request_check().
9507  */
9508 xcb_void_cookie_t
9509 xcb_put_image_checked (xcb_connection_t *c  /**< */,
9510                        uint8_t           format  /**< */,
9511                        xcb_drawable_t    drawable  /**< */,
9512                        xcb_gcontext_t    gc  /**< */,
9513                        uint16_t          width  /**< */,
9514                        uint16_t          height  /**< */,
9515                        int16_t           dst_x  /**< */,
9516                        int16_t           dst_y  /**< */,
9517                        uint8_t           left_pad  /**< */,
9518                        uint8_t           depth  /**< */,
9519                        uint32_t          data_len  /**< */,
9520                        const uint8_t    *data  /**< */);
9521 
9522 /**
9523  *
9524  * @param c The connection
9525  * @return A cookie
9526  *
9527  * Delivers a request to the X server.
9528  *
9529  */
9530 xcb_void_cookie_t
9531 xcb_put_image (xcb_connection_t *c  /**< */,
9532                uint8_t           format  /**< */,
9533                xcb_drawable_t    drawable  /**< */,
9534                xcb_gcontext_t    gc  /**< */,
9535                uint16_t          width  /**< */,
9536                uint16_t          height  /**< */,
9537                int16_t           dst_x  /**< */,
9538                int16_t           dst_y  /**< */,
9539                uint8_t           left_pad  /**< */,
9540                uint8_t           depth  /**< */,
9541                uint32_t          data_len  /**< */,
9542                const uint8_t    *data  /**< */);
9543 
9544 int
9545 xcb_get_image_sizeof (const void  *_buffer  /**< */);
9546 
9547 /**
9548  *
9549  * @param c The connection
9550  * @return A cookie
9551  *
9552  * Delivers a request to the X server.
9553  *
9554  */
9555 xcb_get_image_cookie_t
9556 xcb_get_image (xcb_connection_t *c  /**< */,
9557                uint8_t           format  /**< */,
9558                xcb_drawable_t    drawable  /**< */,
9559                int16_t           x  /**< */,
9560                int16_t           y  /**< */,
9561                uint16_t          width  /**< */,
9562                uint16_t          height  /**< */,
9563                uint32_t          plane_mask  /**< */);
9564 
9565 /**
9566  *
9567  * @param c The connection
9568  * @return A cookie
9569  *
9570  * Delivers a request to the X server.
9571  *
9572  * This form can be used only if the request will cause
9573  * a reply to be generated. Any returned error will be
9574  * placed in the event queue.
9575  */
9576 xcb_get_image_cookie_t
9577 xcb_get_image_unchecked (xcb_connection_t *c  /**< */,
9578                          uint8_t           format  /**< */,
9579                          xcb_drawable_t    drawable  /**< */,
9580                          int16_t           x  /**< */,
9581                          int16_t           y  /**< */,
9582                          uint16_t          width  /**< */,
9583                          uint16_t          height  /**< */,
9584                          uint32_t          plane_mask  /**< */);
9585 
9586 uint8_t *
9587 xcb_get_image_data (const xcb_get_image_reply_t *R  /**< */);
9588 
9589 int
9590 xcb_get_image_data_length (const xcb_get_image_reply_t *R  /**< */);
9591 
9592 xcb_generic_iterator_t
9593 xcb_get_image_data_end (const xcb_get_image_reply_t *R  /**< */);
9594 
9595 /**
9596  * Return the reply
9597  * @param c      The connection
9598  * @param cookie The cookie
9599  * @param e      The xcb_generic_error_t supplied
9600  *
9601  * Returns the reply of the request asked by
9602  *
9603  * The parameter @p e supplied to this function must be NULL if
9604  * xcb_get_image_unchecked(). is used.
9605  * Otherwise, it stores the error if any.
9606  *
9607  * The returned value must be freed by the caller using free().
9608  */
9609 xcb_get_image_reply_t *
9610 xcb_get_image_reply (xcb_connection_t        *c  /**< */,
9611                      xcb_get_image_cookie_t   cookie  /**< */,
9612                      xcb_generic_error_t    **e  /**< */);
9613 
9614 int
9615 xcb_poly_text_8_sizeof (const void  *_buffer  /**< */,
9616                         uint32_t     items_len  /**< */);
9617 
9618 /**
9619  *
9620  * @param c The connection
9621  * @return A cookie
9622  *
9623  * Delivers a request to the X server.
9624  *
9625  * This form can be used only if the request will not cause
9626  * a reply to be generated. Any returned error will be
9627  * saved for handling by xcb_request_check().
9628  */
9629 xcb_void_cookie_t
9630 xcb_poly_text_8_checked (xcb_connection_t *c  /**< */,
9631                          xcb_drawable_t    drawable  /**< */,
9632                          xcb_gcontext_t    gc  /**< */,
9633                          int16_t           x  /**< */,
9634                          int16_t           y  /**< */,
9635                          uint32_t          items_len  /**< */,
9636                          const uint8_t    *items  /**< */);
9637 
9638 /**
9639  *
9640  * @param c The connection
9641  * @return A cookie
9642  *
9643  * Delivers a request to the X server.
9644  *
9645  */
9646 xcb_void_cookie_t
9647 xcb_poly_text_8 (xcb_connection_t *c  /**< */,
9648                  xcb_drawable_t    drawable  /**< */,
9649                  xcb_gcontext_t    gc  /**< */,
9650                  int16_t           x  /**< */,
9651                  int16_t           y  /**< */,
9652                  uint32_t          items_len  /**< */,
9653                  const uint8_t    *items  /**< */);
9654 
9655 int
9656 xcb_poly_text_16_sizeof (const void  *_buffer  /**< */,
9657                          uint32_t     items_len  /**< */);
9658 
9659 /**
9660  *
9661  * @param c The connection
9662  * @return A cookie
9663  *
9664  * Delivers a request to the X server.
9665  *
9666  * This form can be used only if the request will not cause
9667  * a reply to be generated. Any returned error will be
9668  * saved for handling by xcb_request_check().
9669  */
9670 xcb_void_cookie_t
9671 xcb_poly_text_16_checked (xcb_connection_t *c  /**< */,
9672                           xcb_drawable_t    drawable  /**< */,
9673                           xcb_gcontext_t    gc  /**< */,
9674                           int16_t           x  /**< */,
9675                           int16_t           y  /**< */,
9676                           uint32_t          items_len  /**< */,
9677                           const uint8_t    *items  /**< */);
9678 
9679 /**
9680  *
9681  * @param c The connection
9682  * @return A cookie
9683  *
9684  * Delivers a request to the X server.
9685  *
9686  */
9687 xcb_void_cookie_t
9688 xcb_poly_text_16 (xcb_connection_t *c  /**< */,
9689                   xcb_drawable_t    drawable  /**< */,
9690                   xcb_gcontext_t    gc  /**< */,
9691                   int16_t           x  /**< */,
9692                   int16_t           y  /**< */,
9693                   uint32_t          items_len  /**< */,
9694                   const uint8_t    *items  /**< */);
9695 
9696 int
9697 xcb_image_text_8_sizeof (const void  *_buffer  /**< */);
9698 
9699 /**
9700  * @brief Draws text
9701  *
9702  * @param c The connection
9703  * @param string_len The length of the \a string. Note that this parameter limited by 255 due to
9704  * using 8 bits!
9705  * @param drawable The drawable (Window or Pixmap) to draw text on.
9706  * @param gc The graphics context to use.
9707  * \n
9708  * The following graphics context components are used: plane-mask, foreground,
9709  * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
9710  * @param x The x coordinate of the first character, relative to the origin of \a drawable.
9711  * @param y The y coordinate of the first character, relative to the origin of \a drawable.
9712  * @param string The string to draw. Only the first 255 characters are relevant due to the data
9713  * type of \a string_len.
9714  * @return A cookie
9715  *
9716  * Fills the destination rectangle with the background pixel from \a gc, then
9717  * paints the text with the foreground pixel from \a gc. The upper-left corner of
9718  * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
9719  * the height is font-ascent + font-descent. The overall-width, font-ascent and
9720  * font-descent are as returned by `xcb_query_text_extents` (TODO).
9721  *
9722  * Note that using X core fonts is deprecated (but still supported) in favor of
9723  * client-side rendering using Xft.
9724  *
9725  * This form can be used only if the request will not cause
9726  * a reply to be generated. Any returned error will be
9727  * saved for handling by xcb_request_check().
9728  */
9729 xcb_void_cookie_t
9730 xcb_image_text_8_checked (xcb_connection_t *c  /**< */,
9731                           uint8_t           string_len  /**< */,
9732                           xcb_drawable_t    drawable  /**< */,
9733                           xcb_gcontext_t    gc  /**< */,
9734                           int16_t           x  /**< */,
9735                           int16_t           y  /**< */,
9736                           const char       *string  /**< */);
9737 
9738 /**
9739  * @brief Draws text
9740  *
9741  * @param c The connection
9742  * @param string_len The length of the \a string. Note that this parameter limited by 255 due to
9743  * using 8 bits!
9744  * @param drawable The drawable (Window or Pixmap) to draw text on.
9745  * @param gc The graphics context to use.
9746  * \n
9747  * The following graphics context components are used: plane-mask, foreground,
9748  * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
9749  * @param x The x coordinate of the first character, relative to the origin of \a drawable.
9750  * @param y The y coordinate of the first character, relative to the origin of \a drawable.
9751  * @param string The string to draw. Only the first 255 characters are relevant due to the data
9752  * type of \a string_len.
9753  * @return A cookie
9754  *
9755  * Fills the destination rectangle with the background pixel from \a gc, then
9756  * paints the text with the foreground pixel from \a gc. The upper-left corner of
9757  * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
9758  * the height is font-ascent + font-descent. The overall-width, font-ascent and
9759  * font-descent are as returned by `xcb_query_text_extents` (TODO).
9760  *
9761  * Note that using X core fonts is deprecated (but still supported) in favor of
9762  * client-side rendering using Xft.
9763  *
9764  */
9765 xcb_void_cookie_t
9766 xcb_image_text_8 (xcb_connection_t *c  /**< */,
9767                   uint8_t           string_len  /**< */,
9768                   xcb_drawable_t    drawable  /**< */,
9769                   xcb_gcontext_t    gc  /**< */,
9770                   int16_t           x  /**< */,
9771                   int16_t           y  /**< */,
9772                   const char       *string  /**< */);
9773 
9774 int
9775 xcb_image_text_16_sizeof (const void  *_buffer  /**< */);
9776 
9777 /**
9778  * @brief Draws text
9779  *
9780  * @param c The connection
9781  * @param string_len The length of the \a string in characters. Note that this parameter limited by
9782  * 255 due to using 8 bits!
9783  * @param drawable The drawable (Window or Pixmap) to draw text on.
9784  * @param gc The graphics context to use.
9785  * \n
9786  * The following graphics context components are used: plane-mask, foreground,
9787  * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
9788  * @param x The x coordinate of the first character, relative to the origin of \a drawable.
9789  * @param y The y coordinate of the first character, relative to the origin of \a drawable.
9790  * @param string The string to draw. Only the first 255 characters are relevant due to the data
9791  * type of \a string_len. Every character uses 2 bytes (hence the 16 in this
9792  * request's name).
9793  * @return A cookie
9794  *
9795  * Fills the destination rectangle with the background pixel from \a gc, then
9796  * paints the text with the foreground pixel from \a gc. The upper-left corner of
9797  * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
9798  * the height is font-ascent + font-descent. The overall-width, font-ascent and
9799  * font-descent are as returned by `xcb_query_text_extents` (TODO).
9800  *
9801  * Note that using X core fonts is deprecated (but still supported) in favor of
9802  * client-side rendering using Xft.
9803  *
9804  * This form can be used only if the request will not cause
9805  * a reply to be generated. Any returned error will be
9806  * saved for handling by xcb_request_check().
9807  */
9808 xcb_void_cookie_t
9809 xcb_image_text_16_checked (xcb_connection_t   *c  /**< */,
9810                            uint8_t             string_len  /**< */,
9811                            xcb_drawable_t      drawable  /**< */,
9812                            xcb_gcontext_t      gc  /**< */,
9813                            int16_t             x  /**< */,
9814                            int16_t             y  /**< */,
9815                            const xcb_char2b_t *string  /**< */);
9816 
9817 /**
9818  * @brief Draws text
9819  *
9820  * @param c The connection
9821  * @param string_len The length of the \a string in characters. Note that this parameter limited by
9822  * 255 due to using 8 bits!
9823  * @param drawable The drawable (Window or Pixmap) to draw text on.
9824  * @param gc The graphics context to use.
9825  * \n
9826  * The following graphics context components are used: plane-mask, foreground,
9827  * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
9828  * @param x The x coordinate of the first character, relative to the origin of \a drawable.
9829  * @param y The y coordinate of the first character, relative to the origin of \a drawable.
9830  * @param string The string to draw. Only the first 255 characters are relevant due to the data
9831  * type of \a string_len. Every character uses 2 bytes (hence the 16 in this
9832  * request's name).
9833  * @return A cookie
9834  *
9835  * Fills the destination rectangle with the background pixel from \a gc, then
9836  * paints the text with the foreground pixel from \a gc. The upper-left corner of
9837  * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
9838  * the height is font-ascent + font-descent. The overall-width, font-ascent and
9839  * font-descent are as returned by `xcb_query_text_extents` (TODO).
9840  *
9841  * Note that using X core fonts is deprecated (but still supported) in favor of
9842  * client-side rendering using Xft.
9843  *
9844  */
9845 xcb_void_cookie_t
9846 xcb_image_text_16 (xcb_connection_t   *c  /**< */,
9847                    uint8_t             string_len  /**< */,
9848                    xcb_drawable_t      drawable  /**< */,
9849                    xcb_gcontext_t      gc  /**< */,
9850                    int16_t             x  /**< */,
9851                    int16_t             y  /**< */,
9852                    const xcb_char2b_t *string  /**< */);
9853 
9854 /**
9855  *
9856  * @param c The connection
9857  * @return A cookie
9858  *
9859  * Delivers a request to the X server.
9860  *
9861  * This form can be used only if the request will not cause
9862  * a reply to be generated. Any returned error will be
9863  * saved for handling by xcb_request_check().
9864  */
9865 xcb_void_cookie_t
9866 xcb_create_colormap_checked (xcb_connection_t *c  /**< */,
9867                              uint8_t           alloc  /**< */,
9868                              xcb_colormap_t    mid  /**< */,
9869                              xcb_window_t      window  /**< */,
9870                              xcb_visualid_t    visual  /**< */);
9871 
9872 /**
9873  *
9874  * @param c The connection
9875  * @return A cookie
9876  *
9877  * Delivers a request to the X server.
9878  *
9879  */
9880 xcb_void_cookie_t
9881 xcb_create_colormap (xcb_connection_t *c  /**< */,
9882                      uint8_t           alloc  /**< */,
9883                      xcb_colormap_t    mid  /**< */,
9884                      xcb_window_t      window  /**< */,
9885                      xcb_visualid_t    visual  /**< */);
9886 
9887 /**
9888  *
9889  * @param c The connection
9890  * @return A cookie
9891  *
9892  * Delivers a request to the X server.
9893  *
9894  * This form can be used only if the request will not cause
9895  * a reply to be generated. Any returned error will be
9896  * saved for handling by xcb_request_check().
9897  */
9898 xcb_void_cookie_t
9899 xcb_free_colormap_checked (xcb_connection_t *c  /**< */,
9900                            xcb_colormap_t    cmap  /**< */);
9901 
9902 /**
9903  *
9904  * @param c The connection
9905  * @return A cookie
9906  *
9907  * Delivers a request to the X server.
9908  *
9909  */
9910 xcb_void_cookie_t
9911 xcb_free_colormap (xcb_connection_t *c  /**< */,
9912                    xcb_colormap_t    cmap  /**< */);
9913 
9914 /**
9915  *
9916  * @param c The connection
9917  * @return A cookie
9918  *
9919  * Delivers a request to the X server.
9920  *
9921  * This form can be used only if the request will not cause
9922  * a reply to be generated. Any returned error will be
9923  * saved for handling by xcb_request_check().
9924  */
9925 xcb_void_cookie_t
9926 xcb_copy_colormap_and_free_checked (xcb_connection_t *c  /**< */,
9927                                     xcb_colormap_t    mid  /**< */,
9928                                     xcb_colormap_t    src_cmap  /**< */);
9929 
9930 /**
9931  *
9932  * @param c The connection
9933  * @return A cookie
9934  *
9935  * Delivers a request to the X server.
9936  *
9937  */
9938 xcb_void_cookie_t
9939 xcb_copy_colormap_and_free (xcb_connection_t *c  /**< */,
9940                             xcb_colormap_t    mid  /**< */,
9941                             xcb_colormap_t    src_cmap  /**< */);
9942 
9943 /**
9944  *
9945  * @param c The connection
9946  * @return A cookie
9947  *
9948  * Delivers a request to the X server.
9949  *
9950  * This form can be used only if the request will not cause
9951  * a reply to be generated. Any returned error will be
9952  * saved for handling by xcb_request_check().
9953  */
9954 xcb_void_cookie_t
9955 xcb_install_colormap_checked (xcb_connection_t *c  /**< */,
9956                               xcb_colormap_t    cmap  /**< */);
9957 
9958 /**
9959  *
9960  * @param c The connection
9961  * @return A cookie
9962  *
9963  * Delivers a request to the X server.
9964  *
9965  */
9966 xcb_void_cookie_t
9967 xcb_install_colormap (xcb_connection_t *c  /**< */,
9968                       xcb_colormap_t    cmap  /**< */);
9969 
9970 /**
9971  *
9972  * @param c The connection
9973  * @return A cookie
9974  *
9975  * Delivers a request to the X server.
9976  *
9977  * This form can be used only if the request will not cause
9978  * a reply to be generated. Any returned error will be
9979  * saved for handling by xcb_request_check().
9980  */
9981 xcb_void_cookie_t
9982 xcb_uninstall_colormap_checked (xcb_connection_t *c  /**< */,
9983                                 xcb_colormap_t    cmap  /**< */);
9984 
9985 /**
9986  *
9987  * @param c The connection
9988  * @return A cookie
9989  *
9990  * Delivers a request to the X server.
9991  *
9992  */
9993 xcb_void_cookie_t
9994 xcb_uninstall_colormap (xcb_connection_t *c  /**< */,
9995                         xcb_colormap_t    cmap  /**< */);
9996 
9997 int
9998 xcb_list_installed_colormaps_sizeof (const void  *_buffer  /**< */);
9999 
10000 /**
10001  *
10002  * @param c The connection
10003  * @return A cookie
10004  *
10005  * Delivers a request to the X server.
10006  *
10007  */
10008 xcb_list_installed_colormaps_cookie_t
10009 xcb_list_installed_colormaps (xcb_connection_t *c  /**< */,
10010                               xcb_window_t      window  /**< */);
10011 
10012 /**
10013  *
10014  * @param c The connection
10015  * @return A cookie
10016  *
10017  * Delivers a request to the X server.
10018  *
10019  * This form can be used only if the request will cause
10020  * a reply to be generated. Any returned error will be
10021  * placed in the event queue.
10022  */
10023 xcb_list_installed_colormaps_cookie_t
10024 xcb_list_installed_colormaps_unchecked (xcb_connection_t *c  /**< */,
10025                                         xcb_window_t      window  /**< */);
10026 
10027 xcb_colormap_t *
10028 xcb_list_installed_colormaps_cmaps (const xcb_list_installed_colormaps_reply_t *R  /**< */);
10029 
10030 int
10031 xcb_list_installed_colormaps_cmaps_length (const xcb_list_installed_colormaps_reply_t *R  /**< */);
10032 
10033 xcb_generic_iterator_t
10034 xcb_list_installed_colormaps_cmaps_end (const xcb_list_installed_colormaps_reply_t *R  /**< */);
10035 
10036 /**
10037  * Return the reply
10038  * @param c      The connection
10039  * @param cookie The cookie
10040  * @param e      The xcb_generic_error_t supplied
10041  *
10042  * Returns the reply of the request asked by
10043  *
10044  * The parameter @p e supplied to this function must be NULL if
10045  * xcb_list_installed_colormaps_unchecked(). is used.
10046  * Otherwise, it stores the error if any.
10047  *
10048  * The returned value must be freed by the caller using free().
10049  */
10050 xcb_list_installed_colormaps_reply_t *
10051 xcb_list_installed_colormaps_reply (xcb_connection_t                       *c  /**< */,
10052                                     xcb_list_installed_colormaps_cookie_t   cookie  /**< */,
10053                                     xcb_generic_error_t                   **e  /**< */);
10054 
10055 /**
10056  * @brief Allocate a color
10057  *
10058  * @param c The connection
10059  * @param cmap TODO
10060  * @param red The red value of your color.
10061  * @param green The green value of your color.
10062  * @param blue The blue value of your color.
10063  * @return A cookie
10064  *
10065  * Allocates a read-only colormap entry corresponding to the closest RGB value
10066  * supported by the hardware. If you are using TrueColor, you can take a shortcut
10067  * and directly calculate the color pixel value to avoid the round trip. But, for
10068  * example, on 16-bit color setups (VNC), you can easily get the closest supported
10069  * RGB value to the RGB value you are specifying.
10070  *
10071  */
10072 xcb_alloc_color_cookie_t
10073 xcb_alloc_color (xcb_connection_t *c  /**< */,
10074                  xcb_colormap_t    cmap  /**< */,
10075                  uint16_t          red  /**< */,
10076                  uint16_t          green  /**< */,
10077                  uint16_t          blue  /**< */);
10078 
10079 /**
10080  * @brief Allocate a color
10081  *
10082  * @param c The connection
10083  * @param cmap TODO
10084  * @param red The red value of your color.
10085  * @param green The green value of your color.
10086  * @param blue The blue value of your color.
10087  * @return A cookie
10088  *
10089  * Allocates a read-only colormap entry corresponding to the closest RGB value
10090  * supported by the hardware. If you are using TrueColor, you can take a shortcut
10091  * and directly calculate the color pixel value to avoid the round trip. But, for
10092  * example, on 16-bit color setups (VNC), you can easily get the closest supported
10093  * RGB value to the RGB value you are specifying.
10094  *
10095  * This form can be used only if the request will cause
10096  * a reply to be generated. Any returned error will be
10097  * placed in the event queue.
10098  */
10099 xcb_alloc_color_cookie_t
10100 xcb_alloc_color_unchecked (xcb_connection_t *c  /**< */,
10101                            xcb_colormap_t    cmap  /**< */,
10102                            uint16_t          red  /**< */,
10103                            uint16_t          green  /**< */,
10104                            uint16_t          blue  /**< */);
10105 
10106 /**
10107  * Return the reply
10108  * @param c      The connection
10109  * @param cookie The cookie
10110  * @param e      The xcb_generic_error_t supplied
10111  *
10112  * Returns the reply of the request asked by
10113  *
10114  * The parameter @p e supplied to this function must be NULL if
10115  * xcb_alloc_color_unchecked(). is used.
10116  * Otherwise, it stores the error if any.
10117  *
10118  * The returned value must be freed by the caller using free().
10119  */
10120 xcb_alloc_color_reply_t *
10121 xcb_alloc_color_reply (xcb_connection_t          *c  /**< */,
10122                        xcb_alloc_color_cookie_t   cookie  /**< */,
10123                        xcb_generic_error_t      **e  /**< */);
10124 
10125 int
10126 xcb_alloc_named_color_sizeof (const void  *_buffer  /**< */);
10127 
10128 /**
10129  *
10130  * @param c The connection
10131  * @return A cookie
10132  *
10133  * Delivers a request to the X server.
10134  *
10135  */
10136 xcb_alloc_named_color_cookie_t
10137 xcb_alloc_named_color (xcb_connection_t *c  /**< */,
10138                        xcb_colormap_t    cmap  /**< */,
10139                        uint16_t          name_len  /**< */,
10140                        const char       *name  /**< */);
10141 
10142 /**
10143  *
10144  * @param c The connection
10145  * @return A cookie
10146  *
10147  * Delivers a request to the X server.
10148  *
10149  * This form can be used only if the request will cause
10150  * a reply to be generated. Any returned error will be
10151  * placed in the event queue.
10152  */
10153 xcb_alloc_named_color_cookie_t
10154 xcb_alloc_named_color_unchecked (xcb_connection_t *c  /**< */,
10155                                  xcb_colormap_t    cmap  /**< */,
10156                                  uint16_t          name_len  /**< */,
10157                                  const char       *name  /**< */);
10158 
10159 /**
10160  * Return the reply
10161  * @param c      The connection
10162  * @param cookie The cookie
10163  * @param e      The xcb_generic_error_t supplied
10164  *
10165  * Returns the reply of the request asked by
10166  *
10167  * The parameter @p e supplied to this function must be NULL if
10168  * xcb_alloc_named_color_unchecked(). is used.
10169  * Otherwise, it stores the error if any.
10170  *
10171  * The returned value must be freed by the caller using free().
10172  */
10173 xcb_alloc_named_color_reply_t *
10174 xcb_alloc_named_color_reply (xcb_connection_t                *c  /**< */,
10175                              xcb_alloc_named_color_cookie_t   cookie  /**< */,
10176                              xcb_generic_error_t            **e  /**< */);
10177 
10178 int
10179 xcb_alloc_color_cells_sizeof (const void  *_buffer  /**< */);
10180 
10181 /**
10182  *
10183  * @param c The connection
10184  * @return A cookie
10185  *
10186  * Delivers a request to the X server.
10187  *
10188  */
10189 xcb_alloc_color_cells_cookie_t
10190 xcb_alloc_color_cells (xcb_connection_t *c  /**< */,
10191                        uint8_t           contiguous  /**< */,
10192                        xcb_colormap_t    cmap  /**< */,
10193                        uint16_t          colors  /**< */,
10194                        uint16_t          planes  /**< */);
10195 
10196 /**
10197  *
10198  * @param c The connection
10199  * @return A cookie
10200  *
10201  * Delivers a request to the X server.
10202  *
10203  * This form can be used only if the request will cause
10204  * a reply to be generated. Any returned error will be
10205  * placed in the event queue.
10206  */
10207 xcb_alloc_color_cells_cookie_t
10208 xcb_alloc_color_cells_unchecked (xcb_connection_t *c  /**< */,
10209                                  uint8_t           contiguous  /**< */,
10210                                  xcb_colormap_t    cmap  /**< */,
10211                                  uint16_t          colors  /**< */,
10212                                  uint16_t          planes  /**< */);
10213 
10214 uint32_t *
10215 xcb_alloc_color_cells_pixels (const xcb_alloc_color_cells_reply_t *R  /**< */);
10216 
10217 int
10218 xcb_alloc_color_cells_pixels_length (const xcb_alloc_color_cells_reply_t *R  /**< */);
10219 
10220 xcb_generic_iterator_t
10221 xcb_alloc_color_cells_pixels_end (const xcb_alloc_color_cells_reply_t *R  /**< */);
10222 
10223 uint32_t *
10224 xcb_alloc_color_cells_masks (const xcb_alloc_color_cells_reply_t *R  /**< */);
10225 
10226 int
10227 xcb_alloc_color_cells_masks_length (const xcb_alloc_color_cells_reply_t *R  /**< */);
10228 
10229 xcb_generic_iterator_t
10230 xcb_alloc_color_cells_masks_end (const xcb_alloc_color_cells_reply_t *R  /**< */);
10231 
10232 /**
10233  * Return the reply
10234  * @param c      The connection
10235  * @param cookie The cookie
10236  * @param e      The xcb_generic_error_t supplied
10237  *
10238  * Returns the reply of the request asked by
10239  *
10240  * The parameter @p e supplied to this function must be NULL if
10241  * xcb_alloc_color_cells_unchecked(). is used.
10242  * Otherwise, it stores the error if any.
10243  *
10244  * The returned value must be freed by the caller using free().
10245  */
10246 xcb_alloc_color_cells_reply_t *
10247 xcb_alloc_color_cells_reply (xcb_connection_t                *c  /**< */,
10248                              xcb_alloc_color_cells_cookie_t   cookie  /**< */,
10249                              xcb_generic_error_t            **e  /**< */);
10250 
10251 int
10252 xcb_alloc_color_planes_sizeof (const void  *_buffer  /**< */);
10253 
10254 /**
10255  *
10256  * @param c The connection
10257  * @return A cookie
10258  *
10259  * Delivers a request to the X server.
10260  *
10261  */
10262 xcb_alloc_color_planes_cookie_t
10263 xcb_alloc_color_planes (xcb_connection_t *c  /**< */,
10264                         uint8_t           contiguous  /**< */,
10265                         xcb_colormap_t    cmap  /**< */,
10266                         uint16_t          colors  /**< */,
10267                         uint16_t          reds  /**< */,
10268                         uint16_t          greens  /**< */,
10269                         uint16_t          blues  /**< */);
10270 
10271 /**
10272  *
10273  * @param c The connection
10274  * @return A cookie
10275  *
10276  * Delivers a request to the X server.
10277  *
10278  * This form can be used only if the request will cause
10279  * a reply to be generated. Any returned error will be
10280  * placed in the event queue.
10281  */
10282 xcb_alloc_color_planes_cookie_t
10283 xcb_alloc_color_planes_unchecked (xcb_connection_t *c  /**< */,
10284                                   uint8_t           contiguous  /**< */,
10285                                   xcb_colormap_t    cmap  /**< */,
10286                                   uint16_t          colors  /**< */,
10287                                   uint16_t          reds  /**< */,
10288                                   uint16_t          greens  /**< */,
10289                                   uint16_t          blues  /**< */);
10290 
10291 uint32_t *
10292 xcb_alloc_color_planes_pixels (const xcb_alloc_color_planes_reply_t *R  /**< */);
10293 
10294 int
10295 xcb_alloc_color_planes_pixels_length (const xcb_alloc_color_planes_reply_t *R  /**< */);
10296 
10297 xcb_generic_iterator_t
10298 xcb_alloc_color_planes_pixels_end (const xcb_alloc_color_planes_reply_t *R  /**< */);
10299 
10300 /**
10301  * Return the reply
10302  * @param c      The connection
10303  * @param cookie The cookie
10304  * @param e      The xcb_generic_error_t supplied
10305  *
10306  * Returns the reply of the request asked by
10307  *
10308  * The parameter @p e supplied to this function must be NULL if
10309  * xcb_alloc_color_planes_unchecked(). is used.
10310  * Otherwise, it stores the error if any.
10311  *
10312  * The returned value must be freed by the caller using free().
10313  */
10314 xcb_alloc_color_planes_reply_t *
10315 xcb_alloc_color_planes_reply (xcb_connection_t                 *c  /**< */,
10316                               xcb_alloc_color_planes_cookie_t   cookie  /**< */,
10317                               xcb_generic_error_t             **e  /**< */);
10318 
10319 int
10320 xcb_free_colors_sizeof (const void  *_buffer  /**< */,
10321                         uint32_t     pixels_len  /**< */);
10322 
10323 /**
10324  *
10325  * @param c The connection
10326  * @return A cookie
10327  *
10328  * Delivers a request to the X server.
10329  *
10330  * This form can be used only if the request will not cause
10331  * a reply to be generated. Any returned error will be
10332  * saved for handling by xcb_request_check().
10333  */
10334 xcb_void_cookie_t
10335 xcb_free_colors_checked (xcb_connection_t *c  /**< */,
10336                          xcb_colormap_t    cmap  /**< */,
10337                          uint32_t          plane_mask  /**< */,
10338                          uint32_t          pixels_len  /**< */,
10339                          const uint32_t   *pixels  /**< */);
10340 
10341 /**
10342  *
10343  * @param c The connection
10344  * @return A cookie
10345  *
10346  * Delivers a request to the X server.
10347  *
10348  */
10349 xcb_void_cookie_t
10350 xcb_free_colors (xcb_connection_t *c  /**< */,
10351                  xcb_colormap_t    cmap  /**< */,
10352                  uint32_t          plane_mask  /**< */,
10353                  uint32_t          pixels_len  /**< */,
10354                  const uint32_t   *pixels  /**< */);
10355 
10356 /**
10357  * Get the next element of the iterator
10358  * @param i Pointer to a xcb_coloritem_iterator_t
10359  *
10360  * Get the next element in the iterator. The member rem is
10361  * decreased by one. The member data points to the next
10362  * element. The member index is increased by sizeof(xcb_coloritem_t)
10363  */
10364 void
10365 xcb_coloritem_next (xcb_coloritem_iterator_t *i  /**< */);
10366 
10367 /**
10368  * Return the iterator pointing to the last element
10369  * @param i An xcb_coloritem_iterator_t
10370  * @return  The iterator pointing to the last element
10371  *
10372  * Set the current element in the iterator to the last element.
10373  * The member rem is set to 0. The member data points to the
10374  * last element.
10375  */
10376 xcb_generic_iterator_t
10377 xcb_coloritem_end (xcb_coloritem_iterator_t i  /**< */);
10378 
10379 int
10380 xcb_store_colors_sizeof (const void  *_buffer  /**< */,
10381                          uint32_t     items_len  /**< */);
10382 
10383 /**
10384  *
10385  * @param c The connection
10386  * @return A cookie
10387  *
10388  * Delivers a request to the X server.
10389  *
10390  * This form can be used only if the request will not cause
10391  * a reply to be generated. Any returned error will be
10392  * saved for handling by xcb_request_check().
10393  */
10394 xcb_void_cookie_t
10395 xcb_store_colors_checked (xcb_connection_t      *c  /**< */,
10396                           xcb_colormap_t         cmap  /**< */,
10397                           uint32_t               items_len  /**< */,
10398                           const xcb_coloritem_t *items  /**< */);
10399 
10400 /**
10401  *
10402  * @param c The connection
10403  * @return A cookie
10404  *
10405  * Delivers a request to the X server.
10406  *
10407  */
10408 xcb_void_cookie_t
10409 xcb_store_colors (xcb_connection_t      *c  /**< */,
10410                   xcb_colormap_t         cmap  /**< */,
10411                   uint32_t               items_len  /**< */,
10412                   const xcb_coloritem_t *items  /**< */);
10413 
10414 int
10415 xcb_store_named_color_sizeof (const void  *_buffer  /**< */);
10416 
10417 /**
10418  *
10419  * @param c The connection
10420  * @return A cookie
10421  *
10422  * Delivers a request to the X server.
10423  *
10424  * This form can be used only if the request will not cause
10425  * a reply to be generated. Any returned error will be
10426  * saved for handling by xcb_request_check().
10427  */
10428 xcb_void_cookie_t
10429 xcb_store_named_color_checked (xcb_connection_t *c  /**< */,
10430                                uint8_t           flags  /**< */,
10431                                xcb_colormap_t    cmap  /**< */,
10432                                uint32_t          pixel  /**< */,
10433                                uint16_t          name_len  /**< */,
10434                                const char       *name  /**< */);
10435 
10436 /**
10437  *
10438  * @param c The connection
10439  * @return A cookie
10440  *
10441  * Delivers a request to the X server.
10442  *
10443  */
10444 xcb_void_cookie_t
10445 xcb_store_named_color (xcb_connection_t *c  /**< */,
10446                        uint8_t           flags  /**< */,
10447                        xcb_colormap_t    cmap  /**< */,
10448                        uint32_t          pixel  /**< */,
10449                        uint16_t          name_len  /**< */,
10450                        const char       *name  /**< */);
10451 
10452 /**
10453  * Get the next element of the iterator
10454  * @param i Pointer to a xcb_rgb_iterator_t
10455  *
10456  * Get the next element in the iterator. The member rem is
10457  * decreased by one. The member data points to the next
10458  * element. The member index is increased by sizeof(xcb_rgb_t)
10459  */
10460 void
10461 xcb_rgb_next (xcb_rgb_iterator_t *i  /**< */);
10462 
10463 /**
10464  * Return the iterator pointing to the last element
10465  * @param i An xcb_rgb_iterator_t
10466  * @return  The iterator pointing to the last element
10467  *
10468  * Set the current element in the iterator to the last element.
10469  * The member rem is set to 0. The member data points to the
10470  * last element.
10471  */
10472 xcb_generic_iterator_t
10473 xcb_rgb_end (xcb_rgb_iterator_t i  /**< */);
10474 
10475 int
10476 xcb_query_colors_sizeof (const void  *_buffer  /**< */,
10477                          uint32_t     pixels_len  /**< */);
10478 
10479 /**
10480  *
10481  * @param c The connection
10482  * @return A cookie
10483  *
10484  * Delivers a request to the X server.
10485  *
10486  */
10487 xcb_query_colors_cookie_t
10488 xcb_query_colors (xcb_connection_t *c  /**< */,
10489                   xcb_colormap_t    cmap  /**< */,
10490                   uint32_t          pixels_len  /**< */,
10491                   const uint32_t   *pixels  /**< */);
10492 
10493 /**
10494  *
10495  * @param c The connection
10496  * @return A cookie
10497  *
10498  * Delivers a request to the X server.
10499  *
10500  * This form can be used only if the request will cause
10501  * a reply to be generated. Any returned error will be
10502  * placed in the event queue.
10503  */
10504 xcb_query_colors_cookie_t
10505 xcb_query_colors_unchecked (xcb_connection_t *c  /**< */,
10506                             xcb_colormap_t    cmap  /**< */,
10507                             uint32_t          pixels_len  /**< */,
10508                             const uint32_t   *pixels  /**< */);
10509 
10510 xcb_rgb_t *
10511 xcb_query_colors_colors (const xcb_query_colors_reply_t *R  /**< */);
10512 
10513 int
10514 xcb_query_colors_colors_length (const xcb_query_colors_reply_t *R  /**< */);
10515 
10516 xcb_rgb_iterator_t
10517 xcb_query_colors_colors_iterator (const xcb_query_colors_reply_t *R  /**< */);
10518 
10519 /**
10520  * Return the reply
10521  * @param c      The connection
10522  * @param cookie The cookie
10523  * @param e      The xcb_generic_error_t supplied
10524  *
10525  * Returns the reply of the request asked by
10526  *
10527  * The parameter @p e supplied to this function must be NULL if
10528  * xcb_query_colors_unchecked(). is used.
10529  * Otherwise, it stores the error if any.
10530  *
10531  * The returned value must be freed by the caller using free().
10532  */
10533 xcb_query_colors_reply_t *
10534 xcb_query_colors_reply (xcb_connection_t           *c  /**< */,
10535                         xcb_query_colors_cookie_t   cookie  /**< */,
10536                         xcb_generic_error_t       **e  /**< */);
10537 
10538 int
10539 xcb_lookup_color_sizeof (const void  *_buffer  /**< */);
10540 
10541 /**
10542  *
10543  * @param c The connection
10544  * @return A cookie
10545  *
10546  * Delivers a request to the X server.
10547  *
10548  */
10549 xcb_lookup_color_cookie_t
10550 xcb_lookup_color (xcb_connection_t *c  /**< */,
10551                   xcb_colormap_t    cmap  /**< */,
10552                   uint16_t          name_len  /**< */,
10553                   const char       *name  /**< */);
10554 
10555 /**
10556  *
10557  * @param c The connection
10558  * @return A cookie
10559  *
10560  * Delivers a request to the X server.
10561  *
10562  * This form can be used only if the request will cause
10563  * a reply to be generated. Any returned error will be
10564  * placed in the event queue.
10565  */
10566 xcb_lookup_color_cookie_t
10567 xcb_lookup_color_unchecked (xcb_connection_t *c  /**< */,
10568                             xcb_colormap_t    cmap  /**< */,
10569                             uint16_t          name_len  /**< */,
10570                             const char       *name  /**< */);
10571 
10572 /**
10573  * Return the reply
10574  * @param c      The connection
10575  * @param cookie The cookie
10576  * @param e      The xcb_generic_error_t supplied
10577  *
10578  * Returns the reply of the request asked by
10579  *
10580  * The parameter @p e supplied to this function must be NULL if
10581  * xcb_lookup_color_unchecked(). is used.
10582  * Otherwise, it stores the error if any.
10583  *
10584  * The returned value must be freed by the caller using free().
10585  */
10586 xcb_lookup_color_reply_t *
10587 xcb_lookup_color_reply (xcb_connection_t           *c  /**< */,
10588                         xcb_lookup_color_cookie_t   cookie  /**< */,
10589                         xcb_generic_error_t       **e  /**< */);
10590 
10591 /**
10592  *
10593  * @param c The connection
10594  * @return A cookie
10595  *
10596  * Delivers a request to the X server.
10597  *
10598  * This form can be used only if the request will not cause
10599  * a reply to be generated. Any returned error will be
10600  * saved for handling by xcb_request_check().
10601  */
10602 xcb_void_cookie_t
10603 xcb_create_cursor_checked (xcb_connection_t *c  /**< */,
10604                            xcb_cursor_t      cid  /**< */,
10605                            xcb_pixmap_t      source  /**< */,
10606                            xcb_pixmap_t      mask  /**< */,
10607                            uint16_t          fore_red  /**< */,
10608                            uint16_t          fore_green  /**< */,
10609                            uint16_t          fore_blue  /**< */,
10610                            uint16_t          back_red  /**< */,
10611                            uint16_t          back_green  /**< */,
10612                            uint16_t          back_blue  /**< */,
10613                            uint16_t          x  /**< */,
10614                            uint16_t          y  /**< */);
10615 
10616 /**
10617  *
10618  * @param c The connection
10619  * @return A cookie
10620  *
10621  * Delivers a request to the X server.
10622  *
10623  */
10624 xcb_void_cookie_t
10625 xcb_create_cursor (xcb_connection_t *c  /**< */,
10626                    xcb_cursor_t      cid  /**< */,
10627                    xcb_pixmap_t      source  /**< */,
10628                    xcb_pixmap_t      mask  /**< */,
10629                    uint16_t          fore_red  /**< */,
10630                    uint16_t          fore_green  /**< */,
10631                    uint16_t          fore_blue  /**< */,
10632                    uint16_t          back_red  /**< */,
10633                    uint16_t          back_green  /**< */,
10634                    uint16_t          back_blue  /**< */,
10635                    uint16_t          x  /**< */,
10636                    uint16_t          y  /**< */);
10637 
10638 /**
10639  * @brief create cursor
10640  *
10641  * @param c The connection
10642  * @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.
10643  * @param source_font In which font to look for the cursor glyph.
10644  * @param mask_font In which font to look for the mask glyph.
10645  * @param source_char The glyph of \a source_font to use.
10646  * @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define
10647  * which source pixels are displayed. All pixels which are set to 0 are not
10648  * displayed.
10649  * @param fore_red The red value of the foreground color.
10650  * @param fore_green The green value of the foreground color.
10651  * @param fore_blue The blue value of the foreground color.
10652  * @param back_red The red value of the background color.
10653  * @param back_green The green value of the background color.
10654  * @param back_blue The blue value of the background color.
10655  * @return A cookie
10656  *
10657  * Creates a cursor from a font glyph. X provides a set of standard cursor shapes
10658  * in a special font named cursor. Applications are encouraged to use this
10659  * interface for their cursors because the font can be customized for the
10660  * individual display type.
10661  *
10662  * All pixels which are set to 1 in the source will use the foreground color (as
10663  * specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0
10664  * will use the background color (as specified by \a back_red, \a back_green and
10665  * \a back_blue).
10666  *
10667  * This form can be used only if the request will not cause
10668  * a reply to be generated. Any returned error will be
10669  * saved for handling by xcb_request_check().
10670  */
10671 xcb_void_cookie_t
10672 xcb_create_glyph_cursor_checked (xcb_connection_t *c  /**< */,
10673                                  xcb_cursor_t      cid  /**< */,
10674                                  xcb_font_t        source_font  /**< */,
10675                                  xcb_font_t        mask_font  /**< */,
10676                                  uint16_t          source_char  /**< */,
10677                                  uint16_t          mask_char  /**< */,
10678                                  uint16_t          fore_red  /**< */,
10679                                  uint16_t          fore_green  /**< */,
10680                                  uint16_t          fore_blue  /**< */,
10681                                  uint16_t          back_red  /**< */,
10682                                  uint16_t          back_green  /**< */,
10683                                  uint16_t          back_blue  /**< */);
10684 
10685 /**
10686  * @brief create cursor
10687  *
10688  * @param c The connection
10689  * @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.
10690  * @param source_font In which font to look for the cursor glyph.
10691  * @param mask_font In which font to look for the mask glyph.
10692  * @param source_char The glyph of \a source_font to use.
10693  * @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define
10694  * which source pixels are displayed. All pixels which are set to 0 are not
10695  * displayed.
10696  * @param fore_red The red value of the foreground color.
10697  * @param fore_green The green value of the foreground color.
10698  * @param fore_blue The blue value of the foreground color.
10699  * @param back_red The red value of the background color.
10700  * @param back_green The green value of the background color.
10701  * @param back_blue The blue value of the background color.
10702  * @return A cookie
10703  *
10704  * Creates a cursor from a font glyph. X provides a set of standard cursor shapes
10705  * in a special font named cursor. Applications are encouraged to use this
10706  * interface for their cursors because the font can be customized for the
10707  * individual display type.
10708  *
10709  * All pixels which are set to 1 in the source will use the foreground color (as
10710  * specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0
10711  * will use the background color (as specified by \a back_red, \a back_green and
10712  * \a back_blue).
10713  *
10714  */
10715 xcb_void_cookie_t
10716 xcb_create_glyph_cursor (xcb_connection_t *c  /**< */,
10717                          xcb_cursor_t      cid  /**< */,
10718                          xcb_font_t        source_font  /**< */,
10719                          xcb_font_t        mask_font  /**< */,
10720                          uint16_t          source_char  /**< */,
10721                          uint16_t          mask_char  /**< */,
10722                          uint16_t          fore_red  /**< */,
10723                          uint16_t          fore_green  /**< */,
10724                          uint16_t          fore_blue  /**< */,
10725                          uint16_t          back_red  /**< */,
10726                          uint16_t          back_green  /**< */,
10727                          uint16_t          back_blue  /**< */);
10728 
10729 /**
10730  * @brief Deletes a cursor
10731  *
10732  * @param c The connection
10733  * @param cursor The cursor to destroy.
10734  * @return A cookie
10735  *
10736  * Deletes the association between the cursor resource ID and the specified
10737  * cursor. The cursor is freed when no other resource references it.
10738  *
10739  * This form can be used only if the request will not cause
10740  * a reply to be generated. Any returned error will be
10741  * saved for handling by xcb_request_check().
10742  */
10743 xcb_void_cookie_t
10744 xcb_free_cursor_checked (xcb_connection_t *c  /**< */,
10745                          xcb_cursor_t      cursor  /**< */);
10746 
10747 /**
10748  * @brief Deletes a cursor
10749  *
10750  * @param c The connection
10751  * @param cursor The cursor to destroy.
10752  * @return A cookie
10753  *
10754  * Deletes the association between the cursor resource ID and the specified
10755  * cursor. The cursor is freed when no other resource references it.
10756  *
10757  */
10758 xcb_void_cookie_t
10759 xcb_free_cursor (xcb_connection_t *c  /**< */,
10760                  xcb_cursor_t      cursor  /**< */);
10761 
10762 /**
10763  *
10764  * @param c The connection
10765  * @return A cookie
10766  *
10767  * Delivers a request to the X server.
10768  *
10769  * This form can be used only if the request will not cause
10770  * a reply to be generated. Any returned error will be
10771  * saved for handling by xcb_request_check().
10772  */
10773 xcb_void_cookie_t
10774 xcb_recolor_cursor_checked (xcb_connection_t *c  /**< */,
10775                             xcb_cursor_t      cursor  /**< */,
10776                             uint16_t          fore_red  /**< */,
10777                             uint16_t          fore_green  /**< */,
10778                             uint16_t          fore_blue  /**< */,
10779                             uint16_t          back_red  /**< */,
10780                             uint16_t          back_green  /**< */,
10781                             uint16_t          back_blue  /**< */);
10782 
10783 /**
10784  *
10785  * @param c The connection
10786  * @return A cookie
10787  *
10788  * Delivers a request to the X server.
10789  *
10790  */
10791 xcb_void_cookie_t
10792 xcb_recolor_cursor (xcb_connection_t *c  /**< */,
10793                     xcb_cursor_t      cursor  /**< */,
10794                     uint16_t          fore_red  /**< */,
10795                     uint16_t          fore_green  /**< */,
10796                     uint16_t          fore_blue  /**< */,
10797                     uint16_t          back_red  /**< */,
10798                     uint16_t          back_green  /**< */,
10799                     uint16_t          back_blue  /**< */);
10800 
10801 /**
10802  *
10803  * @param c The connection
10804  * @return A cookie
10805  *
10806  * Delivers a request to the X server.
10807  *
10808  */
10809 xcb_query_best_size_cookie_t
10810 xcb_query_best_size (xcb_connection_t *c  /**< */,
10811                      uint8_t           _class  /**< */,
10812                      xcb_drawable_t    drawable  /**< */,
10813                      uint16_t          width  /**< */,
10814                      uint16_t          height  /**< */);
10815 
10816 /**
10817  *
10818  * @param c The connection
10819  * @return A cookie
10820  *
10821  * Delivers a request to the X server.
10822  *
10823  * This form can be used only if the request will cause
10824  * a reply to be generated. Any returned error will be
10825  * placed in the event queue.
10826  */
10827 xcb_query_best_size_cookie_t
10828 xcb_query_best_size_unchecked (xcb_connection_t *c  /**< */,
10829                                uint8_t           _class  /**< */,
10830                                xcb_drawable_t    drawable  /**< */,
10831                                uint16_t          width  /**< */,
10832                                uint16_t          height  /**< */);
10833 
10834 /**
10835  * Return the reply
10836  * @param c      The connection
10837  * @param cookie The cookie
10838  * @param e      The xcb_generic_error_t supplied
10839  *
10840  * Returns the reply of the request asked by
10841  *
10842  * The parameter @p e supplied to this function must be NULL if
10843  * xcb_query_best_size_unchecked(). is used.
10844  * Otherwise, it stores the error if any.
10845  *
10846  * The returned value must be freed by the caller using free().
10847  */
10848 xcb_query_best_size_reply_t *
10849 xcb_query_best_size_reply (xcb_connection_t              *c  /**< */,
10850                            xcb_query_best_size_cookie_t   cookie  /**< */,
10851                            xcb_generic_error_t          **e  /**< */);
10852 
10853 int
10854 xcb_query_extension_sizeof (const void  *_buffer  /**< */);
10855 
10856 /**
10857  * @brief check if extension is present
10858  *
10859  * @param c The connection
10860  * @param name_len The length of \a name in bytes.
10861  * @param name The name of the extension to query, for example "RANDR". This is case
10862  * sensitive!
10863  * @return A cookie
10864  *
10865  * Determines if the specified extension is present on this X11 server.
10866  *
10867  * Every extension has a unique `major_opcode` to identify requests, the minor
10868  * opcodes and request formats are extension-specific. If the extension provides
10869  * events and errors, the `first_event` and `first_error` fields in the reply are
10870  * set accordingly.
10871  *
10872  * There should rarely be a need to use this request directly, XCB provides the
10873  * `xcb_get_extension_data` function instead.
10874  *
10875  */
10876 xcb_query_extension_cookie_t
10877 xcb_query_extension (xcb_connection_t *c  /**< */,
10878                      uint16_t          name_len  /**< */,
10879                      const char       *name  /**< */);
10880 
10881 /**
10882  * @brief check if extension is present
10883  *
10884  * @param c The connection
10885  * @param name_len The length of \a name in bytes.
10886  * @param name The name of the extension to query, for example "RANDR". This is case
10887  * sensitive!
10888  * @return A cookie
10889  *
10890  * Determines if the specified extension is present on this X11 server.
10891  *
10892  * Every extension has a unique `major_opcode` to identify requests, the minor
10893  * opcodes and request formats are extension-specific. If the extension provides
10894  * events and errors, the `first_event` and `first_error` fields in the reply are
10895  * set accordingly.
10896  *
10897  * There should rarely be a need to use this request directly, XCB provides the
10898  * `xcb_get_extension_data` function instead.
10899  *
10900  * This form can be used only if the request will cause
10901  * a reply to be generated. Any returned error will be
10902  * placed in the event queue.
10903  */
10904 xcb_query_extension_cookie_t
10905 xcb_query_extension_unchecked (xcb_connection_t *c  /**< */,
10906                                uint16_t          name_len  /**< */,
10907                                const char       *name  /**< */);
10908 
10909 /**
10910  * Return the reply
10911  * @param c      The connection
10912  * @param cookie The cookie
10913  * @param e      The xcb_generic_error_t supplied
10914  *
10915  * Returns the reply of the request asked by
10916  *
10917  * The parameter @p e supplied to this function must be NULL if
10918  * xcb_query_extension_unchecked(). is used.
10919  * Otherwise, it stores the error if any.
10920  *
10921  * The returned value must be freed by the caller using free().
10922  */
10923 xcb_query_extension_reply_t *
10924 xcb_query_extension_reply (xcb_connection_t              *c  /**< */,
10925                            xcb_query_extension_cookie_t   cookie  /**< */,
10926                            xcb_generic_error_t          **e  /**< */);
10927 
10928 int
10929 xcb_list_extensions_sizeof (const void  *_buffer  /**< */);
10930 
10931 /**
10932  *
10933  * @param c The connection
10934  * @return A cookie
10935  *
10936  * Delivers a request to the X server.
10937  *
10938  */
10939 xcb_list_extensions_cookie_t
10940 xcb_list_extensions (xcb_connection_t *c  /**< */);
10941 
10942 /**
10943  *
10944  * @param c The connection
10945  * @return A cookie
10946  *
10947  * Delivers a request to the X server.
10948  *
10949  * This form can be used only if the request will cause
10950  * a reply to be generated. Any returned error will be
10951  * placed in the event queue.
10952  */
10953 xcb_list_extensions_cookie_t
10954 xcb_list_extensions_unchecked (xcb_connection_t *c  /**< */);
10955 
10956 int
10957 xcb_list_extensions_names_length (const xcb_list_extensions_reply_t *R  /**< */);
10958 
10959 xcb_str_iterator_t
10960 xcb_list_extensions_names_iterator (const xcb_list_extensions_reply_t *R  /**< */);
10961 
10962 /**
10963  * Return the reply
10964  * @param c      The connection
10965  * @param cookie The cookie
10966  * @param e      The xcb_generic_error_t supplied
10967  *
10968  * Returns the reply of the request asked by
10969  *
10970  * The parameter @p e supplied to this function must be NULL if
10971  * xcb_list_extensions_unchecked(). is used.
10972  * Otherwise, it stores the error if any.
10973  *
10974  * The returned value must be freed by the caller using free().
10975  */
10976 xcb_list_extensions_reply_t *
10977 xcb_list_extensions_reply (xcb_connection_t              *c  /**< */,
10978                            xcb_list_extensions_cookie_t   cookie  /**< */,
10979                            xcb_generic_error_t          **e  /**< */);
10980 
10981 int
10982 xcb_change_keyboard_mapping_sizeof (const void  *_buffer  /**< */);
10983 
10984 /**
10985  *
10986  * @param c The connection
10987  * @return A cookie
10988  *
10989  * Delivers a request to the X server.
10990  *
10991  * This form can be used only if the request will not cause
10992  * a reply to be generated. Any returned error will be
10993  * saved for handling by xcb_request_check().
10994  */
10995 xcb_void_cookie_t
10996 xcb_change_keyboard_mapping_checked (xcb_connection_t   *c  /**< */,
10997                                      uint8_t             keycode_count  /**< */,
10998                                      xcb_keycode_t       first_keycode  /**< */,
10999                                      uint8_t             keysyms_per_keycode  /**< */,
11000                                      const xcb_keysym_t *keysyms  /**< */);
11001 
11002 /**
11003  *
11004  * @param c The connection
11005  * @return A cookie
11006  *
11007  * Delivers a request to the X server.
11008  *
11009  */
11010 xcb_void_cookie_t
11011 xcb_change_keyboard_mapping (xcb_connection_t   *c  /**< */,
11012                              uint8_t             keycode_count  /**< */,
11013                              xcb_keycode_t       first_keycode  /**< */,
11014                              uint8_t             keysyms_per_keycode  /**< */,
11015                              const xcb_keysym_t *keysyms  /**< */);
11016 
11017 int
11018 xcb_get_keyboard_mapping_sizeof (const void  *_buffer  /**< */);
11019 
11020 /**
11021  *
11022  * @param c The connection
11023  * @return A cookie
11024  *
11025  * Delivers a request to the X server.
11026  *
11027  */
11028 xcb_get_keyboard_mapping_cookie_t
11029 xcb_get_keyboard_mapping (xcb_connection_t *c  /**< */,
11030                           xcb_keycode_t     first_keycode  /**< */,
11031                           uint8_t           count  /**< */);
11032 
11033 /**
11034  *
11035  * @param c The connection
11036  * @return A cookie
11037  *
11038  * Delivers a request to the X server.
11039  *
11040  * This form can be used only if the request will cause
11041  * a reply to be generated. Any returned error will be
11042  * placed in the event queue.
11043  */
11044 xcb_get_keyboard_mapping_cookie_t
11045 xcb_get_keyboard_mapping_unchecked (xcb_connection_t *c  /**< */,
11046                                     xcb_keycode_t     first_keycode  /**< */,
11047                                     uint8_t           count  /**< */);
11048 
11049 xcb_keysym_t *
11050 xcb_get_keyboard_mapping_keysyms (const xcb_get_keyboard_mapping_reply_t *R  /**< */);
11051 
11052 int
11053 xcb_get_keyboard_mapping_keysyms_length (const xcb_get_keyboard_mapping_reply_t *R  /**< */);
11054 
11055 xcb_generic_iterator_t
11056 xcb_get_keyboard_mapping_keysyms_end (const xcb_get_keyboard_mapping_reply_t *R  /**< */);
11057 
11058 /**
11059  * Return the reply
11060  * @param c      The connection
11061  * @param cookie The cookie
11062  * @param e      The xcb_generic_error_t supplied
11063  *
11064  * Returns the reply of the request asked by
11065  *
11066  * The parameter @p e supplied to this function must be NULL if
11067  * xcb_get_keyboard_mapping_unchecked(). is used.
11068  * Otherwise, it stores the error if any.
11069  *
11070  * The returned value must be freed by the caller using free().
11071  */
11072 xcb_get_keyboard_mapping_reply_t *
11073 xcb_get_keyboard_mapping_reply (xcb_connection_t                   *c  /**< */,
11074                                 xcb_get_keyboard_mapping_cookie_t   cookie  /**< */,
11075                                 xcb_generic_error_t               **e  /**< */);
11076 
11077 int
11078 xcb_change_keyboard_control_sizeof (const void  *_buffer  /**< */);
11079 
11080 /**
11081  *
11082  * @param c The connection
11083  * @return A cookie
11084  *
11085  * Delivers a request to the X server.
11086  *
11087  * This form can be used only if the request will not cause
11088  * a reply to be generated. Any returned error will be
11089  * saved for handling by xcb_request_check().
11090  */
11091 xcb_void_cookie_t
11092 xcb_change_keyboard_control_checked (xcb_connection_t *c  /**< */,
11093                                      uint32_t          value_mask  /**< */,
11094                                      const uint32_t   *value_list  /**< */);
11095 
11096 /**
11097  *
11098  * @param c The connection
11099  * @return A cookie
11100  *
11101  * Delivers a request to the X server.
11102  *
11103  */
11104 xcb_void_cookie_t
11105 xcb_change_keyboard_control (xcb_connection_t *c  /**< */,
11106                              uint32_t          value_mask  /**< */,
11107                              const uint32_t   *value_list  /**< */);
11108 
11109 /**
11110  *
11111  * @param c The connection
11112  * @return A cookie
11113  *
11114  * Delivers a request to the X server.
11115  *
11116  */
11117 xcb_get_keyboard_control_cookie_t
11118 xcb_get_keyboard_control (xcb_connection_t *c  /**< */);
11119 
11120 /**
11121  *
11122  * @param c The connection
11123  * @return A cookie
11124  *
11125  * Delivers a request to the X server.
11126  *
11127  * This form can be used only if the request will cause
11128  * a reply to be generated. Any returned error will be
11129  * placed in the event queue.
11130  */
11131 xcb_get_keyboard_control_cookie_t
11132 xcb_get_keyboard_control_unchecked (xcb_connection_t *c  /**< */);
11133 
11134 /**
11135  * Return the reply
11136  * @param c      The connection
11137  * @param cookie The cookie
11138  * @param e      The xcb_generic_error_t supplied
11139  *
11140  * Returns the reply of the request asked by
11141  *
11142  * The parameter @p e supplied to this function must be NULL if
11143  * xcb_get_keyboard_control_unchecked(). is used.
11144  * Otherwise, it stores the error if any.
11145  *
11146  * The returned value must be freed by the caller using free().
11147  */
11148 xcb_get_keyboard_control_reply_t *
11149 xcb_get_keyboard_control_reply (xcb_connection_t                   *c  /**< */,
11150                                 xcb_get_keyboard_control_cookie_t   cookie  /**< */,
11151                                 xcb_generic_error_t               **e  /**< */);
11152 
11153 /**
11154  *
11155  * @param c The connection
11156  * @return A cookie
11157  *
11158  * Delivers a request to the X server.
11159  *
11160  * This form can be used only if the request will not cause
11161  * a reply to be generated. Any returned error will be
11162  * saved for handling by xcb_request_check().
11163  */
11164 xcb_void_cookie_t
11165 xcb_bell_checked (xcb_connection_t *c  /**< */,
11166                   int8_t            percent  /**< */);
11167 
11168 /**
11169  *
11170  * @param c The connection
11171  * @return A cookie
11172  *
11173  * Delivers a request to the X server.
11174  *
11175  */
11176 xcb_void_cookie_t
11177 xcb_bell (xcb_connection_t *c  /**< */,
11178           int8_t            percent  /**< */);
11179 
11180 /**
11181  *
11182  * @param c The connection
11183  * @return A cookie
11184  *
11185  * Delivers a request to the X server.
11186  *
11187  * This form can be used only if the request will not cause
11188  * a reply to be generated. Any returned error will be
11189  * saved for handling by xcb_request_check().
11190  */
11191 xcb_void_cookie_t
11192 xcb_change_pointer_control_checked (xcb_connection_t *c  /**< */,
11193                                     int16_t           acceleration_numerator  /**< */,
11194                                     int16_t           acceleration_denominator  /**< */,
11195                                     int16_t           threshold  /**< */,
11196                                     uint8_t           do_acceleration  /**< */,
11197                                     uint8_t           do_threshold  /**< */);
11198 
11199 /**
11200  *
11201  * @param c The connection
11202  * @return A cookie
11203  *
11204  * Delivers a request to the X server.
11205  *
11206  */
11207 xcb_void_cookie_t
11208 xcb_change_pointer_control (xcb_connection_t *c  /**< */,
11209                             int16_t           acceleration_numerator  /**< */,
11210                             int16_t           acceleration_denominator  /**< */,
11211                             int16_t           threshold  /**< */,
11212                             uint8_t           do_acceleration  /**< */,
11213                             uint8_t           do_threshold  /**< */);
11214 
11215 /**
11216  *
11217  * @param c The connection
11218  * @return A cookie
11219  *
11220  * Delivers a request to the X server.
11221  *
11222  */
11223 xcb_get_pointer_control_cookie_t
11224 xcb_get_pointer_control (xcb_connection_t *c  /**< */);
11225 
11226 /**
11227  *
11228  * @param c The connection
11229  * @return A cookie
11230  *
11231  * Delivers a request to the X server.
11232  *
11233  * This form can be used only if the request will cause
11234  * a reply to be generated. Any returned error will be
11235  * placed in the event queue.
11236  */
11237 xcb_get_pointer_control_cookie_t
11238 xcb_get_pointer_control_unchecked (xcb_connection_t *c  /**< */);
11239 
11240 /**
11241  * Return the reply
11242  * @param c      The connection
11243  * @param cookie The cookie
11244  * @param e      The xcb_generic_error_t supplied
11245  *
11246  * Returns the reply of the request asked by
11247  *
11248  * The parameter @p e supplied to this function must be NULL if
11249  * xcb_get_pointer_control_unchecked(). is used.
11250  * Otherwise, it stores the error if any.
11251  *
11252  * The returned value must be freed by the caller using free().
11253  */
11254 xcb_get_pointer_control_reply_t *
11255 xcb_get_pointer_control_reply (xcb_connection_t                  *c  /**< */,
11256                                xcb_get_pointer_control_cookie_t   cookie  /**< */,
11257                                xcb_generic_error_t              **e  /**< */);
11258 
11259 /**
11260  *
11261  * @param c The connection
11262  * @return A cookie
11263  *
11264  * Delivers a request to the X server.
11265  *
11266  * This form can be used only if the request will not cause
11267  * a reply to be generated. Any returned error will be
11268  * saved for handling by xcb_request_check().
11269  */
11270 xcb_void_cookie_t
11271 xcb_set_screen_saver_checked (xcb_connection_t *c  /**< */,
11272                               int16_t           timeout  /**< */,
11273                               int16_t           interval  /**< */,
11274                               uint8_t           prefer_blanking  /**< */,
11275                               uint8_t           allow_exposures  /**< */);
11276 
11277 /**
11278  *
11279  * @param c The connection
11280  * @return A cookie
11281  *
11282  * Delivers a request to the X server.
11283  *
11284  */
11285 xcb_void_cookie_t
11286 xcb_set_screen_saver (xcb_connection_t *c  /**< */,
11287                       int16_t           timeout  /**< */,
11288                       int16_t           interval  /**< */,
11289                       uint8_t           prefer_blanking  /**< */,
11290                       uint8_t           allow_exposures  /**< */);
11291 
11292 /**
11293  *
11294  * @param c The connection
11295  * @return A cookie
11296  *
11297  * Delivers a request to the X server.
11298  *
11299  */
11300 xcb_get_screen_saver_cookie_t
11301 xcb_get_screen_saver (xcb_connection_t *c  /**< */);
11302 
11303 /**
11304  *
11305  * @param c The connection
11306  * @return A cookie
11307  *
11308  * Delivers a request to the X server.
11309  *
11310  * This form can be used only if the request will cause
11311  * a reply to be generated. Any returned error will be
11312  * placed in the event queue.
11313  */
11314 xcb_get_screen_saver_cookie_t
11315 xcb_get_screen_saver_unchecked (xcb_connection_t *c  /**< */);
11316 
11317 /**
11318  * Return the reply
11319  * @param c      The connection
11320  * @param cookie The cookie
11321  * @param e      The xcb_generic_error_t supplied
11322  *
11323  * Returns the reply of the request asked by
11324  *
11325  * The parameter @p e supplied to this function must be NULL if
11326  * xcb_get_screen_saver_unchecked(). is used.
11327  * Otherwise, it stores the error if any.
11328  *
11329  * The returned value must be freed by the caller using free().
11330  */
11331 xcb_get_screen_saver_reply_t *
11332 xcb_get_screen_saver_reply (xcb_connection_t               *c  /**< */,
11333                             xcb_get_screen_saver_cookie_t   cookie  /**< */,
11334                             xcb_generic_error_t           **e  /**< */);
11335 
11336 int
11337 xcb_change_hosts_sizeof (const void  *_buffer  /**< */);
11338 
11339 /**
11340  *
11341  * @param c The connection
11342  * @return A cookie
11343  *
11344  * Delivers a request to the X server.
11345  *
11346  * This form can be used only if the request will not cause
11347  * a reply to be generated. Any returned error will be
11348  * saved for handling by xcb_request_check().
11349  */
11350 xcb_void_cookie_t
11351 xcb_change_hosts_checked (xcb_connection_t *c  /**< */,
11352                           uint8_t           mode  /**< */,
11353                           uint8_t           family  /**< */,
11354                           uint16_t          address_len  /**< */,
11355                           const uint8_t    *address  /**< */);
11356 
11357 /**
11358  *
11359  * @param c The connection
11360  * @return A cookie
11361  *
11362  * Delivers a request to the X server.
11363  *
11364  */
11365 xcb_void_cookie_t
11366 xcb_change_hosts (xcb_connection_t *c  /**< */,
11367                   uint8_t           mode  /**< */,
11368                   uint8_t           family  /**< */,
11369                   uint16_t          address_len  /**< */,
11370                   const uint8_t    *address  /**< */);
11371 
11372 int
11373 xcb_host_sizeof (const void  *_buffer  /**< */);
11374 
11375 uint8_t *
11376 xcb_host_address (const xcb_host_t *R  /**< */);
11377 
11378 int
11379 xcb_host_address_length (const xcb_host_t *R  /**< */);
11380 
11381 xcb_generic_iterator_t
11382 xcb_host_address_end (const xcb_host_t *R  /**< */);
11383 
11384 /**
11385  * Get the next element of the iterator
11386  * @param i Pointer to a xcb_host_iterator_t
11387  *
11388  * Get the next element in the iterator. The member rem is
11389  * decreased by one. The member data points to the next
11390  * element. The member index is increased by sizeof(xcb_host_t)
11391  */
11392 void
11393 xcb_host_next (xcb_host_iterator_t *i  /**< */);
11394 
11395 /**
11396  * Return the iterator pointing to the last element
11397  * @param i An xcb_host_iterator_t
11398  * @return  The iterator pointing to the last element
11399  *
11400  * Set the current element in the iterator to the last element.
11401  * The member rem is set to 0. The member data points to the
11402  * last element.
11403  */
11404 xcb_generic_iterator_t
11405 xcb_host_end (xcb_host_iterator_t i  /**< */);
11406 
11407 int
11408 xcb_list_hosts_sizeof (const void  *_buffer  /**< */);
11409 
11410 /**
11411  *
11412  * @param c The connection
11413  * @return A cookie
11414  *
11415  * Delivers a request to the X server.
11416  *
11417  */
11418 xcb_list_hosts_cookie_t
11419 xcb_list_hosts (xcb_connection_t *c  /**< */);
11420 
11421 /**
11422  *
11423  * @param c The connection
11424  * @return A cookie
11425  *
11426  * Delivers a request to the X server.
11427  *
11428  * This form can be used only if the request will cause
11429  * a reply to be generated. Any returned error will be
11430  * placed in the event queue.
11431  */
11432 xcb_list_hosts_cookie_t
11433 xcb_list_hosts_unchecked (xcb_connection_t *c  /**< */);
11434 
11435 int
11436 xcb_list_hosts_hosts_length (const xcb_list_hosts_reply_t *R  /**< */);
11437 
11438 xcb_host_iterator_t
11439 xcb_list_hosts_hosts_iterator (const xcb_list_hosts_reply_t *R  /**< */);
11440 
11441 /**
11442  * Return the reply
11443  * @param c      The connection
11444  * @param cookie The cookie
11445  * @param e      The xcb_generic_error_t supplied
11446  *
11447  * Returns the reply of the request asked by
11448  *
11449  * The parameter @p e supplied to this function must be NULL if
11450  * xcb_list_hosts_unchecked(). is used.
11451  * Otherwise, it stores the error if any.
11452  *
11453  * The returned value must be freed by the caller using free().
11454  */
11455 xcb_list_hosts_reply_t *
11456 xcb_list_hosts_reply (xcb_connection_t         *c  /**< */,
11457                       xcb_list_hosts_cookie_t   cookie  /**< */,
11458                       xcb_generic_error_t     **e  /**< */);
11459 
11460 /**
11461  *
11462  * @param c The connection
11463  * @return A cookie
11464  *
11465  * Delivers a request to the X server.
11466  *
11467  * This form can be used only if the request will not cause
11468  * a reply to be generated. Any returned error will be
11469  * saved for handling by xcb_request_check().
11470  */
11471 xcb_void_cookie_t
11472 xcb_set_access_control_checked (xcb_connection_t *c  /**< */,
11473                                 uint8_t           mode  /**< */);
11474 
11475 /**
11476  *
11477  * @param c The connection
11478  * @return A cookie
11479  *
11480  * Delivers a request to the X server.
11481  *
11482  */
11483 xcb_void_cookie_t
11484 xcb_set_access_control (xcb_connection_t *c  /**< */,
11485                         uint8_t           mode  /**< */);
11486 
11487 /**
11488  *
11489  * @param c The connection
11490  * @return A cookie
11491  *
11492  * Delivers a request to the X server.
11493  *
11494  * This form can be used only if the request will not cause
11495  * a reply to be generated. Any returned error will be
11496  * saved for handling by xcb_request_check().
11497  */
11498 xcb_void_cookie_t
11499 xcb_set_close_down_mode_checked (xcb_connection_t *c  /**< */,
11500                                  uint8_t           mode  /**< */);
11501 
11502 /**
11503  *
11504  * @param c The connection
11505  * @return A cookie
11506  *
11507  * Delivers a request to the X server.
11508  *
11509  */
11510 xcb_void_cookie_t
11511 xcb_set_close_down_mode (xcb_connection_t *c  /**< */,
11512                          uint8_t           mode  /**< */);
11513 
11514 /**
11515  * @brief kills a client
11516  *
11517  * @param c The connection
11518  * @param resource Any resource belonging to the client (for example a Window), used to identify
11519  * the client connection.
11520  * \n
11521  * The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients
11522  * that have terminated in `RetainTemporary` (TODO) are destroyed.
11523  * @return A cookie
11524  *
11525  * Forces a close down of the client that created the specified \a resource.
11526  *
11527  * This form can be used only if the request will not cause
11528  * a reply to be generated. Any returned error will be
11529  * saved for handling by xcb_request_check().
11530  */
11531 xcb_void_cookie_t
11532 xcb_kill_client_checked (xcb_connection_t *c  /**< */,
11533                          uint32_t          resource  /**< */);
11534 
11535 /**
11536  * @brief kills a client
11537  *
11538  * @param c The connection
11539  * @param resource Any resource belonging to the client (for example a Window), used to identify
11540  * the client connection.
11541  * \n
11542  * The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients
11543  * that have terminated in `RetainTemporary` (TODO) are destroyed.
11544  * @return A cookie
11545  *
11546  * Forces a close down of the client that created the specified \a resource.
11547  *
11548  */
11549 xcb_void_cookie_t
11550 xcb_kill_client (xcb_connection_t *c  /**< */,
11551                  uint32_t          resource  /**< */);
11552 
11553 int
11554 xcb_rotate_properties_sizeof (const void  *_buffer  /**< */);
11555 
11556 /**
11557  *
11558  * @param c The connection
11559  * @return A cookie
11560  *
11561  * Delivers a request to the X server.
11562  *
11563  * This form can be used only if the request will not cause
11564  * a reply to be generated. Any returned error will be
11565  * saved for handling by xcb_request_check().
11566  */
11567 xcb_void_cookie_t
11568 xcb_rotate_properties_checked (xcb_connection_t *c  /**< */,
11569                                xcb_window_t      window  /**< */,
11570                                uint16_t          atoms_len  /**< */,
11571                                int16_t           delta  /**< */,
11572                                const xcb_atom_t *atoms  /**< */);
11573 
11574 /**
11575  *
11576  * @param c The connection
11577  * @return A cookie
11578  *
11579  * Delivers a request to the X server.
11580  *
11581  */
11582 xcb_void_cookie_t
11583 xcb_rotate_properties (xcb_connection_t *c  /**< */,
11584                        xcb_window_t      window  /**< */,
11585                        uint16_t          atoms_len  /**< */,
11586                        int16_t           delta  /**< */,
11587                        const xcb_atom_t *atoms  /**< */);
11588 
11589 /**
11590  *
11591  * @param c The connection
11592  * @return A cookie
11593  *
11594  * Delivers a request to the X server.
11595  *
11596  * This form can be used only if the request will not cause
11597  * a reply to be generated. Any returned error will be
11598  * saved for handling by xcb_request_check().
11599  */
11600 xcb_void_cookie_t
11601 xcb_force_screen_saver_checked (xcb_connection_t *c  /**< */,
11602                                 uint8_t           mode  /**< */);
11603 
11604 /**
11605  *
11606  * @param c The connection
11607  * @return A cookie
11608  *
11609  * Delivers a request to the X server.
11610  *
11611  */
11612 xcb_void_cookie_t
11613 xcb_force_screen_saver (xcb_connection_t *c  /**< */,
11614                         uint8_t           mode  /**< */);
11615 
11616 int
11617 xcb_set_pointer_mapping_sizeof (const void  *_buffer  /**< */);
11618 
11619 /**
11620  *
11621  * @param c The connection
11622  * @return A cookie
11623  *
11624  * Delivers a request to the X server.
11625  *
11626  */
11627 xcb_set_pointer_mapping_cookie_t
11628 xcb_set_pointer_mapping (xcb_connection_t *c  /**< */,
11629                          uint8_t           map_len  /**< */,
11630                          const uint8_t    *map  /**< */);
11631 
11632 /**
11633  *
11634  * @param c The connection
11635  * @return A cookie
11636  *
11637  * Delivers a request to the X server.
11638  *
11639  * This form can be used only if the request will cause
11640  * a reply to be generated. Any returned error will be
11641  * placed in the event queue.
11642  */
11643 xcb_set_pointer_mapping_cookie_t
11644 xcb_set_pointer_mapping_unchecked (xcb_connection_t *c  /**< */,
11645                                    uint8_t           map_len  /**< */,
11646                                    const uint8_t    *map  /**< */);
11647 
11648 /**
11649  * Return the reply
11650  * @param c      The connection
11651  * @param cookie The cookie
11652  * @param e      The xcb_generic_error_t supplied
11653  *
11654  * Returns the reply of the request asked by
11655  *
11656  * The parameter @p e supplied to this function must be NULL if
11657  * xcb_set_pointer_mapping_unchecked(). is used.
11658  * Otherwise, it stores the error if any.
11659  *
11660  * The returned value must be freed by the caller using free().
11661  */
11662 xcb_set_pointer_mapping_reply_t *
11663 xcb_set_pointer_mapping_reply (xcb_connection_t                  *c  /**< */,
11664                                xcb_set_pointer_mapping_cookie_t   cookie  /**< */,
11665                                xcb_generic_error_t              **e  /**< */);
11666 
11667 int
11668 xcb_get_pointer_mapping_sizeof (const void  *_buffer  /**< */);
11669 
11670 /**
11671  *
11672  * @param c The connection
11673  * @return A cookie
11674  *
11675  * Delivers a request to the X server.
11676  *
11677  */
11678 xcb_get_pointer_mapping_cookie_t
11679 xcb_get_pointer_mapping (xcb_connection_t *c  /**< */);
11680 
11681 /**
11682  *
11683  * @param c The connection
11684  * @return A cookie
11685  *
11686  * Delivers a request to the X server.
11687  *
11688  * This form can be used only if the request will cause
11689  * a reply to be generated. Any returned error will be
11690  * placed in the event queue.
11691  */
11692 xcb_get_pointer_mapping_cookie_t
11693 xcb_get_pointer_mapping_unchecked (xcb_connection_t *c  /**< */);
11694 
11695 uint8_t *
11696 xcb_get_pointer_mapping_map (const xcb_get_pointer_mapping_reply_t *R  /**< */);
11697 
11698 int
11699 xcb_get_pointer_mapping_map_length (const xcb_get_pointer_mapping_reply_t *R  /**< */);
11700 
11701 xcb_generic_iterator_t
11702 xcb_get_pointer_mapping_map_end (const xcb_get_pointer_mapping_reply_t *R  /**< */);
11703 
11704 /**
11705  * Return the reply
11706  * @param c      The connection
11707  * @param cookie The cookie
11708  * @param e      The xcb_generic_error_t supplied
11709  *
11710  * Returns the reply of the request asked by
11711  *
11712  * The parameter @p e supplied to this function must be NULL if
11713  * xcb_get_pointer_mapping_unchecked(). is used.
11714  * Otherwise, it stores the error if any.
11715  *
11716  * The returned value must be freed by the caller using free().
11717  */
11718 xcb_get_pointer_mapping_reply_t *
11719 xcb_get_pointer_mapping_reply (xcb_connection_t                  *c  /**< */,
11720                                xcb_get_pointer_mapping_cookie_t   cookie  /**< */,
11721                                xcb_generic_error_t              **e  /**< */);
11722 
11723 int
11724 xcb_set_modifier_mapping_sizeof (const void  *_buffer  /**< */);
11725 
11726 /**
11727  *
11728  * @param c The connection
11729  * @return A cookie
11730  *
11731  * Delivers a request to the X server.
11732  *
11733  */
11734 xcb_set_modifier_mapping_cookie_t
11735 xcb_set_modifier_mapping (xcb_connection_t    *c  /**< */,
11736                           uint8_t              keycodes_per_modifier  /**< */,
11737                           const xcb_keycode_t *keycodes  /**< */);
11738 
11739 /**
11740  *
11741  * @param c The connection
11742  * @return A cookie
11743  *
11744  * Delivers a request to the X server.
11745  *
11746  * This form can be used only if the request will cause
11747  * a reply to be generated. Any returned error will be
11748  * placed in the event queue.
11749  */
11750 xcb_set_modifier_mapping_cookie_t
11751 xcb_set_modifier_mapping_unchecked (xcb_connection_t    *c  /**< */,
11752                                     uint8_t              keycodes_per_modifier  /**< */,
11753                                     const xcb_keycode_t *keycodes  /**< */);
11754 
11755 /**
11756  * Return the reply
11757  * @param c      The connection
11758  * @param cookie The cookie
11759  * @param e      The xcb_generic_error_t supplied
11760  *
11761  * Returns the reply of the request asked by
11762  *
11763  * The parameter @p e supplied to this function must be NULL if
11764  * xcb_set_modifier_mapping_unchecked(). is used.
11765  * Otherwise, it stores the error if any.
11766  *
11767  * The returned value must be freed by the caller using free().
11768  */
11769 xcb_set_modifier_mapping_reply_t *
11770 xcb_set_modifier_mapping_reply (xcb_connection_t                   *c  /**< */,
11771                                 xcb_set_modifier_mapping_cookie_t   cookie  /**< */,
11772                                 xcb_generic_error_t               **e  /**< */);
11773 
11774 int
11775 xcb_get_modifier_mapping_sizeof (const void  *_buffer  /**< */);
11776 
11777 /**
11778  *
11779  * @param c The connection
11780  * @return A cookie
11781  *
11782  * Delivers a request to the X server.
11783  *
11784  */
11785 xcb_get_modifier_mapping_cookie_t
11786 xcb_get_modifier_mapping (xcb_connection_t *c  /**< */);
11787 
11788 /**
11789  *
11790  * @param c The connection
11791  * @return A cookie
11792  *
11793  * Delivers a request to the X server.
11794  *
11795  * This form can be used only if the request will cause
11796  * a reply to be generated. Any returned error will be
11797  * placed in the event queue.
11798  */
11799 xcb_get_modifier_mapping_cookie_t
11800 xcb_get_modifier_mapping_unchecked (xcb_connection_t *c  /**< */);
11801 
11802 xcb_keycode_t *
11803 xcb_get_modifier_mapping_keycodes (const xcb_get_modifier_mapping_reply_t *R  /**< */);
11804 
11805 int
11806 xcb_get_modifier_mapping_keycodes_length (const xcb_get_modifier_mapping_reply_t *R  /**< */);
11807 
11808 xcb_generic_iterator_t
11809 xcb_get_modifier_mapping_keycodes_end (const xcb_get_modifier_mapping_reply_t *R  /**< */);
11810 
11811 /**
11812  * Return the reply
11813  * @param c      The connection
11814  * @param cookie The cookie
11815  * @param e      The xcb_generic_error_t supplied
11816  *
11817  * Returns the reply of the request asked by
11818  *
11819  * The parameter @p e supplied to this function must be NULL if
11820  * xcb_get_modifier_mapping_unchecked(). is used.
11821  * Otherwise, it stores the error if any.
11822  *
11823  * The returned value must be freed by the caller using free().
11824  */
11825 xcb_get_modifier_mapping_reply_t *
11826 xcb_get_modifier_mapping_reply (xcb_connection_t                   *c  /**< */,
11827                                 xcb_get_modifier_mapping_cookie_t   cookie  /**< */,
11828                                 xcb_generic_error_t               **e  /**< */);
11829 
11830 /**
11831  *
11832  * @param c The connection
11833  * @return A cookie
11834  *
11835  * Delivers a request to the X server.
11836  *
11837  * This form can be used only if the request will not cause
11838  * a reply to be generated. Any returned error will be
11839  * saved for handling by xcb_request_check().
11840  */
11841 xcb_void_cookie_t
11842 xcb_no_operation_checked (xcb_connection_t *c  /**< */);
11843 
11844 /**
11845  *
11846  * @param c The connection
11847  * @return A cookie
11848  *
11849  * Delivers a request to the X server.
11850  *
11851  */
11852 xcb_void_cookie_t
11853 xcb_no_operation (xcb_connection_t *c  /**< */);
11854 
11855 
11856 #ifdef __cplusplus
11857 }
11858 #endif
11859 
11860 #endif
11861 
11862 /**
11863  * @}
11864  */
11865