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