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