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