xref: /netbsd-src/external/mit/xorg/lib/libxcb/files/xfixes.h (revision 181254a7b1bdde6873432bffef2d2decc4b5c22f)
1 /*
2  * This file generated automatically from xfixes.xml by c_client.py.
3  * Edit at your peril.
4  */
5 
6 /**
7  * @defgroup XCB_XFixes_API XCB XFixes API
8  * @brief XFixes XCB Protocol Implementation.
9  * @{
10  **/
11 
12 #ifndef __XFIXES_H
13 #define __XFIXES_H
14 
15 #include "xcb.h"
16 #include "xproto.h"
17 #include "render.h"
18 #include "shape.h"
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #define XCB_XFIXES_MAJOR_VERSION 5
25 #define XCB_XFIXES_MINOR_VERSION 0
26 
27 extern xcb_extension_t xcb_xfixes_id;
28 
29 /**
30  * @brief xcb_xfixes_query_version_cookie_t
31  **/
32 typedef struct xcb_xfixes_query_version_cookie_t {
33     unsigned int sequence;
34 } xcb_xfixes_query_version_cookie_t;
35 
36 /** Opcode for xcb_xfixes_query_version. */
37 #define XCB_XFIXES_QUERY_VERSION 0
38 
39 /**
40  * @brief xcb_xfixes_query_version_request_t
41  **/
42 typedef struct xcb_xfixes_query_version_request_t {
43     uint8_t  major_opcode;
44     uint8_t  minor_opcode;
45     uint16_t length;
46     uint32_t client_major_version;
47     uint32_t client_minor_version;
48 } xcb_xfixes_query_version_request_t;
49 
50 /**
51  * @brief xcb_xfixes_query_version_reply_t
52  **/
53 typedef struct xcb_xfixes_query_version_reply_t {
54     uint8_t  response_type;
55     uint8_t  pad0;
56     uint16_t sequence;
57     uint32_t length;
58     uint32_t major_version;
59     uint32_t minor_version;
60     uint8_t  pad1[16];
61 } xcb_xfixes_query_version_reply_t;
62 
63 typedef enum xcb_xfixes_save_set_mode_t {
64     XCB_XFIXES_SAVE_SET_MODE_INSERT = 0,
65     XCB_XFIXES_SAVE_SET_MODE_DELETE = 1
66 } xcb_xfixes_save_set_mode_t;
67 
68 typedef enum xcb_xfixes_save_set_target_t {
69     XCB_XFIXES_SAVE_SET_TARGET_NEAREST = 0,
70     XCB_XFIXES_SAVE_SET_TARGET_ROOT = 1
71 } xcb_xfixes_save_set_target_t;
72 
73 typedef enum xcb_xfixes_save_set_mapping_t {
74     XCB_XFIXES_SAVE_SET_MAPPING_MAP = 0,
75     XCB_XFIXES_SAVE_SET_MAPPING_UNMAP = 1
76 } xcb_xfixes_save_set_mapping_t;
77 
78 /** Opcode for xcb_xfixes_change_save_set. */
79 #define XCB_XFIXES_CHANGE_SAVE_SET 1
80 
81 /**
82  * @brief xcb_xfixes_change_save_set_request_t
83  **/
84 typedef struct xcb_xfixes_change_save_set_request_t {
85     uint8_t      major_opcode;
86     uint8_t      minor_opcode;
87     uint16_t     length;
88     uint8_t      mode;
89     uint8_t      target;
90     uint8_t      map;
91     uint8_t      pad0;
92     xcb_window_t window;
93 } xcb_xfixes_change_save_set_request_t;
94 
95 typedef enum xcb_xfixes_selection_event_t {
96     XCB_XFIXES_SELECTION_EVENT_SET_SELECTION_OWNER = 0,
97     XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY = 1,
98     XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE = 2
99 } xcb_xfixes_selection_event_t;
100 
101 typedef enum xcb_xfixes_selection_event_mask_t {
102     XCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER = 1,
103     XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY = 2,
104     XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_CLIENT_CLOSE = 4
105 } xcb_xfixes_selection_event_mask_t;
106 
107 /** Opcode for xcb_xfixes_selection_notify. */
108 #define XCB_XFIXES_SELECTION_NOTIFY 0
109 
110 /**
111  * @brief xcb_xfixes_selection_notify_event_t
112  **/
113 typedef struct xcb_xfixes_selection_notify_event_t {
114     uint8_t         response_type;
115     uint8_t         subtype;
116     uint16_t        sequence;
117     xcb_window_t    window;
118     xcb_window_t    owner;
119     xcb_atom_t      selection;
120     xcb_timestamp_t timestamp;
121     xcb_timestamp_t selection_timestamp;
122     uint8_t         pad0[8];
123 } xcb_xfixes_selection_notify_event_t;
124 
125 /** Opcode for xcb_xfixes_select_selection_input. */
126 #define XCB_XFIXES_SELECT_SELECTION_INPUT 2
127 
128 /**
129  * @brief xcb_xfixes_select_selection_input_request_t
130  **/
131 typedef struct xcb_xfixes_select_selection_input_request_t {
132     uint8_t      major_opcode;
133     uint8_t      minor_opcode;
134     uint16_t     length;
135     xcb_window_t window;
136     xcb_atom_t   selection;
137     uint32_t     event_mask;
138 } xcb_xfixes_select_selection_input_request_t;
139 
140 typedef enum xcb_xfixes_cursor_notify_t {
141     XCB_XFIXES_CURSOR_NOTIFY_DISPLAY_CURSOR = 0
142 } xcb_xfixes_cursor_notify_t;
143 
144 typedef enum xcb_xfixes_cursor_notify_mask_t {
145     XCB_XFIXES_CURSOR_NOTIFY_MASK_DISPLAY_CURSOR = 1
146 } xcb_xfixes_cursor_notify_mask_t;
147 
148 /** Opcode for xcb_xfixes_cursor_notify. */
149 #define XCB_XFIXES_CURSOR_NOTIFY 1
150 
151 /**
152  * @brief xcb_xfixes_cursor_notify_event_t
153  **/
154 typedef struct xcb_xfixes_cursor_notify_event_t {
155     uint8_t         response_type;
156     uint8_t         subtype;
157     uint16_t        sequence;
158     xcb_window_t    window;
159     uint32_t        cursor_serial;
160     xcb_timestamp_t timestamp;
161     xcb_atom_t      name;
162     uint8_t         pad0[12];
163 } xcb_xfixes_cursor_notify_event_t;
164 
165 /** Opcode for xcb_xfixes_select_cursor_input. */
166 #define XCB_XFIXES_SELECT_CURSOR_INPUT 3
167 
168 /**
169  * @brief xcb_xfixes_select_cursor_input_request_t
170  **/
171 typedef struct xcb_xfixes_select_cursor_input_request_t {
172     uint8_t      major_opcode;
173     uint8_t      minor_opcode;
174     uint16_t     length;
175     xcb_window_t window;
176     uint32_t     event_mask;
177 } xcb_xfixes_select_cursor_input_request_t;
178 
179 /**
180  * @brief xcb_xfixes_get_cursor_image_cookie_t
181  **/
182 typedef struct xcb_xfixes_get_cursor_image_cookie_t {
183     unsigned int sequence;
184 } xcb_xfixes_get_cursor_image_cookie_t;
185 
186 /** Opcode for xcb_xfixes_get_cursor_image. */
187 #define XCB_XFIXES_GET_CURSOR_IMAGE 4
188 
189 /**
190  * @brief xcb_xfixes_get_cursor_image_request_t
191  **/
192 typedef struct xcb_xfixes_get_cursor_image_request_t {
193     uint8_t  major_opcode;
194     uint8_t  minor_opcode;
195     uint16_t length;
196 } xcb_xfixes_get_cursor_image_request_t;
197 
198 /**
199  * @brief xcb_xfixes_get_cursor_image_reply_t
200  **/
201 typedef struct xcb_xfixes_get_cursor_image_reply_t {
202     uint8_t  response_type;
203     uint8_t  pad0;
204     uint16_t sequence;
205     uint32_t length;
206     int16_t  x;
207     int16_t  y;
208     uint16_t width;
209     uint16_t height;
210     uint16_t xhot;
211     uint16_t yhot;
212     uint32_t cursor_serial;
213     uint8_t  pad1[8];
214 } xcb_xfixes_get_cursor_image_reply_t;
215 
216 typedef uint32_t xcb_xfixes_region_t;
217 
218 /**
219  * @brief xcb_xfixes_region_iterator_t
220  **/
221 typedef struct xcb_xfixes_region_iterator_t {
222     xcb_xfixes_region_t *data;
223     int                  rem;
224     int                  index;
225 } xcb_xfixes_region_iterator_t;
226 
227 /** Opcode for xcb_xfixes_bad_region. */
228 #define XCB_XFIXES_BAD_REGION 0
229 
230 /**
231  * @brief xcb_xfixes_bad_region_error_t
232  **/
233 typedef struct xcb_xfixes_bad_region_error_t {
234     uint8_t  response_type;
235     uint8_t  error_code;
236     uint16_t sequence;
237 } xcb_xfixes_bad_region_error_t;
238 
239 typedef enum xcb_xfixes_region_enum_t {
240     XCB_XFIXES_REGION_NONE = 0
241 } xcb_xfixes_region_enum_t;
242 
243 /** Opcode for xcb_xfixes_create_region. */
244 #define XCB_XFIXES_CREATE_REGION 5
245 
246 /**
247  * @brief xcb_xfixes_create_region_request_t
248  **/
249 typedef struct xcb_xfixes_create_region_request_t {
250     uint8_t             major_opcode;
251     uint8_t             minor_opcode;
252     uint16_t            length;
253     xcb_xfixes_region_t region;
254 } xcb_xfixes_create_region_request_t;
255 
256 /** Opcode for xcb_xfixes_create_region_from_bitmap. */
257 #define XCB_XFIXES_CREATE_REGION_FROM_BITMAP 6
258 
259 /**
260  * @brief xcb_xfixes_create_region_from_bitmap_request_t
261  **/
262 typedef struct xcb_xfixes_create_region_from_bitmap_request_t {
263     uint8_t             major_opcode;
264     uint8_t             minor_opcode;
265     uint16_t            length;
266     xcb_xfixes_region_t region;
267     xcb_pixmap_t        bitmap;
268 } xcb_xfixes_create_region_from_bitmap_request_t;
269 
270 /** Opcode for xcb_xfixes_create_region_from_window. */
271 #define XCB_XFIXES_CREATE_REGION_FROM_WINDOW 7
272 
273 /**
274  * @brief xcb_xfixes_create_region_from_window_request_t
275  **/
276 typedef struct xcb_xfixes_create_region_from_window_request_t {
277     uint8_t             major_opcode;
278     uint8_t             minor_opcode;
279     uint16_t            length;
280     xcb_xfixes_region_t region;
281     xcb_window_t        window;
282     xcb_shape_kind_t    kind;
283     uint8_t             pad0[3];
284 } xcb_xfixes_create_region_from_window_request_t;
285 
286 /** Opcode for xcb_xfixes_create_region_from_gc. */
287 #define XCB_XFIXES_CREATE_REGION_FROM_GC 8
288 
289 /**
290  * @brief xcb_xfixes_create_region_from_gc_request_t
291  **/
292 typedef struct xcb_xfixes_create_region_from_gc_request_t {
293     uint8_t             major_opcode;
294     uint8_t             minor_opcode;
295     uint16_t            length;
296     xcb_xfixes_region_t region;
297     xcb_gcontext_t      gc;
298 } xcb_xfixes_create_region_from_gc_request_t;
299 
300 /** Opcode for xcb_xfixes_create_region_from_picture. */
301 #define XCB_XFIXES_CREATE_REGION_FROM_PICTURE 9
302 
303 /**
304  * @brief xcb_xfixes_create_region_from_picture_request_t
305  **/
306 typedef struct xcb_xfixes_create_region_from_picture_request_t {
307     uint8_t              major_opcode;
308     uint8_t              minor_opcode;
309     uint16_t             length;
310     xcb_xfixes_region_t  region;
311     xcb_render_picture_t picture;
312 } xcb_xfixes_create_region_from_picture_request_t;
313 
314 /** Opcode for xcb_xfixes_destroy_region. */
315 #define XCB_XFIXES_DESTROY_REGION 10
316 
317 /**
318  * @brief xcb_xfixes_destroy_region_request_t
319  **/
320 typedef struct xcb_xfixes_destroy_region_request_t {
321     uint8_t             major_opcode;
322     uint8_t             minor_opcode;
323     uint16_t            length;
324     xcb_xfixes_region_t region;
325 } xcb_xfixes_destroy_region_request_t;
326 
327 /** Opcode for xcb_xfixes_set_region. */
328 #define XCB_XFIXES_SET_REGION 11
329 
330 /**
331  * @brief xcb_xfixes_set_region_request_t
332  **/
333 typedef struct xcb_xfixes_set_region_request_t {
334     uint8_t             major_opcode;
335     uint8_t             minor_opcode;
336     uint16_t            length;
337     xcb_xfixes_region_t region;
338 } xcb_xfixes_set_region_request_t;
339 
340 /** Opcode for xcb_xfixes_copy_region. */
341 #define XCB_XFIXES_COPY_REGION 12
342 
343 /**
344  * @brief xcb_xfixes_copy_region_request_t
345  **/
346 typedef struct xcb_xfixes_copy_region_request_t {
347     uint8_t             major_opcode;
348     uint8_t             minor_opcode;
349     uint16_t            length;
350     xcb_xfixes_region_t source;
351     xcb_xfixes_region_t destination;
352 } xcb_xfixes_copy_region_request_t;
353 
354 /** Opcode for xcb_xfixes_union_region. */
355 #define XCB_XFIXES_UNION_REGION 13
356 
357 /**
358  * @brief xcb_xfixes_union_region_request_t
359  **/
360 typedef struct xcb_xfixes_union_region_request_t {
361     uint8_t             major_opcode;
362     uint8_t             minor_opcode;
363     uint16_t            length;
364     xcb_xfixes_region_t source1;
365     xcb_xfixes_region_t source2;
366     xcb_xfixes_region_t destination;
367 } xcb_xfixes_union_region_request_t;
368 
369 /** Opcode for xcb_xfixes_intersect_region. */
370 #define XCB_XFIXES_INTERSECT_REGION 14
371 
372 /**
373  * @brief xcb_xfixes_intersect_region_request_t
374  **/
375 typedef struct xcb_xfixes_intersect_region_request_t {
376     uint8_t             major_opcode;
377     uint8_t             minor_opcode;
378     uint16_t            length;
379     xcb_xfixes_region_t source1;
380     xcb_xfixes_region_t source2;
381     xcb_xfixes_region_t destination;
382 } xcb_xfixes_intersect_region_request_t;
383 
384 /** Opcode for xcb_xfixes_subtract_region. */
385 #define XCB_XFIXES_SUBTRACT_REGION 15
386 
387 /**
388  * @brief xcb_xfixes_subtract_region_request_t
389  **/
390 typedef struct xcb_xfixes_subtract_region_request_t {
391     uint8_t             major_opcode;
392     uint8_t             minor_opcode;
393     uint16_t            length;
394     xcb_xfixes_region_t source1;
395     xcb_xfixes_region_t source2;
396     xcb_xfixes_region_t destination;
397 } xcb_xfixes_subtract_region_request_t;
398 
399 /** Opcode for xcb_xfixes_invert_region. */
400 #define XCB_XFIXES_INVERT_REGION 16
401 
402 /**
403  * @brief xcb_xfixes_invert_region_request_t
404  **/
405 typedef struct xcb_xfixes_invert_region_request_t {
406     uint8_t             major_opcode;
407     uint8_t             minor_opcode;
408     uint16_t            length;
409     xcb_xfixes_region_t source;
410     xcb_rectangle_t     bounds;
411     xcb_xfixes_region_t destination;
412 } xcb_xfixes_invert_region_request_t;
413 
414 /** Opcode for xcb_xfixes_translate_region. */
415 #define XCB_XFIXES_TRANSLATE_REGION 17
416 
417 /**
418  * @brief xcb_xfixes_translate_region_request_t
419  **/
420 typedef struct xcb_xfixes_translate_region_request_t {
421     uint8_t             major_opcode;
422     uint8_t             minor_opcode;
423     uint16_t            length;
424     xcb_xfixes_region_t region;
425     int16_t             dx;
426     int16_t             dy;
427 } xcb_xfixes_translate_region_request_t;
428 
429 /** Opcode for xcb_xfixes_region_extents. */
430 #define XCB_XFIXES_REGION_EXTENTS 18
431 
432 /**
433  * @brief xcb_xfixes_region_extents_request_t
434  **/
435 typedef struct xcb_xfixes_region_extents_request_t {
436     uint8_t             major_opcode;
437     uint8_t             minor_opcode;
438     uint16_t            length;
439     xcb_xfixes_region_t source;
440     xcb_xfixes_region_t destination;
441 } xcb_xfixes_region_extents_request_t;
442 
443 /**
444  * @brief xcb_xfixes_fetch_region_cookie_t
445  **/
446 typedef struct xcb_xfixes_fetch_region_cookie_t {
447     unsigned int sequence;
448 } xcb_xfixes_fetch_region_cookie_t;
449 
450 /** Opcode for xcb_xfixes_fetch_region. */
451 #define XCB_XFIXES_FETCH_REGION 19
452 
453 /**
454  * @brief xcb_xfixes_fetch_region_request_t
455  **/
456 typedef struct xcb_xfixes_fetch_region_request_t {
457     uint8_t             major_opcode;
458     uint8_t             minor_opcode;
459     uint16_t            length;
460     xcb_xfixes_region_t region;
461 } xcb_xfixes_fetch_region_request_t;
462 
463 /**
464  * @brief xcb_xfixes_fetch_region_reply_t
465  **/
466 typedef struct xcb_xfixes_fetch_region_reply_t {
467     uint8_t         response_type;
468     uint8_t         pad0;
469     uint16_t        sequence;
470     uint32_t        length;
471     xcb_rectangle_t extents;
472     uint8_t         pad1[16];
473 } xcb_xfixes_fetch_region_reply_t;
474 
475 /** Opcode for xcb_xfixes_set_gc_clip_region. */
476 #define XCB_XFIXES_SET_GC_CLIP_REGION 20
477 
478 /**
479  * @brief xcb_xfixes_set_gc_clip_region_request_t
480  **/
481 typedef struct xcb_xfixes_set_gc_clip_region_request_t {
482     uint8_t             major_opcode;
483     uint8_t             minor_opcode;
484     uint16_t            length;
485     xcb_gcontext_t      gc;
486     xcb_xfixes_region_t region;
487     int16_t             x_origin;
488     int16_t             y_origin;
489 } xcb_xfixes_set_gc_clip_region_request_t;
490 
491 /** Opcode for xcb_xfixes_set_window_shape_region. */
492 #define XCB_XFIXES_SET_WINDOW_SHAPE_REGION 21
493 
494 /**
495  * @brief xcb_xfixes_set_window_shape_region_request_t
496  **/
497 typedef struct xcb_xfixes_set_window_shape_region_request_t {
498     uint8_t             major_opcode;
499     uint8_t             minor_opcode;
500     uint16_t            length;
501     xcb_window_t        dest;
502     xcb_shape_kind_t    dest_kind;
503     uint8_t             pad0[3];
504     int16_t             x_offset;
505     int16_t             y_offset;
506     xcb_xfixes_region_t region;
507 } xcb_xfixes_set_window_shape_region_request_t;
508 
509 /** Opcode for xcb_xfixes_set_picture_clip_region. */
510 #define XCB_XFIXES_SET_PICTURE_CLIP_REGION 22
511 
512 /**
513  * @brief xcb_xfixes_set_picture_clip_region_request_t
514  **/
515 typedef struct xcb_xfixes_set_picture_clip_region_request_t {
516     uint8_t              major_opcode;
517     uint8_t              minor_opcode;
518     uint16_t             length;
519     xcb_render_picture_t picture;
520     xcb_xfixes_region_t  region;
521     int16_t              x_origin;
522     int16_t              y_origin;
523 } xcb_xfixes_set_picture_clip_region_request_t;
524 
525 /** Opcode for xcb_xfixes_set_cursor_name. */
526 #define XCB_XFIXES_SET_CURSOR_NAME 23
527 
528 /**
529  * @brief xcb_xfixes_set_cursor_name_request_t
530  **/
531 typedef struct xcb_xfixes_set_cursor_name_request_t {
532     uint8_t      major_opcode;
533     uint8_t      minor_opcode;
534     uint16_t     length;
535     xcb_cursor_t cursor;
536     uint16_t     nbytes;
537     uint8_t      pad0[2];
538 } xcb_xfixes_set_cursor_name_request_t;
539 
540 /**
541  * @brief xcb_xfixes_get_cursor_name_cookie_t
542  **/
543 typedef struct xcb_xfixes_get_cursor_name_cookie_t {
544     unsigned int sequence;
545 } xcb_xfixes_get_cursor_name_cookie_t;
546 
547 /** Opcode for xcb_xfixes_get_cursor_name. */
548 #define XCB_XFIXES_GET_CURSOR_NAME 24
549 
550 /**
551  * @brief xcb_xfixes_get_cursor_name_request_t
552  **/
553 typedef struct xcb_xfixes_get_cursor_name_request_t {
554     uint8_t      major_opcode;
555     uint8_t      minor_opcode;
556     uint16_t     length;
557     xcb_cursor_t cursor;
558 } xcb_xfixes_get_cursor_name_request_t;
559 
560 /**
561  * @brief xcb_xfixes_get_cursor_name_reply_t
562  **/
563 typedef struct xcb_xfixes_get_cursor_name_reply_t {
564     uint8_t    response_type;
565     uint8_t    pad0;
566     uint16_t   sequence;
567     uint32_t   length;
568     xcb_atom_t atom;
569     uint16_t   nbytes;
570     uint8_t    pad1[18];
571 } xcb_xfixes_get_cursor_name_reply_t;
572 
573 /**
574  * @brief xcb_xfixes_get_cursor_image_and_name_cookie_t
575  **/
576 typedef struct xcb_xfixes_get_cursor_image_and_name_cookie_t {
577     unsigned int sequence;
578 } xcb_xfixes_get_cursor_image_and_name_cookie_t;
579 
580 /** Opcode for xcb_xfixes_get_cursor_image_and_name. */
581 #define XCB_XFIXES_GET_CURSOR_IMAGE_AND_NAME 25
582 
583 /**
584  * @brief xcb_xfixes_get_cursor_image_and_name_request_t
585  **/
586 typedef struct xcb_xfixes_get_cursor_image_and_name_request_t {
587     uint8_t  major_opcode;
588     uint8_t  minor_opcode;
589     uint16_t length;
590 } xcb_xfixes_get_cursor_image_and_name_request_t;
591 
592 /**
593  * @brief xcb_xfixes_get_cursor_image_and_name_reply_t
594  **/
595 typedef struct xcb_xfixes_get_cursor_image_and_name_reply_t {
596     uint8_t    response_type;
597     uint8_t    pad0;
598     uint16_t   sequence;
599     uint32_t   length;
600     int16_t    x;
601     int16_t    y;
602     uint16_t   width;
603     uint16_t   height;
604     uint16_t   xhot;
605     uint16_t   yhot;
606     uint32_t   cursor_serial;
607     xcb_atom_t cursor_atom;
608     uint16_t   nbytes;
609     uint8_t    pad1[2];
610 } xcb_xfixes_get_cursor_image_and_name_reply_t;
611 
612 /** Opcode for xcb_xfixes_change_cursor. */
613 #define XCB_XFIXES_CHANGE_CURSOR 26
614 
615 /**
616  * @brief xcb_xfixes_change_cursor_request_t
617  **/
618 typedef struct xcb_xfixes_change_cursor_request_t {
619     uint8_t      major_opcode;
620     uint8_t      minor_opcode;
621     uint16_t     length;
622     xcb_cursor_t source;
623     xcb_cursor_t destination;
624 } xcb_xfixes_change_cursor_request_t;
625 
626 /** Opcode for xcb_xfixes_change_cursor_by_name. */
627 #define XCB_XFIXES_CHANGE_CURSOR_BY_NAME 27
628 
629 /**
630  * @brief xcb_xfixes_change_cursor_by_name_request_t
631  **/
632 typedef struct xcb_xfixes_change_cursor_by_name_request_t {
633     uint8_t      major_opcode;
634     uint8_t      minor_opcode;
635     uint16_t     length;
636     xcb_cursor_t src;
637     uint16_t     nbytes;
638     uint8_t      pad0[2];
639 } xcb_xfixes_change_cursor_by_name_request_t;
640 
641 /** Opcode for xcb_xfixes_expand_region. */
642 #define XCB_XFIXES_EXPAND_REGION 28
643 
644 /**
645  * @brief xcb_xfixes_expand_region_request_t
646  **/
647 typedef struct xcb_xfixes_expand_region_request_t {
648     uint8_t             major_opcode;
649     uint8_t             minor_opcode;
650     uint16_t            length;
651     xcb_xfixes_region_t source;
652     xcb_xfixes_region_t destination;
653     uint16_t            left;
654     uint16_t            right;
655     uint16_t            top;
656     uint16_t            bottom;
657 } xcb_xfixes_expand_region_request_t;
658 
659 /** Opcode for xcb_xfixes_hide_cursor. */
660 #define XCB_XFIXES_HIDE_CURSOR 29
661 
662 /**
663  * @brief xcb_xfixes_hide_cursor_request_t
664  **/
665 typedef struct xcb_xfixes_hide_cursor_request_t {
666     uint8_t      major_opcode;
667     uint8_t      minor_opcode;
668     uint16_t     length;
669     xcb_window_t window;
670 } xcb_xfixes_hide_cursor_request_t;
671 
672 /** Opcode for xcb_xfixes_show_cursor. */
673 #define XCB_XFIXES_SHOW_CURSOR 30
674 
675 /**
676  * @brief xcb_xfixes_show_cursor_request_t
677  **/
678 typedef struct xcb_xfixes_show_cursor_request_t {
679     uint8_t      major_opcode;
680     uint8_t      minor_opcode;
681     uint16_t     length;
682     xcb_window_t window;
683 } xcb_xfixes_show_cursor_request_t;
684 
685 typedef uint32_t xcb_xfixes_barrier_t;
686 
687 /**
688  * @brief xcb_xfixes_barrier_iterator_t
689  **/
690 typedef struct xcb_xfixes_barrier_iterator_t {
691     xcb_xfixes_barrier_t *data;
692     int                   rem;
693     int                   index;
694 } xcb_xfixes_barrier_iterator_t;
695 
696 typedef enum xcb_xfixes_barrier_directions_t {
697     XCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_X = 1,
698     XCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_Y = 2,
699     XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_X = 4,
700     XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_Y = 8
701 } xcb_xfixes_barrier_directions_t;
702 
703 /** Opcode for xcb_xfixes_create_pointer_barrier. */
704 #define XCB_XFIXES_CREATE_POINTER_BARRIER 31
705 
706 /**
707  * @brief xcb_xfixes_create_pointer_barrier_request_t
708  **/
709 typedef struct xcb_xfixes_create_pointer_barrier_request_t {
710     uint8_t              major_opcode;
711     uint8_t              minor_opcode;
712     uint16_t             length;
713     xcb_xfixes_barrier_t barrier;
714     xcb_window_t         window;
715     uint16_t             x1;
716     uint16_t             y1;
717     uint16_t             x2;
718     uint16_t             y2;
719     uint32_t             directions;
720     uint8_t              pad0[2];
721     uint16_t             num_devices;
722 } xcb_xfixes_create_pointer_barrier_request_t;
723 
724 /** Opcode for xcb_xfixes_delete_pointer_barrier. */
725 #define XCB_XFIXES_DELETE_POINTER_BARRIER 32
726 
727 /**
728  * @brief xcb_xfixes_delete_pointer_barrier_request_t
729  **/
730 typedef struct xcb_xfixes_delete_pointer_barrier_request_t {
731     uint8_t              major_opcode;
732     uint8_t              minor_opcode;
733     uint16_t             length;
734     xcb_xfixes_barrier_t barrier;
735 } xcb_xfixes_delete_pointer_barrier_request_t;
736 
737 /**
738  *
739  * @param c The connection
740  * @return A cookie
741  *
742  * Delivers a request to the X server.
743  *
744  */
745 xcb_xfixes_query_version_cookie_t
746 xcb_xfixes_query_version (xcb_connection_t *c,
747                           uint32_t          client_major_version,
748                           uint32_t          client_minor_version);
749 
750 /**
751  *
752  * @param c The connection
753  * @return A cookie
754  *
755  * Delivers a request to the X server.
756  *
757  * This form can be used only if the request will cause
758  * a reply to be generated. Any returned error will be
759  * placed in the event queue.
760  */
761 xcb_xfixes_query_version_cookie_t
762 xcb_xfixes_query_version_unchecked (xcb_connection_t *c,
763                                     uint32_t          client_major_version,
764                                     uint32_t          client_minor_version);
765 
766 /**
767  * Return the reply
768  * @param c      The connection
769  * @param cookie The cookie
770  * @param e      The xcb_generic_error_t supplied
771  *
772  * Returns the reply of the request asked by
773  *
774  * The parameter @p e supplied to this function must be NULL if
775  * xcb_xfixes_query_version_unchecked(). is used.
776  * Otherwise, it stores the error if any.
777  *
778  * The returned value must be freed by the caller using free().
779  */
780 xcb_xfixes_query_version_reply_t *
781 xcb_xfixes_query_version_reply (xcb_connection_t                   *c,
782                                 xcb_xfixes_query_version_cookie_t   cookie  /**< */,
783                                 xcb_generic_error_t               **e);
784 
785 /**
786  *
787  * @param c The connection
788  * @return A cookie
789  *
790  * Delivers a request to the X server.
791  *
792  * This form can be used only if the request will not cause
793  * a reply to be generated. Any returned error will be
794  * saved for handling by xcb_request_check().
795  */
796 xcb_void_cookie_t
797 xcb_xfixes_change_save_set_checked (xcb_connection_t *c,
798                                     uint8_t           mode,
799                                     uint8_t           target,
800                                     uint8_t           map,
801                                     xcb_window_t      window);
802 
803 /**
804  *
805  * @param c The connection
806  * @return A cookie
807  *
808  * Delivers a request to the X server.
809  *
810  */
811 xcb_void_cookie_t
812 xcb_xfixes_change_save_set (xcb_connection_t *c,
813                             uint8_t           mode,
814                             uint8_t           target,
815                             uint8_t           map,
816                             xcb_window_t      window);
817 
818 /**
819  *
820  * @param c The connection
821  * @return A cookie
822  *
823  * Delivers a request to the X server.
824  *
825  * This form can be used only if the request will not cause
826  * a reply to be generated. Any returned error will be
827  * saved for handling by xcb_request_check().
828  */
829 xcb_void_cookie_t
830 xcb_xfixes_select_selection_input_checked (xcb_connection_t *c,
831                                            xcb_window_t      window,
832                                            xcb_atom_t        selection,
833                                            uint32_t          event_mask);
834 
835 /**
836  *
837  * @param c The connection
838  * @return A cookie
839  *
840  * Delivers a request to the X server.
841  *
842  */
843 xcb_void_cookie_t
844 xcb_xfixes_select_selection_input (xcb_connection_t *c,
845                                    xcb_window_t      window,
846                                    xcb_atom_t        selection,
847                                    uint32_t          event_mask);
848 
849 /**
850  *
851  * @param c The connection
852  * @return A cookie
853  *
854  * Delivers a request to the X server.
855  *
856  * This form can be used only if the request will not cause
857  * a reply to be generated. Any returned error will be
858  * saved for handling by xcb_request_check().
859  */
860 xcb_void_cookie_t
861 xcb_xfixes_select_cursor_input_checked (xcb_connection_t *c,
862                                         xcb_window_t      window,
863                                         uint32_t          event_mask);
864 
865 /**
866  *
867  * @param c The connection
868  * @return A cookie
869  *
870  * Delivers a request to the X server.
871  *
872  */
873 xcb_void_cookie_t
874 xcb_xfixes_select_cursor_input (xcb_connection_t *c,
875                                 xcb_window_t      window,
876                                 uint32_t          event_mask);
877 
878 int
879 xcb_xfixes_get_cursor_image_sizeof (const void  *_buffer);
880 
881 /**
882  *
883  * @param c The connection
884  * @return A cookie
885  *
886  * Delivers a request to the X server.
887  *
888  */
889 xcb_xfixes_get_cursor_image_cookie_t
890 xcb_xfixes_get_cursor_image (xcb_connection_t *c);
891 
892 /**
893  *
894  * @param c The connection
895  * @return A cookie
896  *
897  * Delivers a request to the X server.
898  *
899  * This form can be used only if the request will cause
900  * a reply to be generated. Any returned error will be
901  * placed in the event queue.
902  */
903 xcb_xfixes_get_cursor_image_cookie_t
904 xcb_xfixes_get_cursor_image_unchecked (xcb_connection_t *c);
905 
906 uint32_t *
907 xcb_xfixes_get_cursor_image_cursor_image (const xcb_xfixes_get_cursor_image_reply_t *R);
908 
909 int
910 xcb_xfixes_get_cursor_image_cursor_image_length (const xcb_xfixes_get_cursor_image_reply_t *R);
911 
912 xcb_generic_iterator_t
913 xcb_xfixes_get_cursor_image_cursor_image_end (const xcb_xfixes_get_cursor_image_reply_t *R);
914 
915 /**
916  * Return the reply
917  * @param c      The connection
918  * @param cookie The cookie
919  * @param e      The xcb_generic_error_t supplied
920  *
921  * Returns the reply of the request asked by
922  *
923  * The parameter @p e supplied to this function must be NULL if
924  * xcb_xfixes_get_cursor_image_unchecked(). is used.
925  * Otherwise, it stores the error if any.
926  *
927  * The returned value must be freed by the caller using free().
928  */
929 xcb_xfixes_get_cursor_image_reply_t *
930 xcb_xfixes_get_cursor_image_reply (xcb_connection_t                      *c,
931                                    xcb_xfixes_get_cursor_image_cookie_t   cookie  /**< */,
932                                    xcb_generic_error_t                  **e);
933 
934 /**
935  * Get the next element of the iterator
936  * @param i Pointer to a xcb_xfixes_region_iterator_t
937  *
938  * Get the next element in the iterator. The member rem is
939  * decreased by one. The member data points to the next
940  * element. The member index is increased by sizeof(xcb_xfixes_region_t)
941  */
942 void
943 xcb_xfixes_region_next (xcb_xfixes_region_iterator_t *i);
944 
945 /**
946  * Return the iterator pointing to the last element
947  * @param i An xcb_xfixes_region_iterator_t
948  * @return  The iterator pointing to the last element
949  *
950  * Set the current element in the iterator to the last element.
951  * The member rem is set to 0. The member data points to the
952  * last element.
953  */
954 xcb_generic_iterator_t
955 xcb_xfixes_region_end (xcb_xfixes_region_iterator_t i);
956 
957 int
958 xcb_xfixes_create_region_sizeof (const void  *_buffer,
959                                  uint32_t     rectangles_len);
960 
961 /**
962  *
963  * @param c The connection
964  * @return A cookie
965  *
966  * Delivers a request to the X server.
967  *
968  * This form can be used only if the request will not cause
969  * a reply to be generated. Any returned error will be
970  * saved for handling by xcb_request_check().
971  */
972 xcb_void_cookie_t
973 xcb_xfixes_create_region_checked (xcb_connection_t      *c,
974                                   xcb_xfixes_region_t    region,
975                                   uint32_t               rectangles_len,
976                                   const xcb_rectangle_t *rectangles);
977 
978 /**
979  *
980  * @param c The connection
981  * @return A cookie
982  *
983  * Delivers a request to the X server.
984  *
985  */
986 xcb_void_cookie_t
987 xcb_xfixes_create_region (xcb_connection_t      *c,
988                           xcb_xfixes_region_t    region,
989                           uint32_t               rectangles_len,
990                           const xcb_rectangle_t *rectangles);
991 
992 xcb_rectangle_t *
993 xcb_xfixes_create_region_rectangles (const xcb_xfixes_create_region_request_t *R);
994 
995 int
996 xcb_xfixes_create_region_rectangles_length (const xcb_xfixes_create_region_request_t *R);
997 
998 xcb_rectangle_iterator_t
999 xcb_xfixes_create_region_rectangles_iterator (const xcb_xfixes_create_region_request_t *R);
1000 
1001 /**
1002  *
1003  * @param c The connection
1004  * @return A cookie
1005  *
1006  * Delivers a request to the X server.
1007  *
1008  * This form can be used only if the request will not cause
1009  * a reply to be generated. Any returned error will be
1010  * saved for handling by xcb_request_check().
1011  */
1012 xcb_void_cookie_t
1013 xcb_xfixes_create_region_from_bitmap_checked (xcb_connection_t    *c,
1014                                               xcb_xfixes_region_t  region,
1015                                               xcb_pixmap_t         bitmap);
1016 
1017 /**
1018  *
1019  * @param c The connection
1020  * @return A cookie
1021  *
1022  * Delivers a request to the X server.
1023  *
1024  */
1025 xcb_void_cookie_t
1026 xcb_xfixes_create_region_from_bitmap (xcb_connection_t    *c,
1027                                       xcb_xfixes_region_t  region,
1028                                       xcb_pixmap_t         bitmap);
1029 
1030 /**
1031  *
1032  * @param c The connection
1033  * @return A cookie
1034  *
1035  * Delivers a request to the X server.
1036  *
1037  * This form can be used only if the request will not cause
1038  * a reply to be generated. Any returned error will be
1039  * saved for handling by xcb_request_check().
1040  */
1041 xcb_void_cookie_t
1042 xcb_xfixes_create_region_from_window_checked (xcb_connection_t    *c,
1043                                               xcb_xfixes_region_t  region,
1044                                               xcb_window_t         window,
1045                                               xcb_shape_kind_t     kind);
1046 
1047 /**
1048  *
1049  * @param c The connection
1050  * @return A cookie
1051  *
1052  * Delivers a request to the X server.
1053  *
1054  */
1055 xcb_void_cookie_t
1056 xcb_xfixes_create_region_from_window (xcb_connection_t    *c,
1057                                       xcb_xfixes_region_t  region,
1058                                       xcb_window_t         window,
1059                                       xcb_shape_kind_t     kind);
1060 
1061 /**
1062  *
1063  * @param c The connection
1064  * @return A cookie
1065  *
1066  * Delivers a request to the X server.
1067  *
1068  * This form can be used only if the request will not cause
1069  * a reply to be generated. Any returned error will be
1070  * saved for handling by xcb_request_check().
1071  */
1072 xcb_void_cookie_t
1073 xcb_xfixes_create_region_from_gc_checked (xcb_connection_t    *c,
1074                                           xcb_xfixes_region_t  region,
1075                                           xcb_gcontext_t       gc);
1076 
1077 /**
1078  *
1079  * @param c The connection
1080  * @return A cookie
1081  *
1082  * Delivers a request to the X server.
1083  *
1084  */
1085 xcb_void_cookie_t
1086 xcb_xfixes_create_region_from_gc (xcb_connection_t    *c,
1087                                   xcb_xfixes_region_t  region,
1088                                   xcb_gcontext_t       gc);
1089 
1090 /**
1091  *
1092  * @param c The connection
1093  * @return A cookie
1094  *
1095  * Delivers a request to the X server.
1096  *
1097  * This form can be used only if the request will not cause
1098  * a reply to be generated. Any returned error will be
1099  * saved for handling by xcb_request_check().
1100  */
1101 xcb_void_cookie_t
1102 xcb_xfixes_create_region_from_picture_checked (xcb_connection_t     *c,
1103                                                xcb_xfixes_region_t   region,
1104                                                xcb_render_picture_t  picture);
1105 
1106 /**
1107  *
1108  * @param c The connection
1109  * @return A cookie
1110  *
1111  * Delivers a request to the X server.
1112  *
1113  */
1114 xcb_void_cookie_t
1115 xcb_xfixes_create_region_from_picture (xcb_connection_t     *c,
1116                                        xcb_xfixes_region_t   region,
1117                                        xcb_render_picture_t  picture);
1118 
1119 /**
1120  *
1121  * @param c The connection
1122  * @return A cookie
1123  *
1124  * Delivers a request to the X server.
1125  *
1126  * This form can be used only if the request will not cause
1127  * a reply to be generated. Any returned error will be
1128  * saved for handling by xcb_request_check().
1129  */
1130 xcb_void_cookie_t
1131 xcb_xfixes_destroy_region_checked (xcb_connection_t    *c,
1132                                    xcb_xfixes_region_t  region);
1133 
1134 /**
1135  *
1136  * @param c The connection
1137  * @return A cookie
1138  *
1139  * Delivers a request to the X server.
1140  *
1141  */
1142 xcb_void_cookie_t
1143 xcb_xfixes_destroy_region (xcb_connection_t    *c,
1144                            xcb_xfixes_region_t  region);
1145 
1146 int
1147 xcb_xfixes_set_region_sizeof (const void  *_buffer,
1148                               uint32_t     rectangles_len);
1149 
1150 /**
1151  *
1152  * @param c The connection
1153  * @return A cookie
1154  *
1155  * Delivers a request to the X server.
1156  *
1157  * This form can be used only if the request will not cause
1158  * a reply to be generated. Any returned error will be
1159  * saved for handling by xcb_request_check().
1160  */
1161 xcb_void_cookie_t
1162 xcb_xfixes_set_region_checked (xcb_connection_t      *c,
1163                                xcb_xfixes_region_t    region,
1164                                uint32_t               rectangles_len,
1165                                const xcb_rectangle_t *rectangles);
1166 
1167 /**
1168  *
1169  * @param c The connection
1170  * @return A cookie
1171  *
1172  * Delivers a request to the X server.
1173  *
1174  */
1175 xcb_void_cookie_t
1176 xcb_xfixes_set_region (xcb_connection_t      *c,
1177                        xcb_xfixes_region_t    region,
1178                        uint32_t               rectangles_len,
1179                        const xcb_rectangle_t *rectangles);
1180 
1181 xcb_rectangle_t *
1182 xcb_xfixes_set_region_rectangles (const xcb_xfixes_set_region_request_t *R);
1183 
1184 int
1185 xcb_xfixes_set_region_rectangles_length (const xcb_xfixes_set_region_request_t *R);
1186 
1187 xcb_rectangle_iterator_t
1188 xcb_xfixes_set_region_rectangles_iterator (const xcb_xfixes_set_region_request_t *R);
1189 
1190 /**
1191  *
1192  * @param c The connection
1193  * @return A cookie
1194  *
1195  * Delivers a request to the X server.
1196  *
1197  * This form can be used only if the request will not cause
1198  * a reply to be generated. Any returned error will be
1199  * saved for handling by xcb_request_check().
1200  */
1201 xcb_void_cookie_t
1202 xcb_xfixes_copy_region_checked (xcb_connection_t    *c,
1203                                 xcb_xfixes_region_t  source,
1204                                 xcb_xfixes_region_t  destination);
1205 
1206 /**
1207  *
1208  * @param c The connection
1209  * @return A cookie
1210  *
1211  * Delivers a request to the X server.
1212  *
1213  */
1214 xcb_void_cookie_t
1215 xcb_xfixes_copy_region (xcb_connection_t    *c,
1216                         xcb_xfixes_region_t  source,
1217                         xcb_xfixes_region_t  destination);
1218 
1219 /**
1220  *
1221  * @param c The connection
1222  * @return A cookie
1223  *
1224  * Delivers a request to the X server.
1225  *
1226  * This form can be used only if the request will not cause
1227  * a reply to be generated. Any returned error will be
1228  * saved for handling by xcb_request_check().
1229  */
1230 xcb_void_cookie_t
1231 xcb_xfixes_union_region_checked (xcb_connection_t    *c,
1232                                  xcb_xfixes_region_t  source1,
1233                                  xcb_xfixes_region_t  source2,
1234                                  xcb_xfixes_region_t  destination);
1235 
1236 /**
1237  *
1238  * @param c The connection
1239  * @return A cookie
1240  *
1241  * Delivers a request to the X server.
1242  *
1243  */
1244 xcb_void_cookie_t
1245 xcb_xfixes_union_region (xcb_connection_t    *c,
1246                          xcb_xfixes_region_t  source1,
1247                          xcb_xfixes_region_t  source2,
1248                          xcb_xfixes_region_t  destination);
1249 
1250 /**
1251  *
1252  * @param c The connection
1253  * @return A cookie
1254  *
1255  * Delivers a request to the X server.
1256  *
1257  * This form can be used only if the request will not cause
1258  * a reply to be generated. Any returned error will be
1259  * saved for handling by xcb_request_check().
1260  */
1261 xcb_void_cookie_t
1262 xcb_xfixes_intersect_region_checked (xcb_connection_t    *c,
1263                                      xcb_xfixes_region_t  source1,
1264                                      xcb_xfixes_region_t  source2,
1265                                      xcb_xfixes_region_t  destination);
1266 
1267 /**
1268  *
1269  * @param c The connection
1270  * @return A cookie
1271  *
1272  * Delivers a request to the X server.
1273  *
1274  */
1275 xcb_void_cookie_t
1276 xcb_xfixes_intersect_region (xcb_connection_t    *c,
1277                              xcb_xfixes_region_t  source1,
1278                              xcb_xfixes_region_t  source2,
1279                              xcb_xfixes_region_t  destination);
1280 
1281 /**
1282  *
1283  * @param c The connection
1284  * @return A cookie
1285  *
1286  * Delivers a request to the X server.
1287  *
1288  * This form can be used only if the request will not cause
1289  * a reply to be generated. Any returned error will be
1290  * saved for handling by xcb_request_check().
1291  */
1292 xcb_void_cookie_t
1293 xcb_xfixes_subtract_region_checked (xcb_connection_t    *c,
1294                                     xcb_xfixes_region_t  source1,
1295                                     xcb_xfixes_region_t  source2,
1296                                     xcb_xfixes_region_t  destination);
1297 
1298 /**
1299  *
1300  * @param c The connection
1301  * @return A cookie
1302  *
1303  * Delivers a request to the X server.
1304  *
1305  */
1306 xcb_void_cookie_t
1307 xcb_xfixes_subtract_region (xcb_connection_t    *c,
1308                             xcb_xfixes_region_t  source1,
1309                             xcb_xfixes_region_t  source2,
1310                             xcb_xfixes_region_t  destination);
1311 
1312 /**
1313  *
1314  * @param c The connection
1315  * @return A cookie
1316  *
1317  * Delivers a request to the X server.
1318  *
1319  * This form can be used only if the request will not cause
1320  * a reply to be generated. Any returned error will be
1321  * saved for handling by xcb_request_check().
1322  */
1323 xcb_void_cookie_t
1324 xcb_xfixes_invert_region_checked (xcb_connection_t    *c,
1325                                   xcb_xfixes_region_t  source,
1326                                   xcb_rectangle_t      bounds,
1327                                   xcb_xfixes_region_t  destination);
1328 
1329 /**
1330  *
1331  * @param c The connection
1332  * @return A cookie
1333  *
1334  * Delivers a request to the X server.
1335  *
1336  */
1337 xcb_void_cookie_t
1338 xcb_xfixes_invert_region (xcb_connection_t    *c,
1339                           xcb_xfixes_region_t  source,
1340                           xcb_rectangle_t      bounds,
1341                           xcb_xfixes_region_t  destination);
1342 
1343 /**
1344  *
1345  * @param c The connection
1346  * @return A cookie
1347  *
1348  * Delivers a request to the X server.
1349  *
1350  * This form can be used only if the request will not cause
1351  * a reply to be generated. Any returned error will be
1352  * saved for handling by xcb_request_check().
1353  */
1354 xcb_void_cookie_t
1355 xcb_xfixes_translate_region_checked (xcb_connection_t    *c,
1356                                      xcb_xfixes_region_t  region,
1357                                      int16_t              dx,
1358                                      int16_t              dy);
1359 
1360 /**
1361  *
1362  * @param c The connection
1363  * @return A cookie
1364  *
1365  * Delivers a request to the X server.
1366  *
1367  */
1368 xcb_void_cookie_t
1369 xcb_xfixes_translate_region (xcb_connection_t    *c,
1370                              xcb_xfixes_region_t  region,
1371                              int16_t              dx,
1372                              int16_t              dy);
1373 
1374 /**
1375  *
1376  * @param c The connection
1377  * @return A cookie
1378  *
1379  * Delivers a request to the X server.
1380  *
1381  * This form can be used only if the request will not cause
1382  * a reply to be generated. Any returned error will be
1383  * saved for handling by xcb_request_check().
1384  */
1385 xcb_void_cookie_t
1386 xcb_xfixes_region_extents_checked (xcb_connection_t    *c,
1387                                    xcb_xfixes_region_t  source,
1388                                    xcb_xfixes_region_t  destination);
1389 
1390 /**
1391  *
1392  * @param c The connection
1393  * @return A cookie
1394  *
1395  * Delivers a request to the X server.
1396  *
1397  */
1398 xcb_void_cookie_t
1399 xcb_xfixes_region_extents (xcb_connection_t    *c,
1400                            xcb_xfixes_region_t  source,
1401                            xcb_xfixes_region_t  destination);
1402 
1403 int
1404 xcb_xfixes_fetch_region_sizeof (const void  *_buffer);
1405 
1406 /**
1407  *
1408  * @param c The connection
1409  * @return A cookie
1410  *
1411  * Delivers a request to the X server.
1412  *
1413  */
1414 xcb_xfixes_fetch_region_cookie_t
1415 xcb_xfixes_fetch_region (xcb_connection_t    *c,
1416                          xcb_xfixes_region_t  region);
1417 
1418 /**
1419  *
1420  * @param c The connection
1421  * @return A cookie
1422  *
1423  * Delivers a request to the X server.
1424  *
1425  * This form can be used only if the request will cause
1426  * a reply to be generated. Any returned error will be
1427  * placed in the event queue.
1428  */
1429 xcb_xfixes_fetch_region_cookie_t
1430 xcb_xfixes_fetch_region_unchecked (xcb_connection_t    *c,
1431                                    xcb_xfixes_region_t  region);
1432 
1433 xcb_rectangle_t *
1434 xcb_xfixes_fetch_region_rectangles (const xcb_xfixes_fetch_region_reply_t *R);
1435 
1436 int
1437 xcb_xfixes_fetch_region_rectangles_length (const xcb_xfixes_fetch_region_reply_t *R);
1438 
1439 xcb_rectangle_iterator_t
1440 xcb_xfixes_fetch_region_rectangles_iterator (const xcb_xfixes_fetch_region_reply_t *R);
1441 
1442 /**
1443  * Return the reply
1444  * @param c      The connection
1445  * @param cookie The cookie
1446  * @param e      The xcb_generic_error_t supplied
1447  *
1448  * Returns the reply of the request asked by
1449  *
1450  * The parameter @p e supplied to this function must be NULL if
1451  * xcb_xfixes_fetch_region_unchecked(). is used.
1452  * Otherwise, it stores the error if any.
1453  *
1454  * The returned value must be freed by the caller using free().
1455  */
1456 xcb_xfixes_fetch_region_reply_t *
1457 xcb_xfixes_fetch_region_reply (xcb_connection_t                  *c,
1458                                xcb_xfixes_fetch_region_cookie_t   cookie  /**< */,
1459                                xcb_generic_error_t              **e);
1460 
1461 /**
1462  *
1463  * @param c The connection
1464  * @return A cookie
1465  *
1466  * Delivers a request to the X server.
1467  *
1468  * This form can be used only if the request will not cause
1469  * a reply to be generated. Any returned error will be
1470  * saved for handling by xcb_request_check().
1471  */
1472 xcb_void_cookie_t
1473 xcb_xfixes_set_gc_clip_region_checked (xcb_connection_t    *c,
1474                                        xcb_gcontext_t       gc,
1475                                        xcb_xfixes_region_t  region,
1476                                        int16_t              x_origin,
1477                                        int16_t              y_origin);
1478 
1479 /**
1480  *
1481  * @param c The connection
1482  * @return A cookie
1483  *
1484  * Delivers a request to the X server.
1485  *
1486  */
1487 xcb_void_cookie_t
1488 xcb_xfixes_set_gc_clip_region (xcb_connection_t    *c,
1489                                xcb_gcontext_t       gc,
1490                                xcb_xfixes_region_t  region,
1491                                int16_t              x_origin,
1492                                int16_t              y_origin);
1493 
1494 /**
1495  *
1496  * @param c The connection
1497  * @return A cookie
1498  *
1499  * Delivers a request to the X server.
1500  *
1501  * This form can be used only if the request will not cause
1502  * a reply to be generated. Any returned error will be
1503  * saved for handling by xcb_request_check().
1504  */
1505 xcb_void_cookie_t
1506 xcb_xfixes_set_window_shape_region_checked (xcb_connection_t    *c,
1507                                             xcb_window_t         dest,
1508                                             xcb_shape_kind_t     dest_kind,
1509                                             int16_t              x_offset,
1510                                             int16_t              y_offset,
1511                                             xcb_xfixes_region_t  region);
1512 
1513 /**
1514  *
1515  * @param c The connection
1516  * @return A cookie
1517  *
1518  * Delivers a request to the X server.
1519  *
1520  */
1521 xcb_void_cookie_t
1522 xcb_xfixes_set_window_shape_region (xcb_connection_t    *c,
1523                                     xcb_window_t         dest,
1524                                     xcb_shape_kind_t     dest_kind,
1525                                     int16_t              x_offset,
1526                                     int16_t              y_offset,
1527                                     xcb_xfixes_region_t  region);
1528 
1529 /**
1530  *
1531  * @param c The connection
1532  * @return A cookie
1533  *
1534  * Delivers a request to the X server.
1535  *
1536  * This form can be used only if the request will not cause
1537  * a reply to be generated. Any returned error will be
1538  * saved for handling by xcb_request_check().
1539  */
1540 xcb_void_cookie_t
1541 xcb_xfixes_set_picture_clip_region_checked (xcb_connection_t     *c,
1542                                             xcb_render_picture_t  picture,
1543                                             xcb_xfixes_region_t   region,
1544                                             int16_t               x_origin,
1545                                             int16_t               y_origin);
1546 
1547 /**
1548  *
1549  * @param c The connection
1550  * @return A cookie
1551  *
1552  * Delivers a request to the X server.
1553  *
1554  */
1555 xcb_void_cookie_t
1556 xcb_xfixes_set_picture_clip_region (xcb_connection_t     *c,
1557                                     xcb_render_picture_t  picture,
1558                                     xcb_xfixes_region_t   region,
1559                                     int16_t               x_origin,
1560                                     int16_t               y_origin);
1561 
1562 int
1563 xcb_xfixes_set_cursor_name_sizeof (const void  *_buffer);
1564 
1565 /**
1566  *
1567  * @param c The connection
1568  * @return A cookie
1569  *
1570  * Delivers a request to the X server.
1571  *
1572  * This form can be used only if the request will not cause
1573  * a reply to be generated. Any returned error will be
1574  * saved for handling by xcb_request_check().
1575  */
1576 xcb_void_cookie_t
1577 xcb_xfixes_set_cursor_name_checked (xcb_connection_t *c,
1578                                     xcb_cursor_t      cursor,
1579                                     uint16_t          nbytes,
1580                                     const char       *name);
1581 
1582 /**
1583  *
1584  * @param c The connection
1585  * @return A cookie
1586  *
1587  * Delivers a request to the X server.
1588  *
1589  */
1590 xcb_void_cookie_t
1591 xcb_xfixes_set_cursor_name (xcb_connection_t *c,
1592                             xcb_cursor_t      cursor,
1593                             uint16_t          nbytes,
1594                             const char       *name);
1595 
1596 char *
1597 xcb_xfixes_set_cursor_name_name (const xcb_xfixes_set_cursor_name_request_t *R);
1598 
1599 int
1600 xcb_xfixes_set_cursor_name_name_length (const xcb_xfixes_set_cursor_name_request_t *R);
1601 
1602 xcb_generic_iterator_t
1603 xcb_xfixes_set_cursor_name_name_end (const xcb_xfixes_set_cursor_name_request_t *R);
1604 
1605 int
1606 xcb_xfixes_get_cursor_name_sizeof (const void  *_buffer);
1607 
1608 /**
1609  *
1610  * @param c The connection
1611  * @return A cookie
1612  *
1613  * Delivers a request to the X server.
1614  *
1615  */
1616 xcb_xfixes_get_cursor_name_cookie_t
1617 xcb_xfixes_get_cursor_name (xcb_connection_t *c,
1618                             xcb_cursor_t      cursor);
1619 
1620 /**
1621  *
1622  * @param c The connection
1623  * @return A cookie
1624  *
1625  * Delivers a request to the X server.
1626  *
1627  * This form can be used only if the request will cause
1628  * a reply to be generated. Any returned error will be
1629  * placed in the event queue.
1630  */
1631 xcb_xfixes_get_cursor_name_cookie_t
1632 xcb_xfixes_get_cursor_name_unchecked (xcb_connection_t *c,
1633                                       xcb_cursor_t      cursor);
1634 
1635 char *
1636 xcb_xfixes_get_cursor_name_name (const xcb_xfixes_get_cursor_name_reply_t *R);
1637 
1638 int
1639 xcb_xfixes_get_cursor_name_name_length (const xcb_xfixes_get_cursor_name_reply_t *R);
1640 
1641 xcb_generic_iterator_t
1642 xcb_xfixes_get_cursor_name_name_end (const xcb_xfixes_get_cursor_name_reply_t *R);
1643 
1644 /**
1645  * Return the reply
1646  * @param c      The connection
1647  * @param cookie The cookie
1648  * @param e      The xcb_generic_error_t supplied
1649  *
1650  * Returns the reply of the request asked by
1651  *
1652  * The parameter @p e supplied to this function must be NULL if
1653  * xcb_xfixes_get_cursor_name_unchecked(). is used.
1654  * Otherwise, it stores the error if any.
1655  *
1656  * The returned value must be freed by the caller using free().
1657  */
1658 xcb_xfixes_get_cursor_name_reply_t *
1659 xcb_xfixes_get_cursor_name_reply (xcb_connection_t                     *c,
1660                                   xcb_xfixes_get_cursor_name_cookie_t   cookie  /**< */,
1661                                   xcb_generic_error_t                 **e);
1662 
1663 int
1664 xcb_xfixes_get_cursor_image_and_name_sizeof (const void  *_buffer);
1665 
1666 /**
1667  *
1668  * @param c The connection
1669  * @return A cookie
1670  *
1671  * Delivers a request to the X server.
1672  *
1673  */
1674 xcb_xfixes_get_cursor_image_and_name_cookie_t
1675 xcb_xfixes_get_cursor_image_and_name (xcb_connection_t *c);
1676 
1677 /**
1678  *
1679  * @param c The connection
1680  * @return A cookie
1681  *
1682  * Delivers a request to the X server.
1683  *
1684  * This form can be used only if the request will cause
1685  * a reply to be generated. Any returned error will be
1686  * placed in the event queue.
1687  */
1688 xcb_xfixes_get_cursor_image_and_name_cookie_t
1689 xcb_xfixes_get_cursor_image_and_name_unchecked (xcb_connection_t *c);
1690 
1691 uint32_t *
1692 xcb_xfixes_get_cursor_image_and_name_cursor_image (const xcb_xfixes_get_cursor_image_and_name_reply_t *R);
1693 
1694 int
1695 xcb_xfixes_get_cursor_image_and_name_cursor_image_length (const xcb_xfixes_get_cursor_image_and_name_reply_t *R);
1696 
1697 xcb_generic_iterator_t
1698 xcb_xfixes_get_cursor_image_and_name_cursor_image_end (const xcb_xfixes_get_cursor_image_and_name_reply_t *R);
1699 
1700 char *
1701 xcb_xfixes_get_cursor_image_and_name_name (const xcb_xfixes_get_cursor_image_and_name_reply_t *R);
1702 
1703 int
1704 xcb_xfixes_get_cursor_image_and_name_name_length (const xcb_xfixes_get_cursor_image_and_name_reply_t *R);
1705 
1706 xcb_generic_iterator_t
1707 xcb_xfixes_get_cursor_image_and_name_name_end (const xcb_xfixes_get_cursor_image_and_name_reply_t *R);
1708 
1709 /**
1710  * Return the reply
1711  * @param c      The connection
1712  * @param cookie The cookie
1713  * @param e      The xcb_generic_error_t supplied
1714  *
1715  * Returns the reply of the request asked by
1716  *
1717  * The parameter @p e supplied to this function must be NULL if
1718  * xcb_xfixes_get_cursor_image_and_name_unchecked(). is used.
1719  * Otherwise, it stores the error if any.
1720  *
1721  * The returned value must be freed by the caller using free().
1722  */
1723 xcb_xfixes_get_cursor_image_and_name_reply_t *
1724 xcb_xfixes_get_cursor_image_and_name_reply (xcb_connection_t                               *c,
1725                                             xcb_xfixes_get_cursor_image_and_name_cookie_t   cookie  /**< */,
1726                                             xcb_generic_error_t                           **e);
1727 
1728 /**
1729  *
1730  * @param c The connection
1731  * @return A cookie
1732  *
1733  * Delivers a request to the X server.
1734  *
1735  * This form can be used only if the request will not cause
1736  * a reply to be generated. Any returned error will be
1737  * saved for handling by xcb_request_check().
1738  */
1739 xcb_void_cookie_t
1740 xcb_xfixes_change_cursor_checked (xcb_connection_t *c,
1741                                   xcb_cursor_t      source,
1742                                   xcb_cursor_t      destination);
1743 
1744 /**
1745  *
1746  * @param c The connection
1747  * @return A cookie
1748  *
1749  * Delivers a request to the X server.
1750  *
1751  */
1752 xcb_void_cookie_t
1753 xcb_xfixes_change_cursor (xcb_connection_t *c,
1754                           xcb_cursor_t      source,
1755                           xcb_cursor_t      destination);
1756 
1757 int
1758 xcb_xfixes_change_cursor_by_name_sizeof (const void  *_buffer);
1759 
1760 /**
1761  *
1762  * @param c The connection
1763  * @return A cookie
1764  *
1765  * Delivers a request to the X server.
1766  *
1767  * This form can be used only if the request will not cause
1768  * a reply to be generated. Any returned error will be
1769  * saved for handling by xcb_request_check().
1770  */
1771 xcb_void_cookie_t
1772 xcb_xfixes_change_cursor_by_name_checked (xcb_connection_t *c,
1773                                           xcb_cursor_t      src,
1774                                           uint16_t          nbytes,
1775                                           const char       *name);
1776 
1777 /**
1778  *
1779  * @param c The connection
1780  * @return A cookie
1781  *
1782  * Delivers a request to the X server.
1783  *
1784  */
1785 xcb_void_cookie_t
1786 xcb_xfixes_change_cursor_by_name (xcb_connection_t *c,
1787                                   xcb_cursor_t      src,
1788                                   uint16_t          nbytes,
1789                                   const char       *name);
1790 
1791 char *
1792 xcb_xfixes_change_cursor_by_name_name (const xcb_xfixes_change_cursor_by_name_request_t *R);
1793 
1794 int
1795 xcb_xfixes_change_cursor_by_name_name_length (const xcb_xfixes_change_cursor_by_name_request_t *R);
1796 
1797 xcb_generic_iterator_t
1798 xcb_xfixes_change_cursor_by_name_name_end (const xcb_xfixes_change_cursor_by_name_request_t *R);
1799 
1800 /**
1801  *
1802  * @param c The connection
1803  * @return A cookie
1804  *
1805  * Delivers a request to the X server.
1806  *
1807  * This form can be used only if the request will not cause
1808  * a reply to be generated. Any returned error will be
1809  * saved for handling by xcb_request_check().
1810  */
1811 xcb_void_cookie_t
1812 xcb_xfixes_expand_region_checked (xcb_connection_t    *c,
1813                                   xcb_xfixes_region_t  source,
1814                                   xcb_xfixes_region_t  destination,
1815                                   uint16_t             left,
1816                                   uint16_t             right,
1817                                   uint16_t             top,
1818                                   uint16_t             bottom);
1819 
1820 /**
1821  *
1822  * @param c The connection
1823  * @return A cookie
1824  *
1825  * Delivers a request to the X server.
1826  *
1827  */
1828 xcb_void_cookie_t
1829 xcb_xfixes_expand_region (xcb_connection_t    *c,
1830                           xcb_xfixes_region_t  source,
1831                           xcb_xfixes_region_t  destination,
1832                           uint16_t             left,
1833                           uint16_t             right,
1834                           uint16_t             top,
1835                           uint16_t             bottom);
1836 
1837 /**
1838  *
1839  * @param c The connection
1840  * @return A cookie
1841  *
1842  * Delivers a request to the X server.
1843  *
1844  * This form can be used only if the request will not cause
1845  * a reply to be generated. Any returned error will be
1846  * saved for handling by xcb_request_check().
1847  */
1848 xcb_void_cookie_t
1849 xcb_xfixes_hide_cursor_checked (xcb_connection_t *c,
1850                                 xcb_window_t      window);
1851 
1852 /**
1853  *
1854  * @param c The connection
1855  * @return A cookie
1856  *
1857  * Delivers a request to the X server.
1858  *
1859  */
1860 xcb_void_cookie_t
1861 xcb_xfixes_hide_cursor (xcb_connection_t *c,
1862                         xcb_window_t      window);
1863 
1864 /**
1865  *
1866  * @param c The connection
1867  * @return A cookie
1868  *
1869  * Delivers a request to the X server.
1870  *
1871  * This form can be used only if the request will not cause
1872  * a reply to be generated. Any returned error will be
1873  * saved for handling by xcb_request_check().
1874  */
1875 xcb_void_cookie_t
1876 xcb_xfixes_show_cursor_checked (xcb_connection_t *c,
1877                                 xcb_window_t      window);
1878 
1879 /**
1880  *
1881  * @param c The connection
1882  * @return A cookie
1883  *
1884  * Delivers a request to the X server.
1885  *
1886  */
1887 xcb_void_cookie_t
1888 xcb_xfixes_show_cursor (xcb_connection_t *c,
1889                         xcb_window_t      window);
1890 
1891 /**
1892  * Get the next element of the iterator
1893  * @param i Pointer to a xcb_xfixes_barrier_iterator_t
1894  *
1895  * Get the next element in the iterator. The member rem is
1896  * decreased by one. The member data points to the next
1897  * element. The member index is increased by sizeof(xcb_xfixes_barrier_t)
1898  */
1899 void
1900 xcb_xfixes_barrier_next (xcb_xfixes_barrier_iterator_t *i);
1901 
1902 /**
1903  * Return the iterator pointing to the last element
1904  * @param i An xcb_xfixes_barrier_iterator_t
1905  * @return  The iterator pointing to the last element
1906  *
1907  * Set the current element in the iterator to the last element.
1908  * The member rem is set to 0. The member data points to the
1909  * last element.
1910  */
1911 xcb_generic_iterator_t
1912 xcb_xfixes_barrier_end (xcb_xfixes_barrier_iterator_t i);
1913 
1914 int
1915 xcb_xfixes_create_pointer_barrier_sizeof (const void  *_buffer);
1916 
1917 /**
1918  *
1919  * @param c The connection
1920  * @return A cookie
1921  *
1922  * Delivers a request to the X server.
1923  *
1924  * This form can be used only if the request will not cause
1925  * a reply to be generated. Any returned error will be
1926  * saved for handling by xcb_request_check().
1927  */
1928 xcb_void_cookie_t
1929 xcb_xfixes_create_pointer_barrier_checked (xcb_connection_t     *c,
1930                                            xcb_xfixes_barrier_t  barrier,
1931                                            xcb_window_t          window,
1932                                            uint16_t              x1,
1933                                            uint16_t              y1,
1934                                            uint16_t              x2,
1935                                            uint16_t              y2,
1936                                            uint32_t              directions,
1937                                            uint16_t              num_devices,
1938                                            const uint16_t       *devices);
1939 
1940 /**
1941  *
1942  * @param c The connection
1943  * @return A cookie
1944  *
1945  * Delivers a request to the X server.
1946  *
1947  */
1948 xcb_void_cookie_t
1949 xcb_xfixes_create_pointer_barrier (xcb_connection_t     *c,
1950                                    xcb_xfixes_barrier_t  barrier,
1951                                    xcb_window_t          window,
1952                                    uint16_t              x1,
1953                                    uint16_t              y1,
1954                                    uint16_t              x2,
1955                                    uint16_t              y2,
1956                                    uint32_t              directions,
1957                                    uint16_t              num_devices,
1958                                    const uint16_t       *devices);
1959 
1960 uint16_t *
1961 xcb_xfixes_create_pointer_barrier_devices (const xcb_xfixes_create_pointer_barrier_request_t *R);
1962 
1963 int
1964 xcb_xfixes_create_pointer_barrier_devices_length (const xcb_xfixes_create_pointer_barrier_request_t *R);
1965 
1966 xcb_generic_iterator_t
1967 xcb_xfixes_create_pointer_barrier_devices_end (const xcb_xfixes_create_pointer_barrier_request_t *R);
1968 
1969 /**
1970  *
1971  * @param c The connection
1972  * @return A cookie
1973  *
1974  * Delivers a request to the X server.
1975  *
1976  * This form can be used only if the request will not cause
1977  * a reply to be generated. Any returned error will be
1978  * saved for handling by xcb_request_check().
1979  */
1980 xcb_void_cookie_t
1981 xcb_xfixes_delete_pointer_barrier_checked (xcb_connection_t     *c,
1982                                            xcb_xfixes_barrier_t  barrier);
1983 
1984 /**
1985  *
1986  * @param c The connection
1987  * @return A cookie
1988  *
1989  * Delivers a request to the X server.
1990  *
1991  */
1992 xcb_void_cookie_t
1993 xcb_xfixes_delete_pointer_barrier (xcb_connection_t     *c,
1994                                    xcb_xfixes_barrier_t  barrier);
1995 
1996 
1997 #ifdef __cplusplus
1998 }
1999 #endif
2000 
2001 #endif
2002 
2003 /**
2004  * @}
2005  */
2006