1/*
2 * This file generated automatically from shape.xml by c_client.py.
3 * Edit at your peril.
4 */
5
6#include <string.h>
7#include <assert.h>
8#include "xcbext.h"
9#include "shape.h"
10#include "xproto.h"
11
12xcb_extension_t xcb_shape_id = { "SHAPE", 0 };
13
14
15/*****************************************************************************
16 **
17 ** void xcb_shape_op_next
18 **
19 ** @param xcb_shape_op_iterator_t *i
20 ** @returns void
21 **
22 *****************************************************************************/
23
24void
25xcb_shape_op_next (xcb_shape_op_iterator_t *i  /**< */)
26{
27    --i->rem;
28    ++i->data;
29    i->index += sizeof(xcb_shape_op_t);
30}
31
32
33/*****************************************************************************
34 **
35 ** xcb_generic_iterator_t xcb_shape_op_end
36 **
37 ** @param xcb_shape_op_iterator_t i
38 ** @returns xcb_generic_iterator_t
39 **
40 *****************************************************************************/
41
42xcb_generic_iterator_t
43xcb_shape_op_end (xcb_shape_op_iterator_t i  /**< */)
44{
45    xcb_generic_iterator_t ret;
46    ret.data = i.data + i.rem;
47    ret.index = i.index + ((char *) ret.data - (char *) i.data);
48    ret.rem = 0;
49    return ret;
50}
51
52
53/*****************************************************************************
54 **
55 ** void xcb_shape_kind_next
56 **
57 ** @param xcb_shape_kind_iterator_t *i
58 ** @returns void
59 **
60 *****************************************************************************/
61
62void
63xcb_shape_kind_next (xcb_shape_kind_iterator_t *i  /**< */)
64{
65    --i->rem;
66    ++i->data;
67    i->index += sizeof(xcb_shape_kind_t);
68}
69
70
71/*****************************************************************************
72 **
73 ** xcb_generic_iterator_t xcb_shape_kind_end
74 **
75 ** @param xcb_shape_kind_iterator_t i
76 ** @returns xcb_generic_iterator_t
77 **
78 *****************************************************************************/
79
80xcb_generic_iterator_t
81xcb_shape_kind_end (xcb_shape_kind_iterator_t i  /**< */)
82{
83    xcb_generic_iterator_t ret;
84    ret.data = i.data + i.rem;
85    ret.index = i.index + ((char *) ret.data - (char *) i.data);
86    ret.rem = 0;
87    return ret;
88}
89
90
91/*****************************************************************************
92 **
93 ** xcb_shape_query_version_cookie_t xcb_shape_query_version
94 **
95 ** @param xcb_connection_t *c
96 ** @returns xcb_shape_query_version_cookie_t
97 **
98 *****************************************************************************/
99
100xcb_shape_query_version_cookie_t
101xcb_shape_query_version (xcb_connection_t *c  /**< */)
102{
103    static const xcb_protocol_request_t xcb_req = {
104        /* count */ 2,
105        /* ext */ &xcb_shape_id,
106        /* opcode */ XCB_SHAPE_QUERY_VERSION,
107        /* isvoid */ 0
108    };
109
110    struct iovec xcb_parts[4];
111    xcb_shape_query_version_cookie_t xcb_ret;
112    xcb_shape_query_version_request_t xcb_out;
113
114
115    xcb_parts[2].iov_base = (char *) &xcb_out;
116    xcb_parts[2].iov_len = sizeof(xcb_out);
117    xcb_parts[3].iov_base = 0;
118    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
119    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
120    return xcb_ret;
121}
122
123
124/*****************************************************************************
125 **
126 ** xcb_shape_query_version_cookie_t xcb_shape_query_version_unchecked
127 **
128 ** @param xcb_connection_t *c
129 ** @returns xcb_shape_query_version_cookie_t
130 **
131 *****************************************************************************/
132
133xcb_shape_query_version_cookie_t
134xcb_shape_query_version_unchecked (xcb_connection_t *c  /**< */)
135{
136    static const xcb_protocol_request_t xcb_req = {
137        /* count */ 2,
138        /* ext */ &xcb_shape_id,
139        /* opcode */ XCB_SHAPE_QUERY_VERSION,
140        /* isvoid */ 0
141    };
142
143    struct iovec xcb_parts[4];
144    xcb_shape_query_version_cookie_t xcb_ret;
145    xcb_shape_query_version_request_t xcb_out;
146
147
148    xcb_parts[2].iov_base = (char *) &xcb_out;
149    xcb_parts[2].iov_len = sizeof(xcb_out);
150    xcb_parts[3].iov_base = 0;
151    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
152    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
153    return xcb_ret;
154}
155
156
157/*****************************************************************************
158 **
159 ** xcb_shape_query_version_reply_t * xcb_shape_query_version_reply
160 **
161 ** @param xcb_connection_t                  *c
162 ** @param xcb_shape_query_version_cookie_t   cookie
163 ** @param xcb_generic_error_t              **e
164 ** @returns xcb_shape_query_version_reply_t *
165 **
166 *****************************************************************************/
167
168xcb_shape_query_version_reply_t *
169xcb_shape_query_version_reply (xcb_connection_t                  *c  /**< */,
170                               xcb_shape_query_version_cookie_t   cookie  /**< */,
171                               xcb_generic_error_t              **e  /**< */)
172{
173    return (xcb_shape_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
174}
175
176
177/*****************************************************************************
178 **
179 ** xcb_void_cookie_t xcb_shape_rectangles_checked
180 **
181 ** @param xcb_connection_t      *c
182 ** @param xcb_shape_op_t         operation
183 ** @param xcb_shape_kind_t       destination_kind
184 ** @param uint8_t                ordering
185 ** @param xcb_window_t           destination_window
186 ** @param int16_t                x_offset
187 ** @param int16_t                y_offset
188 ** @param uint32_t               rectangles_len
189 ** @param const xcb_rectangle_t *rectangles
190 ** @returns xcb_void_cookie_t
191 **
192 *****************************************************************************/
193
194xcb_void_cookie_t
195xcb_shape_rectangles_checked (xcb_connection_t      *c  /**< */,
196                              xcb_shape_op_t         operation  /**< */,
197                              xcb_shape_kind_t       destination_kind  /**< */,
198                              uint8_t                ordering  /**< */,
199                              xcb_window_t           destination_window  /**< */,
200                              int16_t                x_offset  /**< */,
201                              int16_t                y_offset  /**< */,
202                              uint32_t               rectangles_len  /**< */,
203                              const xcb_rectangle_t *rectangles  /**< */)
204{
205    static const xcb_protocol_request_t xcb_req = {
206        /* count */ 4,
207        /* ext */ &xcb_shape_id,
208        /* opcode */ XCB_SHAPE_RECTANGLES,
209        /* isvoid */ 1
210    };
211
212    struct iovec xcb_parts[6];
213    xcb_void_cookie_t xcb_ret;
214    xcb_shape_rectangles_request_t xcb_out;
215
216    xcb_out.operation = operation;
217    xcb_out.destination_kind = destination_kind;
218    xcb_out.ordering = ordering;
219    xcb_out.pad0 = 0;
220    xcb_out.destination_window = destination_window;
221    xcb_out.x_offset = x_offset;
222    xcb_out.y_offset = y_offset;
223
224    xcb_parts[2].iov_base = (char *) &xcb_out;
225    xcb_parts[2].iov_len = sizeof(xcb_out);
226    xcb_parts[3].iov_base = 0;
227    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
228    xcb_parts[4].iov_base = (char *) rectangles;
229    xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
230    xcb_parts[5].iov_base = 0;
231    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
232    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
233    return xcb_ret;
234}
235
236
237/*****************************************************************************
238 **
239 ** xcb_void_cookie_t xcb_shape_rectangles
240 **
241 ** @param xcb_connection_t      *c
242 ** @param xcb_shape_op_t         operation
243 ** @param xcb_shape_kind_t       destination_kind
244 ** @param uint8_t                ordering
245 ** @param xcb_window_t           destination_window
246 ** @param int16_t                x_offset
247 ** @param int16_t                y_offset
248 ** @param uint32_t               rectangles_len
249 ** @param const xcb_rectangle_t *rectangles
250 ** @returns xcb_void_cookie_t
251 **
252 *****************************************************************************/
253
254xcb_void_cookie_t
255xcb_shape_rectangles (xcb_connection_t      *c  /**< */,
256                      xcb_shape_op_t         operation  /**< */,
257                      xcb_shape_kind_t       destination_kind  /**< */,
258                      uint8_t                ordering  /**< */,
259                      xcb_window_t           destination_window  /**< */,
260                      int16_t                x_offset  /**< */,
261                      int16_t                y_offset  /**< */,
262                      uint32_t               rectangles_len  /**< */,
263                      const xcb_rectangle_t *rectangles  /**< */)
264{
265    static const xcb_protocol_request_t xcb_req = {
266        /* count */ 4,
267        /* ext */ &xcb_shape_id,
268        /* opcode */ XCB_SHAPE_RECTANGLES,
269        /* isvoid */ 1
270    };
271
272    struct iovec xcb_parts[6];
273    xcb_void_cookie_t xcb_ret;
274    xcb_shape_rectangles_request_t xcb_out;
275
276    xcb_out.operation = operation;
277    xcb_out.destination_kind = destination_kind;
278    xcb_out.ordering = ordering;
279    xcb_out.pad0 = 0;
280    xcb_out.destination_window = destination_window;
281    xcb_out.x_offset = x_offset;
282    xcb_out.y_offset = y_offset;
283
284    xcb_parts[2].iov_base = (char *) &xcb_out;
285    xcb_parts[2].iov_len = sizeof(xcb_out);
286    xcb_parts[3].iov_base = 0;
287    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
288    xcb_parts[4].iov_base = (char *) rectangles;
289    xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
290    xcb_parts[5].iov_base = 0;
291    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
292    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
293    return xcb_ret;
294}
295
296
297/*****************************************************************************
298 **
299 ** xcb_void_cookie_t xcb_shape_mask_checked
300 **
301 ** @param xcb_connection_t *c
302 ** @param xcb_shape_op_t    operation
303 ** @param xcb_shape_kind_t  destination_kind
304 ** @param xcb_window_t      destination_window
305 ** @param int16_t           x_offset
306 ** @param int16_t           y_offset
307 ** @param xcb_pixmap_t      source_bitmap
308 ** @returns xcb_void_cookie_t
309 **
310 *****************************************************************************/
311
312xcb_void_cookie_t
313xcb_shape_mask_checked (xcb_connection_t *c  /**< */,
314                        xcb_shape_op_t    operation  /**< */,
315                        xcb_shape_kind_t  destination_kind  /**< */,
316                        xcb_window_t      destination_window  /**< */,
317                        int16_t           x_offset  /**< */,
318                        int16_t           y_offset  /**< */,
319                        xcb_pixmap_t      source_bitmap  /**< */)
320{
321    static const xcb_protocol_request_t xcb_req = {
322        /* count */ 2,
323        /* ext */ &xcb_shape_id,
324        /* opcode */ XCB_SHAPE_MASK,
325        /* isvoid */ 1
326    };
327
328    struct iovec xcb_parts[4];
329    xcb_void_cookie_t xcb_ret;
330    xcb_shape_mask_request_t xcb_out;
331
332    xcb_out.operation = operation;
333    xcb_out.destination_kind = destination_kind;
334    memset(xcb_out.pad0, 0, 2);
335    xcb_out.destination_window = destination_window;
336    xcb_out.x_offset = x_offset;
337    xcb_out.y_offset = y_offset;
338    xcb_out.source_bitmap = source_bitmap;
339
340    xcb_parts[2].iov_base = (char *) &xcb_out;
341    xcb_parts[2].iov_len = sizeof(xcb_out);
342    xcb_parts[3].iov_base = 0;
343    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
344    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
345    return xcb_ret;
346}
347
348
349/*****************************************************************************
350 **
351 ** xcb_void_cookie_t xcb_shape_mask
352 **
353 ** @param xcb_connection_t *c
354 ** @param xcb_shape_op_t    operation
355 ** @param xcb_shape_kind_t  destination_kind
356 ** @param xcb_window_t      destination_window
357 ** @param int16_t           x_offset
358 ** @param int16_t           y_offset
359 ** @param xcb_pixmap_t      source_bitmap
360 ** @returns xcb_void_cookie_t
361 **
362 *****************************************************************************/
363
364xcb_void_cookie_t
365xcb_shape_mask (xcb_connection_t *c  /**< */,
366                xcb_shape_op_t    operation  /**< */,
367                xcb_shape_kind_t  destination_kind  /**< */,
368                xcb_window_t      destination_window  /**< */,
369                int16_t           x_offset  /**< */,
370                int16_t           y_offset  /**< */,
371                xcb_pixmap_t      source_bitmap  /**< */)
372{
373    static const xcb_protocol_request_t xcb_req = {
374        /* count */ 2,
375        /* ext */ &xcb_shape_id,
376        /* opcode */ XCB_SHAPE_MASK,
377        /* isvoid */ 1
378    };
379
380    struct iovec xcb_parts[4];
381    xcb_void_cookie_t xcb_ret;
382    xcb_shape_mask_request_t xcb_out;
383
384    xcb_out.operation = operation;
385    xcb_out.destination_kind = destination_kind;
386    memset(xcb_out.pad0, 0, 2);
387    xcb_out.destination_window = destination_window;
388    xcb_out.x_offset = x_offset;
389    xcb_out.y_offset = y_offset;
390    xcb_out.source_bitmap = source_bitmap;
391
392    xcb_parts[2].iov_base = (char *) &xcb_out;
393    xcb_parts[2].iov_len = sizeof(xcb_out);
394    xcb_parts[3].iov_base = 0;
395    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
396    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
397    return xcb_ret;
398}
399
400
401/*****************************************************************************
402 **
403 ** xcb_void_cookie_t xcb_shape_combine_checked
404 **
405 ** @param xcb_connection_t *c
406 ** @param xcb_shape_op_t    operation
407 ** @param xcb_shape_kind_t  destination_kind
408 ** @param xcb_shape_kind_t  source_kind
409 ** @param xcb_window_t      destination_window
410 ** @param int16_t           x_offset
411 ** @param int16_t           y_offset
412 ** @param xcb_window_t      source_window
413 ** @returns xcb_void_cookie_t
414 **
415 *****************************************************************************/
416
417xcb_void_cookie_t
418xcb_shape_combine_checked (xcb_connection_t *c  /**< */,
419                           xcb_shape_op_t    operation  /**< */,
420                           xcb_shape_kind_t  destination_kind  /**< */,
421                           xcb_shape_kind_t  source_kind  /**< */,
422                           xcb_window_t      destination_window  /**< */,
423                           int16_t           x_offset  /**< */,
424                           int16_t           y_offset  /**< */,
425                           xcb_window_t      source_window  /**< */)
426{
427    static const xcb_protocol_request_t xcb_req = {
428        /* count */ 2,
429        /* ext */ &xcb_shape_id,
430        /* opcode */ XCB_SHAPE_COMBINE,
431        /* isvoid */ 1
432    };
433
434    struct iovec xcb_parts[4];
435    xcb_void_cookie_t xcb_ret;
436    xcb_shape_combine_request_t xcb_out;
437
438    xcb_out.operation = operation;
439    xcb_out.destination_kind = destination_kind;
440    xcb_out.source_kind = source_kind;
441    xcb_out.pad0 = 0;
442    xcb_out.destination_window = destination_window;
443    xcb_out.x_offset = x_offset;
444    xcb_out.y_offset = y_offset;
445    xcb_out.source_window = source_window;
446
447    xcb_parts[2].iov_base = (char *) &xcb_out;
448    xcb_parts[2].iov_len = sizeof(xcb_out);
449    xcb_parts[3].iov_base = 0;
450    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
451    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
452    return xcb_ret;
453}
454
455
456/*****************************************************************************
457 **
458 ** xcb_void_cookie_t xcb_shape_combine
459 **
460 ** @param xcb_connection_t *c
461 ** @param xcb_shape_op_t    operation
462 ** @param xcb_shape_kind_t  destination_kind
463 ** @param xcb_shape_kind_t  source_kind
464 ** @param xcb_window_t      destination_window
465 ** @param int16_t           x_offset
466 ** @param int16_t           y_offset
467 ** @param xcb_window_t      source_window
468 ** @returns xcb_void_cookie_t
469 **
470 *****************************************************************************/
471
472xcb_void_cookie_t
473xcb_shape_combine (xcb_connection_t *c  /**< */,
474                   xcb_shape_op_t    operation  /**< */,
475                   xcb_shape_kind_t  destination_kind  /**< */,
476                   xcb_shape_kind_t  source_kind  /**< */,
477                   xcb_window_t      destination_window  /**< */,
478                   int16_t           x_offset  /**< */,
479                   int16_t           y_offset  /**< */,
480                   xcb_window_t      source_window  /**< */)
481{
482    static const xcb_protocol_request_t xcb_req = {
483        /* count */ 2,
484        /* ext */ &xcb_shape_id,
485        /* opcode */ XCB_SHAPE_COMBINE,
486        /* isvoid */ 1
487    };
488
489    struct iovec xcb_parts[4];
490    xcb_void_cookie_t xcb_ret;
491    xcb_shape_combine_request_t xcb_out;
492
493    xcb_out.operation = operation;
494    xcb_out.destination_kind = destination_kind;
495    xcb_out.source_kind = source_kind;
496    xcb_out.pad0 = 0;
497    xcb_out.destination_window = destination_window;
498    xcb_out.x_offset = x_offset;
499    xcb_out.y_offset = y_offset;
500    xcb_out.source_window = source_window;
501
502    xcb_parts[2].iov_base = (char *) &xcb_out;
503    xcb_parts[2].iov_len = sizeof(xcb_out);
504    xcb_parts[3].iov_base = 0;
505    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
506    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
507    return xcb_ret;
508}
509
510
511/*****************************************************************************
512 **
513 ** xcb_void_cookie_t xcb_shape_offset_checked
514 **
515 ** @param xcb_connection_t *c
516 ** @param xcb_shape_kind_t  destination_kind
517 ** @param xcb_window_t      destination_window
518 ** @param int16_t           x_offset
519 ** @param int16_t           y_offset
520 ** @returns xcb_void_cookie_t
521 **
522 *****************************************************************************/
523
524xcb_void_cookie_t
525xcb_shape_offset_checked (xcb_connection_t *c  /**< */,
526                          xcb_shape_kind_t  destination_kind  /**< */,
527                          xcb_window_t      destination_window  /**< */,
528                          int16_t           x_offset  /**< */,
529                          int16_t           y_offset  /**< */)
530{
531    static const xcb_protocol_request_t xcb_req = {
532        /* count */ 2,
533        /* ext */ &xcb_shape_id,
534        /* opcode */ XCB_SHAPE_OFFSET,
535        /* isvoid */ 1
536    };
537
538    struct iovec xcb_parts[4];
539    xcb_void_cookie_t xcb_ret;
540    xcb_shape_offset_request_t xcb_out;
541
542    xcb_out.destination_kind = destination_kind;
543    memset(xcb_out.pad0, 0, 3);
544    xcb_out.destination_window = destination_window;
545    xcb_out.x_offset = x_offset;
546    xcb_out.y_offset = y_offset;
547
548    xcb_parts[2].iov_base = (char *) &xcb_out;
549    xcb_parts[2].iov_len = sizeof(xcb_out);
550    xcb_parts[3].iov_base = 0;
551    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
552    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
553    return xcb_ret;
554}
555
556
557/*****************************************************************************
558 **
559 ** xcb_void_cookie_t xcb_shape_offset
560 **
561 ** @param xcb_connection_t *c
562 ** @param xcb_shape_kind_t  destination_kind
563 ** @param xcb_window_t      destination_window
564 ** @param int16_t           x_offset
565 ** @param int16_t           y_offset
566 ** @returns xcb_void_cookie_t
567 **
568 *****************************************************************************/
569
570xcb_void_cookie_t
571xcb_shape_offset (xcb_connection_t *c  /**< */,
572                  xcb_shape_kind_t  destination_kind  /**< */,
573                  xcb_window_t      destination_window  /**< */,
574                  int16_t           x_offset  /**< */,
575                  int16_t           y_offset  /**< */)
576{
577    static const xcb_protocol_request_t xcb_req = {
578        /* count */ 2,
579        /* ext */ &xcb_shape_id,
580        /* opcode */ XCB_SHAPE_OFFSET,
581        /* isvoid */ 1
582    };
583
584    struct iovec xcb_parts[4];
585    xcb_void_cookie_t xcb_ret;
586    xcb_shape_offset_request_t xcb_out;
587
588    xcb_out.destination_kind = destination_kind;
589    memset(xcb_out.pad0, 0, 3);
590    xcb_out.destination_window = destination_window;
591    xcb_out.x_offset = x_offset;
592    xcb_out.y_offset = y_offset;
593
594    xcb_parts[2].iov_base = (char *) &xcb_out;
595    xcb_parts[2].iov_len = sizeof(xcb_out);
596    xcb_parts[3].iov_base = 0;
597    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
598    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
599    return xcb_ret;
600}
601
602
603/*****************************************************************************
604 **
605 ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents
606 **
607 ** @param xcb_connection_t *c
608 ** @param xcb_window_t      destination_window
609 ** @returns xcb_shape_query_extents_cookie_t
610 **
611 *****************************************************************************/
612
613xcb_shape_query_extents_cookie_t
614xcb_shape_query_extents (xcb_connection_t *c  /**< */,
615                         xcb_window_t      destination_window  /**< */)
616{
617    static const xcb_protocol_request_t xcb_req = {
618        /* count */ 2,
619        /* ext */ &xcb_shape_id,
620        /* opcode */ XCB_SHAPE_QUERY_EXTENTS,
621        /* isvoid */ 0
622    };
623
624    struct iovec xcb_parts[4];
625    xcb_shape_query_extents_cookie_t xcb_ret;
626    xcb_shape_query_extents_request_t xcb_out;
627
628    xcb_out.destination_window = destination_window;
629
630    xcb_parts[2].iov_base = (char *) &xcb_out;
631    xcb_parts[2].iov_len = sizeof(xcb_out);
632    xcb_parts[3].iov_base = 0;
633    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
634    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
635    return xcb_ret;
636}
637
638
639/*****************************************************************************
640 **
641 ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents_unchecked
642 **
643 ** @param xcb_connection_t *c
644 ** @param xcb_window_t      destination_window
645 ** @returns xcb_shape_query_extents_cookie_t
646 **
647 *****************************************************************************/
648
649xcb_shape_query_extents_cookie_t
650xcb_shape_query_extents_unchecked (xcb_connection_t *c  /**< */,
651                                   xcb_window_t      destination_window  /**< */)
652{
653    static const xcb_protocol_request_t xcb_req = {
654        /* count */ 2,
655        /* ext */ &xcb_shape_id,
656        /* opcode */ XCB_SHAPE_QUERY_EXTENTS,
657        /* isvoid */ 0
658    };
659
660    struct iovec xcb_parts[4];
661    xcb_shape_query_extents_cookie_t xcb_ret;
662    xcb_shape_query_extents_request_t xcb_out;
663
664    xcb_out.destination_window = destination_window;
665
666    xcb_parts[2].iov_base = (char *) &xcb_out;
667    xcb_parts[2].iov_len = sizeof(xcb_out);
668    xcb_parts[3].iov_base = 0;
669    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
670    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
671    return xcb_ret;
672}
673
674
675/*****************************************************************************
676 **
677 ** xcb_shape_query_extents_reply_t * xcb_shape_query_extents_reply
678 **
679 ** @param xcb_connection_t                  *c
680 ** @param xcb_shape_query_extents_cookie_t   cookie
681 ** @param xcb_generic_error_t              **e
682 ** @returns xcb_shape_query_extents_reply_t *
683 **
684 *****************************************************************************/
685
686xcb_shape_query_extents_reply_t *
687xcb_shape_query_extents_reply (xcb_connection_t                  *c  /**< */,
688                               xcb_shape_query_extents_cookie_t   cookie  /**< */,
689                               xcb_generic_error_t              **e  /**< */)
690{
691    return (xcb_shape_query_extents_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
692}
693
694
695/*****************************************************************************
696 **
697 ** xcb_void_cookie_t xcb_shape_select_input_checked
698 **
699 ** @param xcb_connection_t *c
700 ** @param xcb_window_t      destination_window
701 ** @param uint8_t           enable
702 ** @returns xcb_void_cookie_t
703 **
704 *****************************************************************************/
705
706xcb_void_cookie_t
707xcb_shape_select_input_checked (xcb_connection_t *c  /**< */,
708                                xcb_window_t      destination_window  /**< */,
709                                uint8_t           enable  /**< */)
710{
711    static const xcb_protocol_request_t xcb_req = {
712        /* count */ 2,
713        /* ext */ &xcb_shape_id,
714        /* opcode */ XCB_SHAPE_SELECT_INPUT,
715        /* isvoid */ 1
716    };
717
718    struct iovec xcb_parts[4];
719    xcb_void_cookie_t xcb_ret;
720    xcb_shape_select_input_request_t xcb_out;
721
722    xcb_out.destination_window = destination_window;
723    xcb_out.enable = enable;
724    memset(xcb_out.pad0, 0, 3);
725
726    xcb_parts[2].iov_base = (char *) &xcb_out;
727    xcb_parts[2].iov_len = sizeof(xcb_out);
728    xcb_parts[3].iov_base = 0;
729    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
730    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
731    return xcb_ret;
732}
733
734
735/*****************************************************************************
736 **
737 ** xcb_void_cookie_t xcb_shape_select_input
738 **
739 ** @param xcb_connection_t *c
740 ** @param xcb_window_t      destination_window
741 ** @param uint8_t           enable
742 ** @returns xcb_void_cookie_t
743 **
744 *****************************************************************************/
745
746xcb_void_cookie_t
747xcb_shape_select_input (xcb_connection_t *c  /**< */,
748                        xcb_window_t      destination_window  /**< */,
749                        uint8_t           enable  /**< */)
750{
751    static const xcb_protocol_request_t xcb_req = {
752        /* count */ 2,
753        /* ext */ &xcb_shape_id,
754        /* opcode */ XCB_SHAPE_SELECT_INPUT,
755        /* isvoid */ 1
756    };
757
758    struct iovec xcb_parts[4];
759    xcb_void_cookie_t xcb_ret;
760    xcb_shape_select_input_request_t xcb_out;
761
762    xcb_out.destination_window = destination_window;
763    xcb_out.enable = enable;
764    memset(xcb_out.pad0, 0, 3);
765
766    xcb_parts[2].iov_base = (char *) &xcb_out;
767    xcb_parts[2].iov_len = sizeof(xcb_out);
768    xcb_parts[3].iov_base = 0;
769    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
770    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
771    return xcb_ret;
772}
773
774
775/*****************************************************************************
776 **
777 ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected
778 **
779 ** @param xcb_connection_t *c
780 ** @param xcb_window_t      destination_window
781 ** @returns xcb_shape_input_selected_cookie_t
782 **
783 *****************************************************************************/
784
785xcb_shape_input_selected_cookie_t
786xcb_shape_input_selected (xcb_connection_t *c  /**< */,
787                          xcb_window_t      destination_window  /**< */)
788{
789    static const xcb_protocol_request_t xcb_req = {
790        /* count */ 2,
791        /* ext */ &xcb_shape_id,
792        /* opcode */ XCB_SHAPE_INPUT_SELECTED,
793        /* isvoid */ 0
794    };
795
796    struct iovec xcb_parts[4];
797    xcb_shape_input_selected_cookie_t xcb_ret;
798    xcb_shape_input_selected_request_t xcb_out;
799
800    xcb_out.destination_window = destination_window;
801
802    xcb_parts[2].iov_base = (char *) &xcb_out;
803    xcb_parts[2].iov_len = sizeof(xcb_out);
804    xcb_parts[3].iov_base = 0;
805    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
806    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
807    return xcb_ret;
808}
809
810
811/*****************************************************************************
812 **
813 ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected_unchecked
814 **
815 ** @param xcb_connection_t *c
816 ** @param xcb_window_t      destination_window
817 ** @returns xcb_shape_input_selected_cookie_t
818 **
819 *****************************************************************************/
820
821xcb_shape_input_selected_cookie_t
822xcb_shape_input_selected_unchecked (xcb_connection_t *c  /**< */,
823                                    xcb_window_t      destination_window  /**< */)
824{
825    static const xcb_protocol_request_t xcb_req = {
826        /* count */ 2,
827        /* ext */ &xcb_shape_id,
828        /* opcode */ XCB_SHAPE_INPUT_SELECTED,
829        /* isvoid */ 0
830    };
831
832    struct iovec xcb_parts[4];
833    xcb_shape_input_selected_cookie_t xcb_ret;
834    xcb_shape_input_selected_request_t xcb_out;
835
836    xcb_out.destination_window = destination_window;
837
838    xcb_parts[2].iov_base = (char *) &xcb_out;
839    xcb_parts[2].iov_len = sizeof(xcb_out);
840    xcb_parts[3].iov_base = 0;
841    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
842    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
843    return xcb_ret;
844}
845
846
847/*****************************************************************************
848 **
849 ** xcb_shape_input_selected_reply_t * xcb_shape_input_selected_reply
850 **
851 ** @param xcb_connection_t                   *c
852 ** @param xcb_shape_input_selected_cookie_t   cookie
853 ** @param xcb_generic_error_t               **e
854 ** @returns xcb_shape_input_selected_reply_t *
855 **
856 *****************************************************************************/
857
858xcb_shape_input_selected_reply_t *
859xcb_shape_input_selected_reply (xcb_connection_t                   *c  /**< */,
860                                xcb_shape_input_selected_cookie_t   cookie  /**< */,
861                                xcb_generic_error_t               **e  /**< */)
862{
863    return (xcb_shape_input_selected_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
864}
865
866
867/*****************************************************************************
868 **
869 ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles
870 **
871 ** @param xcb_connection_t *c
872 ** @param xcb_window_t      window
873 ** @param xcb_shape_kind_t  source_kind
874 ** @returns xcb_shape_get_rectangles_cookie_t
875 **
876 *****************************************************************************/
877
878xcb_shape_get_rectangles_cookie_t
879xcb_shape_get_rectangles (xcb_connection_t *c  /**< */,
880                          xcb_window_t      window  /**< */,
881                          xcb_shape_kind_t  source_kind  /**< */)
882{
883    static const xcb_protocol_request_t xcb_req = {
884        /* count */ 2,
885        /* ext */ &xcb_shape_id,
886        /* opcode */ XCB_SHAPE_GET_RECTANGLES,
887        /* isvoid */ 0
888    };
889
890    struct iovec xcb_parts[4];
891    xcb_shape_get_rectangles_cookie_t xcb_ret;
892    xcb_shape_get_rectangles_request_t xcb_out;
893
894    xcb_out.window = window;
895    xcb_out.source_kind = source_kind;
896    memset(xcb_out.pad0, 0, 3);
897
898    xcb_parts[2].iov_base = (char *) &xcb_out;
899    xcb_parts[2].iov_len = sizeof(xcb_out);
900    xcb_parts[3].iov_base = 0;
901    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
902    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
903    return xcb_ret;
904}
905
906
907/*****************************************************************************
908 **
909 ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles_unchecked
910 **
911 ** @param xcb_connection_t *c
912 ** @param xcb_window_t      window
913 ** @param xcb_shape_kind_t  source_kind
914 ** @returns xcb_shape_get_rectangles_cookie_t
915 **
916 *****************************************************************************/
917
918xcb_shape_get_rectangles_cookie_t
919xcb_shape_get_rectangles_unchecked (xcb_connection_t *c  /**< */,
920                                    xcb_window_t      window  /**< */,
921                                    xcb_shape_kind_t  source_kind  /**< */)
922{
923    static const xcb_protocol_request_t xcb_req = {
924        /* count */ 2,
925        /* ext */ &xcb_shape_id,
926        /* opcode */ XCB_SHAPE_GET_RECTANGLES,
927        /* isvoid */ 0
928    };
929
930    struct iovec xcb_parts[4];
931    xcb_shape_get_rectangles_cookie_t xcb_ret;
932    xcb_shape_get_rectangles_request_t xcb_out;
933
934    xcb_out.window = window;
935    xcb_out.source_kind = source_kind;
936    memset(xcb_out.pad0, 0, 3);
937
938    xcb_parts[2].iov_base = (char *) &xcb_out;
939    xcb_parts[2].iov_len = sizeof(xcb_out);
940    xcb_parts[3].iov_base = 0;
941    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
942    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
943    return xcb_ret;
944}
945
946
947/*****************************************************************************
948 **
949 ** xcb_rectangle_t * xcb_shape_get_rectangles_rectangles
950 **
951 ** @param const xcb_shape_get_rectangles_reply_t *R
952 ** @returns xcb_rectangle_t *
953 **
954 *****************************************************************************/
955
956xcb_rectangle_t *
957xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R  /**< */)
958{
959    return (xcb_rectangle_t *) (R + 1);
960}
961
962
963/*****************************************************************************
964 **
965 ** int xcb_shape_get_rectangles_rectangles_length
966 **
967 ** @param const xcb_shape_get_rectangles_reply_t *R
968 ** @returns int
969 **
970 *****************************************************************************/
971
972int
973xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R  /**< */)
974{
975    return R->rectangles_len;
976}
977
978
979/*****************************************************************************
980 **
981 ** xcb_rectangle_iterator_t xcb_shape_get_rectangles_rectangles_iterator
982 **
983 ** @param const xcb_shape_get_rectangles_reply_t *R
984 ** @returns xcb_rectangle_iterator_t
985 **
986 *****************************************************************************/
987
988xcb_rectangle_iterator_t
989xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R  /**< */)
990{
991    xcb_rectangle_iterator_t i;
992    i.data = (xcb_rectangle_t *) (R + 1);
993    i.rem = R->rectangles_len;
994    i.index = (char *) i.data - (char *) R;
995    return i;
996}
997
998
999/*****************************************************************************
1000 **
1001 ** xcb_shape_get_rectangles_reply_t * xcb_shape_get_rectangles_reply
1002 **
1003 ** @param xcb_connection_t                   *c
1004 ** @param xcb_shape_get_rectangles_cookie_t   cookie
1005 ** @param xcb_generic_error_t               **e
1006 ** @returns xcb_shape_get_rectangles_reply_t *
1007 **
1008 *****************************************************************************/
1009
1010xcb_shape_get_rectangles_reply_t *
1011xcb_shape_get_rectangles_reply (xcb_connection_t                   *c  /**< */,
1012                                xcb_shape_get_rectangles_cookie_t   cookie  /**< */,
1013                                xcb_generic_error_t               **e  /**< */)
1014{
1015    return (xcb_shape_get_rectangles_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1016}
1017
1018