1 /* 2 * This file generated automatically from xproto.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 "xproto.h" 10 11 12 /***************************************************************************** 13 ** 14 ** void xcb_char2b_next 15 ** 16 ** @param xcb_char2b_iterator_t *i 17 ** @returns void 18 ** 19 *****************************************************************************/ 20 21 void 22 xcb_char2b_next (xcb_char2b_iterator_t *i /**< */) 23 { 24 --i->rem; 25 ++i->data; 26 i->index += sizeof(xcb_char2b_t); 27 } 28 29 30 /***************************************************************************** 31 ** 32 ** xcb_generic_iterator_t xcb_char2b_end 33 ** 34 ** @param xcb_char2b_iterator_t i 35 ** @returns xcb_generic_iterator_t 36 ** 37 *****************************************************************************/ 38 39 xcb_generic_iterator_t 40 xcb_char2b_end (xcb_char2b_iterator_t i /**< */) 41 { 42 xcb_generic_iterator_t ret; 43 ret.data = i.data + i.rem; 44 ret.index = i.index + ((char *) ret.data - (char *) i.data); 45 ret.rem = 0; 46 return ret; 47 } 48 49 50 /***************************************************************************** 51 ** 52 ** void xcb_window_next 53 ** 54 ** @param xcb_window_iterator_t *i 55 ** @returns void 56 ** 57 *****************************************************************************/ 58 59 void 60 xcb_window_next (xcb_window_iterator_t *i /**< */) 61 { 62 --i->rem; 63 ++i->data; 64 i->index += sizeof(xcb_window_t); 65 } 66 67 68 /***************************************************************************** 69 ** 70 ** xcb_generic_iterator_t xcb_window_end 71 ** 72 ** @param xcb_window_iterator_t i 73 ** @returns xcb_generic_iterator_t 74 ** 75 *****************************************************************************/ 76 77 xcb_generic_iterator_t 78 xcb_window_end (xcb_window_iterator_t i /**< */) 79 { 80 xcb_generic_iterator_t ret; 81 ret.data = i.data + i.rem; 82 ret.index = i.index + ((char *) ret.data - (char *) i.data); 83 ret.rem = 0; 84 return ret; 85 } 86 87 88 /***************************************************************************** 89 ** 90 ** void xcb_pixmap_next 91 ** 92 ** @param xcb_pixmap_iterator_t *i 93 ** @returns void 94 ** 95 *****************************************************************************/ 96 97 void 98 xcb_pixmap_next (xcb_pixmap_iterator_t *i /**< */) 99 { 100 --i->rem; 101 ++i->data; 102 i->index += sizeof(xcb_pixmap_t); 103 } 104 105 106 /***************************************************************************** 107 ** 108 ** xcb_generic_iterator_t xcb_pixmap_end 109 ** 110 ** @param xcb_pixmap_iterator_t i 111 ** @returns xcb_generic_iterator_t 112 ** 113 *****************************************************************************/ 114 115 xcb_generic_iterator_t 116 xcb_pixmap_end (xcb_pixmap_iterator_t i /**< */) 117 { 118 xcb_generic_iterator_t ret; 119 ret.data = i.data + i.rem; 120 ret.index = i.index + ((char *) ret.data - (char *) i.data); 121 ret.rem = 0; 122 return ret; 123 } 124 125 126 /***************************************************************************** 127 ** 128 ** void xcb_cursor_next 129 ** 130 ** @param xcb_cursor_iterator_t *i 131 ** @returns void 132 ** 133 *****************************************************************************/ 134 135 void 136 xcb_cursor_next (xcb_cursor_iterator_t *i /**< */) 137 { 138 --i->rem; 139 ++i->data; 140 i->index += sizeof(xcb_cursor_t); 141 } 142 143 144 /***************************************************************************** 145 ** 146 ** xcb_generic_iterator_t xcb_cursor_end 147 ** 148 ** @param xcb_cursor_iterator_t i 149 ** @returns xcb_generic_iterator_t 150 ** 151 *****************************************************************************/ 152 153 xcb_generic_iterator_t 154 xcb_cursor_end (xcb_cursor_iterator_t i /**< */) 155 { 156 xcb_generic_iterator_t ret; 157 ret.data = i.data + i.rem; 158 ret.index = i.index + ((char *) ret.data - (char *) i.data); 159 ret.rem = 0; 160 return ret; 161 } 162 163 164 /***************************************************************************** 165 ** 166 ** void xcb_font_next 167 ** 168 ** @param xcb_font_iterator_t *i 169 ** @returns void 170 ** 171 *****************************************************************************/ 172 173 void 174 xcb_font_next (xcb_font_iterator_t *i /**< */) 175 { 176 --i->rem; 177 ++i->data; 178 i->index += sizeof(xcb_font_t); 179 } 180 181 182 /***************************************************************************** 183 ** 184 ** xcb_generic_iterator_t xcb_font_end 185 ** 186 ** @param xcb_font_iterator_t i 187 ** @returns xcb_generic_iterator_t 188 ** 189 *****************************************************************************/ 190 191 xcb_generic_iterator_t 192 xcb_font_end (xcb_font_iterator_t i /**< */) 193 { 194 xcb_generic_iterator_t ret; 195 ret.data = i.data + i.rem; 196 ret.index = i.index + ((char *) ret.data - (char *) i.data); 197 ret.rem = 0; 198 return ret; 199 } 200 201 202 /***************************************************************************** 203 ** 204 ** void xcb_gcontext_next 205 ** 206 ** @param xcb_gcontext_iterator_t *i 207 ** @returns void 208 ** 209 *****************************************************************************/ 210 211 void 212 xcb_gcontext_next (xcb_gcontext_iterator_t *i /**< */) 213 { 214 --i->rem; 215 ++i->data; 216 i->index += sizeof(xcb_gcontext_t); 217 } 218 219 220 /***************************************************************************** 221 ** 222 ** xcb_generic_iterator_t xcb_gcontext_end 223 ** 224 ** @param xcb_gcontext_iterator_t i 225 ** @returns xcb_generic_iterator_t 226 ** 227 *****************************************************************************/ 228 229 xcb_generic_iterator_t 230 xcb_gcontext_end (xcb_gcontext_iterator_t i /**< */) 231 { 232 xcb_generic_iterator_t ret; 233 ret.data = i.data + i.rem; 234 ret.index = i.index + ((char *) ret.data - (char *) i.data); 235 ret.rem = 0; 236 return ret; 237 } 238 239 240 /***************************************************************************** 241 ** 242 ** void xcb_colormap_next 243 ** 244 ** @param xcb_colormap_iterator_t *i 245 ** @returns void 246 ** 247 *****************************************************************************/ 248 249 void 250 xcb_colormap_next (xcb_colormap_iterator_t *i /**< */) 251 { 252 --i->rem; 253 ++i->data; 254 i->index += sizeof(xcb_colormap_t); 255 } 256 257 258 /***************************************************************************** 259 ** 260 ** xcb_generic_iterator_t xcb_colormap_end 261 ** 262 ** @param xcb_colormap_iterator_t i 263 ** @returns xcb_generic_iterator_t 264 ** 265 *****************************************************************************/ 266 267 xcb_generic_iterator_t 268 xcb_colormap_end (xcb_colormap_iterator_t i /**< */) 269 { 270 xcb_generic_iterator_t ret; 271 ret.data = i.data + i.rem; 272 ret.index = i.index + ((char *) ret.data - (char *) i.data); 273 ret.rem = 0; 274 return ret; 275 } 276 277 278 /***************************************************************************** 279 ** 280 ** void xcb_atom_next 281 ** 282 ** @param xcb_atom_iterator_t *i 283 ** @returns void 284 ** 285 *****************************************************************************/ 286 287 void 288 xcb_atom_next (xcb_atom_iterator_t *i /**< */) 289 { 290 --i->rem; 291 ++i->data; 292 i->index += sizeof(xcb_atom_t); 293 } 294 295 296 /***************************************************************************** 297 ** 298 ** xcb_generic_iterator_t xcb_atom_end 299 ** 300 ** @param xcb_atom_iterator_t i 301 ** @returns xcb_generic_iterator_t 302 ** 303 *****************************************************************************/ 304 305 xcb_generic_iterator_t 306 xcb_atom_end (xcb_atom_iterator_t i /**< */) 307 { 308 xcb_generic_iterator_t ret; 309 ret.data = i.data + i.rem; 310 ret.index = i.index + ((char *) ret.data - (char *) i.data); 311 ret.rem = 0; 312 return ret; 313 } 314 315 316 /***************************************************************************** 317 ** 318 ** void xcb_drawable_next 319 ** 320 ** @param xcb_drawable_iterator_t *i 321 ** @returns void 322 ** 323 *****************************************************************************/ 324 325 void 326 xcb_drawable_next (xcb_drawable_iterator_t *i /**< */) 327 { 328 --i->rem; 329 ++i->data; 330 i->index += sizeof(xcb_drawable_t); 331 } 332 333 334 /***************************************************************************** 335 ** 336 ** xcb_generic_iterator_t xcb_drawable_end 337 ** 338 ** @param xcb_drawable_iterator_t i 339 ** @returns xcb_generic_iterator_t 340 ** 341 *****************************************************************************/ 342 343 xcb_generic_iterator_t 344 xcb_drawable_end (xcb_drawable_iterator_t i /**< */) 345 { 346 xcb_generic_iterator_t ret; 347 ret.data = i.data + i.rem; 348 ret.index = i.index + ((char *) ret.data - (char *) i.data); 349 ret.rem = 0; 350 return ret; 351 } 352 353 354 /***************************************************************************** 355 ** 356 ** void xcb_fontable_next 357 ** 358 ** @param xcb_fontable_iterator_t *i 359 ** @returns void 360 ** 361 *****************************************************************************/ 362 363 void 364 xcb_fontable_next (xcb_fontable_iterator_t *i /**< */) 365 { 366 --i->rem; 367 ++i->data; 368 i->index += sizeof(xcb_fontable_t); 369 } 370 371 372 /***************************************************************************** 373 ** 374 ** xcb_generic_iterator_t xcb_fontable_end 375 ** 376 ** @param xcb_fontable_iterator_t i 377 ** @returns xcb_generic_iterator_t 378 ** 379 *****************************************************************************/ 380 381 xcb_generic_iterator_t 382 xcb_fontable_end (xcb_fontable_iterator_t i /**< */) 383 { 384 xcb_generic_iterator_t ret; 385 ret.data = i.data + i.rem; 386 ret.index = i.index + ((char *) ret.data - (char *) i.data); 387 ret.rem = 0; 388 return ret; 389 } 390 391 392 /***************************************************************************** 393 ** 394 ** void xcb_visualid_next 395 ** 396 ** @param xcb_visualid_iterator_t *i 397 ** @returns void 398 ** 399 *****************************************************************************/ 400 401 void 402 xcb_visualid_next (xcb_visualid_iterator_t *i /**< */) 403 { 404 --i->rem; 405 ++i->data; 406 i->index += sizeof(xcb_visualid_t); 407 } 408 409 410 /***************************************************************************** 411 ** 412 ** xcb_generic_iterator_t xcb_visualid_end 413 ** 414 ** @param xcb_visualid_iterator_t i 415 ** @returns xcb_generic_iterator_t 416 ** 417 *****************************************************************************/ 418 419 xcb_generic_iterator_t 420 xcb_visualid_end (xcb_visualid_iterator_t i /**< */) 421 { 422 xcb_generic_iterator_t ret; 423 ret.data = i.data + i.rem; 424 ret.index = i.index + ((char *) ret.data - (char *) i.data); 425 ret.rem = 0; 426 return ret; 427 } 428 429 430 /***************************************************************************** 431 ** 432 ** void xcb_timestamp_next 433 ** 434 ** @param xcb_timestamp_iterator_t *i 435 ** @returns void 436 ** 437 *****************************************************************************/ 438 439 void 440 xcb_timestamp_next (xcb_timestamp_iterator_t *i /**< */) 441 { 442 --i->rem; 443 ++i->data; 444 i->index += sizeof(xcb_timestamp_t); 445 } 446 447 448 /***************************************************************************** 449 ** 450 ** xcb_generic_iterator_t xcb_timestamp_end 451 ** 452 ** @param xcb_timestamp_iterator_t i 453 ** @returns xcb_generic_iterator_t 454 ** 455 *****************************************************************************/ 456 457 xcb_generic_iterator_t 458 xcb_timestamp_end (xcb_timestamp_iterator_t i /**< */) 459 { 460 xcb_generic_iterator_t ret; 461 ret.data = i.data + i.rem; 462 ret.index = i.index + ((char *) ret.data - (char *) i.data); 463 ret.rem = 0; 464 return ret; 465 } 466 467 468 /***************************************************************************** 469 ** 470 ** void xcb_keysym_next 471 ** 472 ** @param xcb_keysym_iterator_t *i 473 ** @returns void 474 ** 475 *****************************************************************************/ 476 477 void 478 xcb_keysym_next (xcb_keysym_iterator_t *i /**< */) 479 { 480 --i->rem; 481 ++i->data; 482 i->index += sizeof(xcb_keysym_t); 483 } 484 485 486 /***************************************************************************** 487 ** 488 ** xcb_generic_iterator_t xcb_keysym_end 489 ** 490 ** @param xcb_keysym_iterator_t i 491 ** @returns xcb_generic_iterator_t 492 ** 493 *****************************************************************************/ 494 495 xcb_generic_iterator_t 496 xcb_keysym_end (xcb_keysym_iterator_t i /**< */) 497 { 498 xcb_generic_iterator_t ret; 499 ret.data = i.data + i.rem; 500 ret.index = i.index + ((char *) ret.data - (char *) i.data); 501 ret.rem = 0; 502 return ret; 503 } 504 505 506 /***************************************************************************** 507 ** 508 ** void xcb_keycode_next 509 ** 510 ** @param xcb_keycode_iterator_t *i 511 ** @returns void 512 ** 513 *****************************************************************************/ 514 515 void 516 xcb_keycode_next (xcb_keycode_iterator_t *i /**< */) 517 { 518 --i->rem; 519 ++i->data; 520 i->index += sizeof(xcb_keycode_t); 521 } 522 523 524 /***************************************************************************** 525 ** 526 ** xcb_generic_iterator_t xcb_keycode_end 527 ** 528 ** @param xcb_keycode_iterator_t i 529 ** @returns xcb_generic_iterator_t 530 ** 531 *****************************************************************************/ 532 533 xcb_generic_iterator_t 534 xcb_keycode_end (xcb_keycode_iterator_t i /**< */) 535 { 536 xcb_generic_iterator_t ret; 537 ret.data = i.data + i.rem; 538 ret.index = i.index + ((char *) ret.data - (char *) i.data); 539 ret.rem = 0; 540 return ret; 541 } 542 543 544 /***************************************************************************** 545 ** 546 ** void xcb_button_next 547 ** 548 ** @param xcb_button_iterator_t *i 549 ** @returns void 550 ** 551 *****************************************************************************/ 552 553 void 554 xcb_button_next (xcb_button_iterator_t *i /**< */) 555 { 556 --i->rem; 557 ++i->data; 558 i->index += sizeof(xcb_button_t); 559 } 560 561 562 /***************************************************************************** 563 ** 564 ** xcb_generic_iterator_t xcb_button_end 565 ** 566 ** @param xcb_button_iterator_t i 567 ** @returns xcb_generic_iterator_t 568 ** 569 *****************************************************************************/ 570 571 xcb_generic_iterator_t 572 xcb_button_end (xcb_button_iterator_t i /**< */) 573 { 574 xcb_generic_iterator_t ret; 575 ret.data = i.data + i.rem; 576 ret.index = i.index + ((char *) ret.data - (char *) i.data); 577 ret.rem = 0; 578 return ret; 579 } 580 581 582 /***************************************************************************** 583 ** 584 ** void xcb_point_next 585 ** 586 ** @param xcb_point_iterator_t *i 587 ** @returns void 588 ** 589 *****************************************************************************/ 590 591 void 592 xcb_point_next (xcb_point_iterator_t *i /**< */) 593 { 594 --i->rem; 595 ++i->data; 596 i->index += sizeof(xcb_point_t); 597 } 598 599 600 /***************************************************************************** 601 ** 602 ** xcb_generic_iterator_t xcb_point_end 603 ** 604 ** @param xcb_point_iterator_t i 605 ** @returns xcb_generic_iterator_t 606 ** 607 *****************************************************************************/ 608 609 xcb_generic_iterator_t 610 xcb_point_end (xcb_point_iterator_t i /**< */) 611 { 612 xcb_generic_iterator_t ret; 613 ret.data = i.data + i.rem; 614 ret.index = i.index + ((char *) ret.data - (char *) i.data); 615 ret.rem = 0; 616 return ret; 617 } 618 619 620 /***************************************************************************** 621 ** 622 ** void xcb_rectangle_next 623 ** 624 ** @param xcb_rectangle_iterator_t *i 625 ** @returns void 626 ** 627 *****************************************************************************/ 628 629 void 630 xcb_rectangle_next (xcb_rectangle_iterator_t *i /**< */) 631 { 632 --i->rem; 633 ++i->data; 634 i->index += sizeof(xcb_rectangle_t); 635 } 636 637 638 /***************************************************************************** 639 ** 640 ** xcb_generic_iterator_t xcb_rectangle_end 641 ** 642 ** @param xcb_rectangle_iterator_t i 643 ** @returns xcb_generic_iterator_t 644 ** 645 *****************************************************************************/ 646 647 xcb_generic_iterator_t 648 xcb_rectangle_end (xcb_rectangle_iterator_t i /**< */) 649 { 650 xcb_generic_iterator_t ret; 651 ret.data = i.data + i.rem; 652 ret.index = i.index + ((char *) ret.data - (char *) i.data); 653 ret.rem = 0; 654 return ret; 655 } 656 657 658 /***************************************************************************** 659 ** 660 ** void xcb_arc_next 661 ** 662 ** @param xcb_arc_iterator_t *i 663 ** @returns void 664 ** 665 *****************************************************************************/ 666 667 void 668 xcb_arc_next (xcb_arc_iterator_t *i /**< */) 669 { 670 --i->rem; 671 ++i->data; 672 i->index += sizeof(xcb_arc_t); 673 } 674 675 676 /***************************************************************************** 677 ** 678 ** xcb_generic_iterator_t xcb_arc_end 679 ** 680 ** @param xcb_arc_iterator_t i 681 ** @returns xcb_generic_iterator_t 682 ** 683 *****************************************************************************/ 684 685 xcb_generic_iterator_t 686 xcb_arc_end (xcb_arc_iterator_t i /**< */) 687 { 688 xcb_generic_iterator_t ret; 689 ret.data = i.data + i.rem; 690 ret.index = i.index + ((char *) ret.data - (char *) i.data); 691 ret.rem = 0; 692 return ret; 693 } 694 695 696 /***************************************************************************** 697 ** 698 ** void xcb_format_next 699 ** 700 ** @param xcb_format_iterator_t *i 701 ** @returns void 702 ** 703 *****************************************************************************/ 704 705 void 706 xcb_format_next (xcb_format_iterator_t *i /**< */) 707 { 708 --i->rem; 709 ++i->data; 710 i->index += sizeof(xcb_format_t); 711 } 712 713 714 /***************************************************************************** 715 ** 716 ** xcb_generic_iterator_t xcb_format_end 717 ** 718 ** @param xcb_format_iterator_t i 719 ** @returns xcb_generic_iterator_t 720 ** 721 *****************************************************************************/ 722 723 xcb_generic_iterator_t 724 xcb_format_end (xcb_format_iterator_t i /**< */) 725 { 726 xcb_generic_iterator_t ret; 727 ret.data = i.data + i.rem; 728 ret.index = i.index + ((char *) ret.data - (char *) i.data); 729 ret.rem = 0; 730 return ret; 731 } 732 733 734 /***************************************************************************** 735 ** 736 ** void xcb_visualtype_next 737 ** 738 ** @param xcb_visualtype_iterator_t *i 739 ** @returns void 740 ** 741 *****************************************************************************/ 742 743 void 744 xcb_visualtype_next (xcb_visualtype_iterator_t *i /**< */) 745 { 746 --i->rem; 747 ++i->data; 748 i->index += sizeof(xcb_visualtype_t); 749 } 750 751 752 /***************************************************************************** 753 ** 754 ** xcb_generic_iterator_t xcb_visualtype_end 755 ** 756 ** @param xcb_visualtype_iterator_t i 757 ** @returns xcb_generic_iterator_t 758 ** 759 *****************************************************************************/ 760 761 xcb_generic_iterator_t 762 xcb_visualtype_end (xcb_visualtype_iterator_t i /**< */) 763 { 764 xcb_generic_iterator_t ret; 765 ret.data = i.data + i.rem; 766 ret.index = i.index + ((char *) ret.data - (char *) i.data); 767 ret.rem = 0; 768 return ret; 769 } 770 771 772 /***************************************************************************** 773 ** 774 ** xcb_visualtype_t * xcb_depth_visuals 775 ** 776 ** @param const xcb_depth_t *R 777 ** @returns xcb_visualtype_t * 778 ** 779 *****************************************************************************/ 780 781 xcb_visualtype_t * 782 xcb_depth_visuals (const xcb_depth_t *R /**< */) 783 { 784 return (xcb_visualtype_t *) (R + 1); 785 } 786 787 788 /***************************************************************************** 789 ** 790 ** int xcb_depth_visuals_length 791 ** 792 ** @param const xcb_depth_t *R 793 ** @returns int 794 ** 795 *****************************************************************************/ 796 797 int 798 xcb_depth_visuals_length (const xcb_depth_t *R /**< */) 799 { 800 return R->visuals_len; 801 } 802 803 804 /***************************************************************************** 805 ** 806 ** xcb_visualtype_iterator_t xcb_depth_visuals_iterator 807 ** 808 ** @param const xcb_depth_t *R 809 ** @returns xcb_visualtype_iterator_t 810 ** 811 *****************************************************************************/ 812 813 xcb_visualtype_iterator_t 814 xcb_depth_visuals_iterator (const xcb_depth_t *R /**< */) 815 { 816 xcb_visualtype_iterator_t i; 817 i.data = (xcb_visualtype_t *) (R + 1); 818 i.rem = R->visuals_len; 819 i.index = (char *) i.data - (char *) R; 820 return i; 821 } 822 823 824 /***************************************************************************** 825 ** 826 ** void xcb_depth_next 827 ** 828 ** @param xcb_depth_iterator_t *i 829 ** @returns void 830 ** 831 *****************************************************************************/ 832 833 void 834 xcb_depth_next (xcb_depth_iterator_t *i /**< */) 835 { 836 xcb_depth_t *R = i->data; 837 xcb_generic_iterator_t child = xcb_visualtype_end(xcb_depth_visuals_iterator(R)); 838 --i->rem; 839 i->data = (xcb_depth_t *) child.data; 840 i->index = child.index; 841 } 842 843 844 /***************************************************************************** 845 ** 846 ** xcb_generic_iterator_t xcb_depth_end 847 ** 848 ** @param xcb_depth_iterator_t i 849 ** @returns xcb_generic_iterator_t 850 ** 851 *****************************************************************************/ 852 853 xcb_generic_iterator_t 854 xcb_depth_end (xcb_depth_iterator_t i /**< */) 855 { 856 xcb_generic_iterator_t ret; 857 while(i.rem > 0) 858 xcb_depth_next(&i); 859 ret.data = i.data; 860 ret.rem = i.rem; 861 ret.index = i.index; 862 return ret; 863 } 864 865 866 /***************************************************************************** 867 ** 868 ** int xcb_screen_allowed_depths_length 869 ** 870 ** @param const xcb_screen_t *R 871 ** @returns int 872 ** 873 *****************************************************************************/ 874 875 int 876 xcb_screen_allowed_depths_length (const xcb_screen_t *R /**< */) 877 { 878 return R->allowed_depths_len; 879 } 880 881 882 /***************************************************************************** 883 ** 884 ** xcb_depth_iterator_t xcb_screen_allowed_depths_iterator 885 ** 886 ** @param const xcb_screen_t *R 887 ** @returns xcb_depth_iterator_t 888 ** 889 *****************************************************************************/ 890 891 xcb_depth_iterator_t 892 xcb_screen_allowed_depths_iterator (const xcb_screen_t *R /**< */) 893 { 894 xcb_depth_iterator_t i; 895 i.data = (xcb_depth_t *) (R + 1); 896 i.rem = R->allowed_depths_len; 897 i.index = (char *) i.data - (char *) R; 898 return i; 899 } 900 901 902 /***************************************************************************** 903 ** 904 ** void xcb_screen_next 905 ** 906 ** @param xcb_screen_iterator_t *i 907 ** @returns void 908 ** 909 *****************************************************************************/ 910 911 void 912 xcb_screen_next (xcb_screen_iterator_t *i /**< */) 913 { 914 xcb_screen_t *R = i->data; 915 xcb_generic_iterator_t child = xcb_depth_end(xcb_screen_allowed_depths_iterator(R)); 916 --i->rem; 917 i->data = (xcb_screen_t *) child.data; 918 i->index = child.index; 919 } 920 921 922 /***************************************************************************** 923 ** 924 ** xcb_generic_iterator_t xcb_screen_end 925 ** 926 ** @param xcb_screen_iterator_t i 927 ** @returns xcb_generic_iterator_t 928 ** 929 *****************************************************************************/ 930 931 xcb_generic_iterator_t 932 xcb_screen_end (xcb_screen_iterator_t i /**< */) 933 { 934 xcb_generic_iterator_t ret; 935 while(i.rem > 0) 936 xcb_screen_next(&i); 937 ret.data = i.data; 938 ret.rem = i.rem; 939 ret.index = i.index; 940 return ret; 941 } 942 943 944 /***************************************************************************** 945 ** 946 ** char * xcb_setup_request_authorization_protocol_name 947 ** 948 ** @param const xcb_setup_request_t *R 949 ** @returns char * 950 ** 951 *****************************************************************************/ 952 953 char * 954 xcb_setup_request_authorization_protocol_name (const xcb_setup_request_t *R /**< */) 955 { 956 return (char *) (R + 1); 957 } 958 959 960 /***************************************************************************** 961 ** 962 ** int xcb_setup_request_authorization_protocol_name_length 963 ** 964 ** @param const xcb_setup_request_t *R 965 ** @returns int 966 ** 967 *****************************************************************************/ 968 969 int 970 xcb_setup_request_authorization_protocol_name_length (const xcb_setup_request_t *R /**< */) 971 { 972 return R->authorization_protocol_name_len; 973 } 974 975 976 /***************************************************************************** 977 ** 978 ** xcb_generic_iterator_t xcb_setup_request_authorization_protocol_name_end 979 ** 980 ** @param const xcb_setup_request_t *R 981 ** @returns xcb_generic_iterator_t 982 ** 983 *****************************************************************************/ 984 985 xcb_generic_iterator_t 986 xcb_setup_request_authorization_protocol_name_end (const xcb_setup_request_t *R /**< */) 987 { 988 xcb_generic_iterator_t i; 989 i.data = ((char *) (R + 1)) + (R->authorization_protocol_name_len); 990 i.rem = 0; 991 i.index = (char *) i.data - (char *) R; 992 return i; 993 } 994 995 996 /***************************************************************************** 997 ** 998 ** char * xcb_setup_request_authorization_protocol_data 999 ** 1000 ** @param const xcb_setup_request_t *R 1001 ** @returns char * 1002 ** 1003 *****************************************************************************/ 1004 1005 char * 1006 xcb_setup_request_authorization_protocol_data (const xcb_setup_request_t *R /**< */) 1007 { 1008 xcb_generic_iterator_t prev = xcb_setup_request_authorization_protocol_name_end(R); 1009 return (char *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); 1010 } 1011 1012 1013 /***************************************************************************** 1014 ** 1015 ** int xcb_setup_request_authorization_protocol_data_length 1016 ** 1017 ** @param const xcb_setup_request_t *R 1018 ** @returns int 1019 ** 1020 *****************************************************************************/ 1021 1022 int 1023 xcb_setup_request_authorization_protocol_data_length (const xcb_setup_request_t *R /**< */) 1024 { 1025 return R->authorization_protocol_data_len; 1026 } 1027 1028 1029 /***************************************************************************** 1030 ** 1031 ** xcb_generic_iterator_t xcb_setup_request_authorization_protocol_data_end 1032 ** 1033 ** @param const xcb_setup_request_t *R 1034 ** @returns xcb_generic_iterator_t 1035 ** 1036 *****************************************************************************/ 1037 1038 xcb_generic_iterator_t 1039 xcb_setup_request_authorization_protocol_data_end (const xcb_setup_request_t *R /**< */) 1040 { 1041 xcb_generic_iterator_t i; 1042 xcb_generic_iterator_t child = xcb_setup_request_authorization_protocol_name_end(R); 1043 i.data = ((char *) child.data) + (R->authorization_protocol_data_len); 1044 i.rem = 0; 1045 i.index = (char *) i.data - (char *) R; 1046 return i; 1047 } 1048 1049 1050 /***************************************************************************** 1051 ** 1052 ** void xcb_setup_request_next 1053 ** 1054 ** @param xcb_setup_request_iterator_t *i 1055 ** @returns void 1056 ** 1057 *****************************************************************************/ 1058 1059 void 1060 xcb_setup_request_next (xcb_setup_request_iterator_t *i /**< */) 1061 { 1062 xcb_setup_request_t *R = i->data; 1063 xcb_generic_iterator_t child = xcb_setup_request_authorization_protocol_data_end(R); 1064 --i->rem; 1065 i->data = (xcb_setup_request_t *) child.data; 1066 i->index = child.index; 1067 } 1068 1069 1070 /***************************************************************************** 1071 ** 1072 ** xcb_generic_iterator_t xcb_setup_request_end 1073 ** 1074 ** @param xcb_setup_request_iterator_t i 1075 ** @returns xcb_generic_iterator_t 1076 ** 1077 *****************************************************************************/ 1078 1079 xcb_generic_iterator_t 1080 xcb_setup_request_end (xcb_setup_request_iterator_t i /**< */) 1081 { 1082 xcb_generic_iterator_t ret; 1083 while(i.rem > 0) 1084 xcb_setup_request_next(&i); 1085 ret.data = i.data; 1086 ret.rem = i.rem; 1087 ret.index = i.index; 1088 return ret; 1089 } 1090 1091 1092 /***************************************************************************** 1093 ** 1094 ** char * xcb_setup_failed_reason 1095 ** 1096 ** @param const xcb_setup_failed_t *R 1097 ** @returns char * 1098 ** 1099 *****************************************************************************/ 1100 1101 char * 1102 xcb_setup_failed_reason (const xcb_setup_failed_t *R /**< */) 1103 { 1104 return (char *) (R + 1); 1105 } 1106 1107 1108 /***************************************************************************** 1109 ** 1110 ** int xcb_setup_failed_reason_length 1111 ** 1112 ** @param const xcb_setup_failed_t *R 1113 ** @returns int 1114 ** 1115 *****************************************************************************/ 1116 1117 int 1118 xcb_setup_failed_reason_length (const xcb_setup_failed_t *R /**< */) 1119 { 1120 return R->reason_len; 1121 } 1122 1123 1124 /***************************************************************************** 1125 ** 1126 ** xcb_generic_iterator_t xcb_setup_failed_reason_end 1127 ** 1128 ** @param const xcb_setup_failed_t *R 1129 ** @returns xcb_generic_iterator_t 1130 ** 1131 *****************************************************************************/ 1132 1133 xcb_generic_iterator_t 1134 xcb_setup_failed_reason_end (const xcb_setup_failed_t *R /**< */) 1135 { 1136 xcb_generic_iterator_t i; 1137 i.data = ((char *) (R + 1)) + (R->reason_len); 1138 i.rem = 0; 1139 i.index = (char *) i.data - (char *) R; 1140 return i; 1141 } 1142 1143 1144 /***************************************************************************** 1145 ** 1146 ** void xcb_setup_failed_next 1147 ** 1148 ** @param xcb_setup_failed_iterator_t *i 1149 ** @returns void 1150 ** 1151 *****************************************************************************/ 1152 1153 void 1154 xcb_setup_failed_next (xcb_setup_failed_iterator_t *i /**< */) 1155 { 1156 xcb_setup_failed_t *R = i->data; 1157 xcb_generic_iterator_t child = xcb_setup_failed_reason_end(R); 1158 --i->rem; 1159 i->data = (xcb_setup_failed_t *) child.data; 1160 i->index = child.index; 1161 } 1162 1163 1164 /***************************************************************************** 1165 ** 1166 ** xcb_generic_iterator_t xcb_setup_failed_end 1167 ** 1168 ** @param xcb_setup_failed_iterator_t i 1169 ** @returns xcb_generic_iterator_t 1170 ** 1171 *****************************************************************************/ 1172 1173 xcb_generic_iterator_t 1174 xcb_setup_failed_end (xcb_setup_failed_iterator_t i /**< */) 1175 { 1176 xcb_generic_iterator_t ret; 1177 while(i.rem > 0) 1178 xcb_setup_failed_next(&i); 1179 ret.data = i.data; 1180 ret.rem = i.rem; 1181 ret.index = i.index; 1182 return ret; 1183 } 1184 1185 1186 /***************************************************************************** 1187 ** 1188 ** char * xcb_setup_authenticate_reason 1189 ** 1190 ** @param const xcb_setup_authenticate_t *R 1191 ** @returns char * 1192 ** 1193 *****************************************************************************/ 1194 1195 char * 1196 xcb_setup_authenticate_reason (const xcb_setup_authenticate_t *R /**< */) 1197 { 1198 return (char *) (R + 1); 1199 } 1200 1201 1202 /***************************************************************************** 1203 ** 1204 ** int xcb_setup_authenticate_reason_length 1205 ** 1206 ** @param const xcb_setup_authenticate_t *R 1207 ** @returns int 1208 ** 1209 *****************************************************************************/ 1210 1211 int 1212 xcb_setup_authenticate_reason_length (const xcb_setup_authenticate_t *R /**< */) 1213 { 1214 return (R->length * 4); 1215 } 1216 1217 1218 /***************************************************************************** 1219 ** 1220 ** xcb_generic_iterator_t xcb_setup_authenticate_reason_end 1221 ** 1222 ** @param const xcb_setup_authenticate_t *R 1223 ** @returns xcb_generic_iterator_t 1224 ** 1225 *****************************************************************************/ 1226 1227 xcb_generic_iterator_t 1228 xcb_setup_authenticate_reason_end (const xcb_setup_authenticate_t *R /**< */) 1229 { 1230 xcb_generic_iterator_t i; 1231 i.data = ((char *) (R + 1)) + ((R->length * 4)); 1232 i.rem = 0; 1233 i.index = (char *) i.data - (char *) R; 1234 return i; 1235 } 1236 1237 1238 /***************************************************************************** 1239 ** 1240 ** void xcb_setup_authenticate_next 1241 ** 1242 ** @param xcb_setup_authenticate_iterator_t *i 1243 ** @returns void 1244 ** 1245 *****************************************************************************/ 1246 1247 void 1248 xcb_setup_authenticate_next (xcb_setup_authenticate_iterator_t *i /**< */) 1249 { 1250 xcb_setup_authenticate_t *R = i->data; 1251 xcb_generic_iterator_t child = xcb_setup_authenticate_reason_end(R); 1252 --i->rem; 1253 i->data = (xcb_setup_authenticate_t *) child.data; 1254 i->index = child.index; 1255 } 1256 1257 1258 /***************************************************************************** 1259 ** 1260 ** xcb_generic_iterator_t xcb_setup_authenticate_end 1261 ** 1262 ** @param xcb_setup_authenticate_iterator_t i 1263 ** @returns xcb_generic_iterator_t 1264 ** 1265 *****************************************************************************/ 1266 1267 xcb_generic_iterator_t 1268 xcb_setup_authenticate_end (xcb_setup_authenticate_iterator_t i /**< */) 1269 { 1270 xcb_generic_iterator_t ret; 1271 while(i.rem > 0) 1272 xcb_setup_authenticate_next(&i); 1273 ret.data = i.data; 1274 ret.rem = i.rem; 1275 ret.index = i.index; 1276 return ret; 1277 } 1278 1279 1280 /***************************************************************************** 1281 ** 1282 ** char * xcb_setup_vendor 1283 ** 1284 ** @param const xcb_setup_t *R 1285 ** @returns char * 1286 ** 1287 *****************************************************************************/ 1288 1289 char * 1290 xcb_setup_vendor (const xcb_setup_t *R /**< */) 1291 { 1292 return (char *) (R + 1); 1293 } 1294 1295 1296 /***************************************************************************** 1297 ** 1298 ** int xcb_setup_vendor_length 1299 ** 1300 ** @param const xcb_setup_t *R 1301 ** @returns int 1302 ** 1303 *****************************************************************************/ 1304 1305 int 1306 xcb_setup_vendor_length (const xcb_setup_t *R /**< */) 1307 { 1308 return R->vendor_len; 1309 } 1310 1311 1312 /***************************************************************************** 1313 ** 1314 ** xcb_generic_iterator_t xcb_setup_vendor_end 1315 ** 1316 ** @param const xcb_setup_t *R 1317 ** @returns xcb_generic_iterator_t 1318 ** 1319 *****************************************************************************/ 1320 1321 xcb_generic_iterator_t 1322 xcb_setup_vendor_end (const xcb_setup_t *R /**< */) 1323 { 1324 xcb_generic_iterator_t i; 1325 i.data = ((char *) (R + 1)) + (R->vendor_len); 1326 i.rem = 0; 1327 i.index = (char *) i.data - (char *) R; 1328 return i; 1329 } 1330 1331 1332 /***************************************************************************** 1333 ** 1334 ** xcb_format_t * xcb_setup_pixmap_formats 1335 ** 1336 ** @param const xcb_setup_t *R 1337 ** @returns xcb_format_t * 1338 ** 1339 *****************************************************************************/ 1340 1341 xcb_format_t * 1342 xcb_setup_pixmap_formats (const xcb_setup_t *R /**< */) 1343 { 1344 xcb_generic_iterator_t prev = xcb_setup_vendor_end(R); 1345 return (xcb_format_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_format_t, prev.index) + 0); 1346 } 1347 1348 1349 /***************************************************************************** 1350 ** 1351 ** int xcb_setup_pixmap_formats_length 1352 ** 1353 ** @param const xcb_setup_t *R 1354 ** @returns int 1355 ** 1356 *****************************************************************************/ 1357 1358 int 1359 xcb_setup_pixmap_formats_length (const xcb_setup_t *R /**< */) 1360 { 1361 return R->pixmap_formats_len; 1362 } 1363 1364 1365 /***************************************************************************** 1366 ** 1367 ** xcb_format_iterator_t xcb_setup_pixmap_formats_iterator 1368 ** 1369 ** @param const xcb_setup_t *R 1370 ** @returns xcb_format_iterator_t 1371 ** 1372 *****************************************************************************/ 1373 1374 xcb_format_iterator_t 1375 xcb_setup_pixmap_formats_iterator (const xcb_setup_t *R /**< */) 1376 { 1377 xcb_format_iterator_t i; 1378 xcb_generic_iterator_t prev = xcb_setup_vendor_end(R); 1379 i.data = (xcb_format_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_format_t, prev.index)); 1380 i.rem = R->pixmap_formats_len; 1381 i.index = (char *) i.data - (char *) R; 1382 return i; 1383 } 1384 1385 1386 /***************************************************************************** 1387 ** 1388 ** int xcb_setup_roots_length 1389 ** 1390 ** @param const xcb_setup_t *R 1391 ** @returns int 1392 ** 1393 *****************************************************************************/ 1394 1395 int 1396 xcb_setup_roots_length (const xcb_setup_t *R /**< */) 1397 { 1398 return R->roots_len; 1399 } 1400 1401 1402 /***************************************************************************** 1403 ** 1404 ** xcb_screen_iterator_t xcb_setup_roots_iterator 1405 ** 1406 ** @param const xcb_setup_t *R 1407 ** @returns xcb_screen_iterator_t 1408 ** 1409 *****************************************************************************/ 1410 1411 xcb_screen_iterator_t 1412 xcb_setup_roots_iterator (const xcb_setup_t *R /**< */) 1413 { 1414 xcb_screen_iterator_t i; 1415 xcb_generic_iterator_t prev = xcb_format_end(xcb_setup_pixmap_formats_iterator(R)); 1416 i.data = (xcb_screen_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_screen_t, prev.index)); 1417 i.rem = R->roots_len; 1418 i.index = (char *) i.data - (char *) R; 1419 return i; 1420 } 1421 1422 1423 /***************************************************************************** 1424 ** 1425 ** void xcb_setup_next 1426 ** 1427 ** @param xcb_setup_iterator_t *i 1428 ** @returns void 1429 ** 1430 *****************************************************************************/ 1431 1432 void 1433 xcb_setup_next (xcb_setup_iterator_t *i /**< */) 1434 { 1435 xcb_setup_t *R = i->data; 1436 xcb_generic_iterator_t child = xcb_screen_end(xcb_setup_roots_iterator(R)); 1437 --i->rem; 1438 i->data = (xcb_setup_t *) child.data; 1439 i->index = child.index; 1440 } 1441 1442 1443 /***************************************************************************** 1444 ** 1445 ** xcb_generic_iterator_t xcb_setup_end 1446 ** 1447 ** @param xcb_setup_iterator_t i 1448 ** @returns xcb_generic_iterator_t 1449 ** 1450 *****************************************************************************/ 1451 1452 xcb_generic_iterator_t 1453 xcb_setup_end (xcb_setup_iterator_t i /**< */) 1454 { 1455 xcb_generic_iterator_t ret; 1456 while(i.rem > 0) 1457 xcb_setup_next(&i); 1458 ret.data = i.data; 1459 ret.rem = i.rem; 1460 ret.index = i.index; 1461 return ret; 1462 } 1463 1464 1465 /***************************************************************************** 1466 ** 1467 ** void xcb_client_message_data_next 1468 ** 1469 ** @param xcb_client_message_data_iterator_t *i 1470 ** @returns void 1471 ** 1472 *****************************************************************************/ 1473 1474 void 1475 xcb_client_message_data_next (xcb_client_message_data_iterator_t *i /**< */) 1476 { 1477 --i->rem; 1478 ++i->data; 1479 i->index += sizeof(xcb_client_message_data_t); 1480 } 1481 1482 1483 /***************************************************************************** 1484 ** 1485 ** xcb_generic_iterator_t xcb_client_message_data_end 1486 ** 1487 ** @param xcb_client_message_data_iterator_t i 1488 ** @returns xcb_generic_iterator_t 1489 ** 1490 *****************************************************************************/ 1491 1492 xcb_generic_iterator_t 1493 xcb_client_message_data_end (xcb_client_message_data_iterator_t i /**< */) 1494 { 1495 xcb_generic_iterator_t ret; 1496 ret.data = i.data + i.rem; 1497 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1498 ret.rem = 0; 1499 return ret; 1500 } 1501 1502 1503 /***************************************************************************** 1504 ** 1505 ** xcb_void_cookie_t xcb_create_window_checked 1506 ** 1507 ** @param xcb_connection_t *c 1508 ** @param uint8_t depth 1509 ** @param xcb_window_t wid 1510 ** @param xcb_window_t parent 1511 ** @param int16_t x 1512 ** @param int16_t y 1513 ** @param uint16_t width 1514 ** @param uint16_t height 1515 ** @param uint16_t border_width 1516 ** @param uint16_t _class 1517 ** @param xcb_visualid_t visual 1518 ** @param uint32_t value_mask 1519 ** @param const uint32_t *value_list 1520 ** @returns xcb_void_cookie_t 1521 ** 1522 *****************************************************************************/ 1523 1524 xcb_void_cookie_t 1525 xcb_create_window_checked (xcb_connection_t *c /**< */, 1526 uint8_t depth /**< */, 1527 xcb_window_t wid /**< */, 1528 xcb_window_t parent /**< */, 1529 int16_t x /**< */, 1530 int16_t y /**< */, 1531 uint16_t width /**< */, 1532 uint16_t height /**< */, 1533 uint16_t border_width /**< */, 1534 uint16_t _class /**< */, 1535 xcb_visualid_t visual /**< */, 1536 uint32_t value_mask /**< */, 1537 const uint32_t *value_list /**< */) 1538 { 1539 static const xcb_protocol_request_t xcb_req = { 1540 /* count */ 4, 1541 /* ext */ 0, 1542 /* opcode */ XCB_CREATE_WINDOW, 1543 /* isvoid */ 1 1544 }; 1545 1546 struct iovec xcb_parts[6]; 1547 xcb_void_cookie_t xcb_ret; 1548 xcb_create_window_request_t xcb_out; 1549 1550 xcb_out.depth = depth; 1551 xcb_out.wid = wid; 1552 xcb_out.parent = parent; 1553 xcb_out.x = x; 1554 xcb_out.y = y; 1555 xcb_out.width = width; 1556 xcb_out.height = height; 1557 xcb_out.border_width = border_width; 1558 xcb_out._class = _class; 1559 xcb_out.visual = visual; 1560 xcb_out.value_mask = value_mask; 1561 1562 xcb_parts[2].iov_base = (char *) &xcb_out; 1563 xcb_parts[2].iov_len = sizeof(xcb_out); 1564 xcb_parts[3].iov_base = 0; 1565 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1566 xcb_parts[4].iov_base = (char *) value_list; 1567 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1568 xcb_parts[5].iov_base = 0; 1569 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1570 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1571 return xcb_ret; 1572 } 1573 1574 1575 /***************************************************************************** 1576 ** 1577 ** xcb_void_cookie_t xcb_create_window 1578 ** 1579 ** @param xcb_connection_t *c 1580 ** @param uint8_t depth 1581 ** @param xcb_window_t wid 1582 ** @param xcb_window_t parent 1583 ** @param int16_t x 1584 ** @param int16_t y 1585 ** @param uint16_t width 1586 ** @param uint16_t height 1587 ** @param uint16_t border_width 1588 ** @param uint16_t _class 1589 ** @param xcb_visualid_t visual 1590 ** @param uint32_t value_mask 1591 ** @param const uint32_t *value_list 1592 ** @returns xcb_void_cookie_t 1593 ** 1594 *****************************************************************************/ 1595 1596 xcb_void_cookie_t 1597 xcb_create_window (xcb_connection_t *c /**< */, 1598 uint8_t depth /**< */, 1599 xcb_window_t wid /**< */, 1600 xcb_window_t parent /**< */, 1601 int16_t x /**< */, 1602 int16_t y /**< */, 1603 uint16_t width /**< */, 1604 uint16_t height /**< */, 1605 uint16_t border_width /**< */, 1606 uint16_t _class /**< */, 1607 xcb_visualid_t visual /**< */, 1608 uint32_t value_mask /**< */, 1609 const uint32_t *value_list /**< */) 1610 { 1611 static const xcb_protocol_request_t xcb_req = { 1612 /* count */ 4, 1613 /* ext */ 0, 1614 /* opcode */ XCB_CREATE_WINDOW, 1615 /* isvoid */ 1 1616 }; 1617 1618 struct iovec xcb_parts[6]; 1619 xcb_void_cookie_t xcb_ret; 1620 xcb_create_window_request_t xcb_out; 1621 1622 xcb_out.depth = depth; 1623 xcb_out.wid = wid; 1624 xcb_out.parent = parent; 1625 xcb_out.x = x; 1626 xcb_out.y = y; 1627 xcb_out.width = width; 1628 xcb_out.height = height; 1629 xcb_out.border_width = border_width; 1630 xcb_out._class = _class; 1631 xcb_out.visual = visual; 1632 xcb_out.value_mask = value_mask; 1633 1634 xcb_parts[2].iov_base = (char *) &xcb_out; 1635 xcb_parts[2].iov_len = sizeof(xcb_out); 1636 xcb_parts[3].iov_base = 0; 1637 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1638 xcb_parts[4].iov_base = (char *) value_list; 1639 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1640 xcb_parts[5].iov_base = 0; 1641 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1642 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1643 return xcb_ret; 1644 } 1645 1646 1647 /***************************************************************************** 1648 ** 1649 ** xcb_void_cookie_t xcb_change_window_attributes_checked 1650 ** 1651 ** @param xcb_connection_t *c 1652 ** @param xcb_window_t window 1653 ** @param uint32_t value_mask 1654 ** @param const uint32_t *value_list 1655 ** @returns xcb_void_cookie_t 1656 ** 1657 *****************************************************************************/ 1658 1659 xcb_void_cookie_t 1660 xcb_change_window_attributes_checked (xcb_connection_t *c /**< */, 1661 xcb_window_t window /**< */, 1662 uint32_t value_mask /**< */, 1663 const uint32_t *value_list /**< */) 1664 { 1665 static const xcb_protocol_request_t xcb_req = { 1666 /* count */ 4, 1667 /* ext */ 0, 1668 /* opcode */ XCB_CHANGE_WINDOW_ATTRIBUTES, 1669 /* isvoid */ 1 1670 }; 1671 1672 struct iovec xcb_parts[6]; 1673 xcb_void_cookie_t xcb_ret; 1674 xcb_change_window_attributes_request_t xcb_out; 1675 1676 xcb_out.pad0 = 0; 1677 xcb_out.window = window; 1678 xcb_out.value_mask = value_mask; 1679 1680 xcb_parts[2].iov_base = (char *) &xcb_out; 1681 xcb_parts[2].iov_len = sizeof(xcb_out); 1682 xcb_parts[3].iov_base = 0; 1683 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1684 xcb_parts[4].iov_base = (char *) value_list; 1685 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1686 xcb_parts[5].iov_base = 0; 1687 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1688 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1689 return xcb_ret; 1690 } 1691 1692 1693 /***************************************************************************** 1694 ** 1695 ** xcb_void_cookie_t xcb_change_window_attributes 1696 ** 1697 ** @param xcb_connection_t *c 1698 ** @param xcb_window_t window 1699 ** @param uint32_t value_mask 1700 ** @param const uint32_t *value_list 1701 ** @returns xcb_void_cookie_t 1702 ** 1703 *****************************************************************************/ 1704 1705 xcb_void_cookie_t 1706 xcb_change_window_attributes (xcb_connection_t *c /**< */, 1707 xcb_window_t window /**< */, 1708 uint32_t value_mask /**< */, 1709 const uint32_t *value_list /**< */) 1710 { 1711 static const xcb_protocol_request_t xcb_req = { 1712 /* count */ 4, 1713 /* ext */ 0, 1714 /* opcode */ XCB_CHANGE_WINDOW_ATTRIBUTES, 1715 /* isvoid */ 1 1716 }; 1717 1718 struct iovec xcb_parts[6]; 1719 xcb_void_cookie_t xcb_ret; 1720 xcb_change_window_attributes_request_t xcb_out; 1721 1722 xcb_out.pad0 = 0; 1723 xcb_out.window = window; 1724 xcb_out.value_mask = value_mask; 1725 1726 xcb_parts[2].iov_base = (char *) &xcb_out; 1727 xcb_parts[2].iov_len = sizeof(xcb_out); 1728 xcb_parts[3].iov_base = 0; 1729 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1730 xcb_parts[4].iov_base = (char *) value_list; 1731 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1732 xcb_parts[5].iov_base = 0; 1733 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1734 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1735 return xcb_ret; 1736 } 1737 1738 1739 /***************************************************************************** 1740 ** 1741 ** xcb_get_window_attributes_cookie_t xcb_get_window_attributes 1742 ** 1743 ** @param xcb_connection_t *c 1744 ** @param xcb_window_t window 1745 ** @returns xcb_get_window_attributes_cookie_t 1746 ** 1747 *****************************************************************************/ 1748 1749 xcb_get_window_attributes_cookie_t 1750 xcb_get_window_attributes (xcb_connection_t *c /**< */, 1751 xcb_window_t window /**< */) 1752 { 1753 static const xcb_protocol_request_t xcb_req = { 1754 /* count */ 2, 1755 /* ext */ 0, 1756 /* opcode */ XCB_GET_WINDOW_ATTRIBUTES, 1757 /* isvoid */ 0 1758 }; 1759 1760 struct iovec xcb_parts[4]; 1761 xcb_get_window_attributes_cookie_t xcb_ret; 1762 xcb_get_window_attributes_request_t xcb_out; 1763 1764 xcb_out.pad0 = 0; 1765 xcb_out.window = window; 1766 1767 xcb_parts[2].iov_base = (char *) &xcb_out; 1768 xcb_parts[2].iov_len = sizeof(xcb_out); 1769 xcb_parts[3].iov_base = 0; 1770 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1771 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1772 return xcb_ret; 1773 } 1774 1775 1776 /***************************************************************************** 1777 ** 1778 ** xcb_get_window_attributes_cookie_t xcb_get_window_attributes_unchecked 1779 ** 1780 ** @param xcb_connection_t *c 1781 ** @param xcb_window_t window 1782 ** @returns xcb_get_window_attributes_cookie_t 1783 ** 1784 *****************************************************************************/ 1785 1786 xcb_get_window_attributes_cookie_t 1787 xcb_get_window_attributes_unchecked (xcb_connection_t *c /**< */, 1788 xcb_window_t window /**< */) 1789 { 1790 static const xcb_protocol_request_t xcb_req = { 1791 /* count */ 2, 1792 /* ext */ 0, 1793 /* opcode */ XCB_GET_WINDOW_ATTRIBUTES, 1794 /* isvoid */ 0 1795 }; 1796 1797 struct iovec xcb_parts[4]; 1798 xcb_get_window_attributes_cookie_t xcb_ret; 1799 xcb_get_window_attributes_request_t xcb_out; 1800 1801 xcb_out.pad0 = 0; 1802 xcb_out.window = window; 1803 1804 xcb_parts[2].iov_base = (char *) &xcb_out; 1805 xcb_parts[2].iov_len = sizeof(xcb_out); 1806 xcb_parts[3].iov_base = 0; 1807 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1808 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1809 return xcb_ret; 1810 } 1811 1812 1813 /***************************************************************************** 1814 ** 1815 ** xcb_get_window_attributes_reply_t * xcb_get_window_attributes_reply 1816 ** 1817 ** @param xcb_connection_t *c 1818 ** @param xcb_get_window_attributes_cookie_t cookie 1819 ** @param xcb_generic_error_t **e 1820 ** @returns xcb_get_window_attributes_reply_t * 1821 ** 1822 *****************************************************************************/ 1823 1824 xcb_get_window_attributes_reply_t * 1825 xcb_get_window_attributes_reply (xcb_connection_t *c /**< */, 1826 xcb_get_window_attributes_cookie_t cookie /**< */, 1827 xcb_generic_error_t **e /**< */) 1828 { 1829 return (xcb_get_window_attributes_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1830 } 1831 1832 1833 /***************************************************************************** 1834 ** 1835 ** xcb_void_cookie_t xcb_destroy_window_checked 1836 ** 1837 ** @param xcb_connection_t *c 1838 ** @param xcb_window_t window 1839 ** @returns xcb_void_cookie_t 1840 ** 1841 *****************************************************************************/ 1842 1843 xcb_void_cookie_t 1844 xcb_destroy_window_checked (xcb_connection_t *c /**< */, 1845 xcb_window_t window /**< */) 1846 { 1847 static const xcb_protocol_request_t xcb_req = { 1848 /* count */ 2, 1849 /* ext */ 0, 1850 /* opcode */ XCB_DESTROY_WINDOW, 1851 /* isvoid */ 1 1852 }; 1853 1854 struct iovec xcb_parts[4]; 1855 xcb_void_cookie_t xcb_ret; 1856 xcb_destroy_window_request_t xcb_out; 1857 1858 xcb_out.pad0 = 0; 1859 xcb_out.window = window; 1860 1861 xcb_parts[2].iov_base = (char *) &xcb_out; 1862 xcb_parts[2].iov_len = sizeof(xcb_out); 1863 xcb_parts[3].iov_base = 0; 1864 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1865 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1866 return xcb_ret; 1867 } 1868 1869 1870 /***************************************************************************** 1871 ** 1872 ** xcb_void_cookie_t xcb_destroy_window 1873 ** 1874 ** @param xcb_connection_t *c 1875 ** @param xcb_window_t window 1876 ** @returns xcb_void_cookie_t 1877 ** 1878 *****************************************************************************/ 1879 1880 xcb_void_cookie_t 1881 xcb_destroy_window (xcb_connection_t *c /**< */, 1882 xcb_window_t window /**< */) 1883 { 1884 static const xcb_protocol_request_t xcb_req = { 1885 /* count */ 2, 1886 /* ext */ 0, 1887 /* opcode */ XCB_DESTROY_WINDOW, 1888 /* isvoid */ 1 1889 }; 1890 1891 struct iovec xcb_parts[4]; 1892 xcb_void_cookie_t xcb_ret; 1893 xcb_destroy_window_request_t xcb_out; 1894 1895 xcb_out.pad0 = 0; 1896 xcb_out.window = window; 1897 1898 xcb_parts[2].iov_base = (char *) &xcb_out; 1899 xcb_parts[2].iov_len = sizeof(xcb_out); 1900 xcb_parts[3].iov_base = 0; 1901 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1902 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1903 return xcb_ret; 1904 } 1905 1906 1907 /***************************************************************************** 1908 ** 1909 ** xcb_void_cookie_t xcb_destroy_subwindows_checked 1910 ** 1911 ** @param xcb_connection_t *c 1912 ** @param xcb_window_t window 1913 ** @returns xcb_void_cookie_t 1914 ** 1915 *****************************************************************************/ 1916 1917 xcb_void_cookie_t 1918 xcb_destroy_subwindows_checked (xcb_connection_t *c /**< */, 1919 xcb_window_t window /**< */) 1920 { 1921 static const xcb_protocol_request_t xcb_req = { 1922 /* count */ 2, 1923 /* ext */ 0, 1924 /* opcode */ XCB_DESTROY_SUBWINDOWS, 1925 /* isvoid */ 1 1926 }; 1927 1928 struct iovec xcb_parts[4]; 1929 xcb_void_cookie_t xcb_ret; 1930 xcb_destroy_subwindows_request_t xcb_out; 1931 1932 xcb_out.pad0 = 0; 1933 xcb_out.window = window; 1934 1935 xcb_parts[2].iov_base = (char *) &xcb_out; 1936 xcb_parts[2].iov_len = sizeof(xcb_out); 1937 xcb_parts[3].iov_base = 0; 1938 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1939 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1940 return xcb_ret; 1941 } 1942 1943 1944 /***************************************************************************** 1945 ** 1946 ** xcb_void_cookie_t xcb_destroy_subwindows 1947 ** 1948 ** @param xcb_connection_t *c 1949 ** @param xcb_window_t window 1950 ** @returns xcb_void_cookie_t 1951 ** 1952 *****************************************************************************/ 1953 1954 xcb_void_cookie_t 1955 xcb_destroy_subwindows (xcb_connection_t *c /**< */, 1956 xcb_window_t window /**< */) 1957 { 1958 static const xcb_protocol_request_t xcb_req = { 1959 /* count */ 2, 1960 /* ext */ 0, 1961 /* opcode */ XCB_DESTROY_SUBWINDOWS, 1962 /* isvoid */ 1 1963 }; 1964 1965 struct iovec xcb_parts[4]; 1966 xcb_void_cookie_t xcb_ret; 1967 xcb_destroy_subwindows_request_t xcb_out; 1968 1969 xcb_out.pad0 = 0; 1970 xcb_out.window = window; 1971 1972 xcb_parts[2].iov_base = (char *) &xcb_out; 1973 xcb_parts[2].iov_len = sizeof(xcb_out); 1974 xcb_parts[3].iov_base = 0; 1975 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1976 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1977 return xcb_ret; 1978 } 1979 1980 1981 /***************************************************************************** 1982 ** 1983 ** xcb_void_cookie_t xcb_change_save_set_checked 1984 ** 1985 ** @param xcb_connection_t *c 1986 ** @param uint8_t mode 1987 ** @param xcb_window_t window 1988 ** @returns xcb_void_cookie_t 1989 ** 1990 *****************************************************************************/ 1991 1992 xcb_void_cookie_t 1993 xcb_change_save_set_checked (xcb_connection_t *c /**< */, 1994 uint8_t mode /**< */, 1995 xcb_window_t window /**< */) 1996 { 1997 static const xcb_protocol_request_t xcb_req = { 1998 /* count */ 2, 1999 /* ext */ 0, 2000 /* opcode */ XCB_CHANGE_SAVE_SET, 2001 /* isvoid */ 1 2002 }; 2003 2004 struct iovec xcb_parts[4]; 2005 xcb_void_cookie_t xcb_ret; 2006 xcb_change_save_set_request_t xcb_out; 2007 2008 xcb_out.mode = mode; 2009 xcb_out.window = window; 2010 2011 xcb_parts[2].iov_base = (char *) &xcb_out; 2012 xcb_parts[2].iov_len = sizeof(xcb_out); 2013 xcb_parts[3].iov_base = 0; 2014 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2015 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2016 return xcb_ret; 2017 } 2018 2019 2020 /***************************************************************************** 2021 ** 2022 ** xcb_void_cookie_t xcb_change_save_set 2023 ** 2024 ** @param xcb_connection_t *c 2025 ** @param uint8_t mode 2026 ** @param xcb_window_t window 2027 ** @returns xcb_void_cookie_t 2028 ** 2029 *****************************************************************************/ 2030 2031 xcb_void_cookie_t 2032 xcb_change_save_set (xcb_connection_t *c /**< */, 2033 uint8_t mode /**< */, 2034 xcb_window_t window /**< */) 2035 { 2036 static const xcb_protocol_request_t xcb_req = { 2037 /* count */ 2, 2038 /* ext */ 0, 2039 /* opcode */ XCB_CHANGE_SAVE_SET, 2040 /* isvoid */ 1 2041 }; 2042 2043 struct iovec xcb_parts[4]; 2044 xcb_void_cookie_t xcb_ret; 2045 xcb_change_save_set_request_t xcb_out; 2046 2047 xcb_out.mode = mode; 2048 xcb_out.window = window; 2049 2050 xcb_parts[2].iov_base = (char *) &xcb_out; 2051 xcb_parts[2].iov_len = sizeof(xcb_out); 2052 xcb_parts[3].iov_base = 0; 2053 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2054 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2055 return xcb_ret; 2056 } 2057 2058 2059 /***************************************************************************** 2060 ** 2061 ** xcb_void_cookie_t xcb_reparent_window_checked 2062 ** 2063 ** @param xcb_connection_t *c 2064 ** @param xcb_window_t window 2065 ** @param xcb_window_t parent 2066 ** @param int16_t x 2067 ** @param int16_t y 2068 ** @returns xcb_void_cookie_t 2069 ** 2070 *****************************************************************************/ 2071 2072 xcb_void_cookie_t 2073 xcb_reparent_window_checked (xcb_connection_t *c /**< */, 2074 xcb_window_t window /**< */, 2075 xcb_window_t parent /**< */, 2076 int16_t x /**< */, 2077 int16_t y /**< */) 2078 { 2079 static const xcb_protocol_request_t xcb_req = { 2080 /* count */ 2, 2081 /* ext */ 0, 2082 /* opcode */ XCB_REPARENT_WINDOW, 2083 /* isvoid */ 1 2084 }; 2085 2086 struct iovec xcb_parts[4]; 2087 xcb_void_cookie_t xcb_ret; 2088 xcb_reparent_window_request_t xcb_out; 2089 2090 xcb_out.pad0 = 0; 2091 xcb_out.window = window; 2092 xcb_out.parent = parent; 2093 xcb_out.x = x; 2094 xcb_out.y = y; 2095 2096 xcb_parts[2].iov_base = (char *) &xcb_out; 2097 xcb_parts[2].iov_len = sizeof(xcb_out); 2098 xcb_parts[3].iov_base = 0; 2099 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2100 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2101 return xcb_ret; 2102 } 2103 2104 2105 /***************************************************************************** 2106 ** 2107 ** xcb_void_cookie_t xcb_reparent_window 2108 ** 2109 ** @param xcb_connection_t *c 2110 ** @param xcb_window_t window 2111 ** @param xcb_window_t parent 2112 ** @param int16_t x 2113 ** @param int16_t y 2114 ** @returns xcb_void_cookie_t 2115 ** 2116 *****************************************************************************/ 2117 2118 xcb_void_cookie_t 2119 xcb_reparent_window (xcb_connection_t *c /**< */, 2120 xcb_window_t window /**< */, 2121 xcb_window_t parent /**< */, 2122 int16_t x /**< */, 2123 int16_t y /**< */) 2124 { 2125 static const xcb_protocol_request_t xcb_req = { 2126 /* count */ 2, 2127 /* ext */ 0, 2128 /* opcode */ XCB_REPARENT_WINDOW, 2129 /* isvoid */ 1 2130 }; 2131 2132 struct iovec xcb_parts[4]; 2133 xcb_void_cookie_t xcb_ret; 2134 xcb_reparent_window_request_t xcb_out; 2135 2136 xcb_out.pad0 = 0; 2137 xcb_out.window = window; 2138 xcb_out.parent = parent; 2139 xcb_out.x = x; 2140 xcb_out.y = y; 2141 2142 xcb_parts[2].iov_base = (char *) &xcb_out; 2143 xcb_parts[2].iov_len = sizeof(xcb_out); 2144 xcb_parts[3].iov_base = 0; 2145 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2146 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2147 return xcb_ret; 2148 } 2149 2150 2151 /***************************************************************************** 2152 ** 2153 ** xcb_void_cookie_t xcb_map_window_checked 2154 ** 2155 ** @param xcb_connection_t *c 2156 ** @param xcb_window_t window 2157 ** @returns xcb_void_cookie_t 2158 ** 2159 *****************************************************************************/ 2160 2161 xcb_void_cookie_t 2162 xcb_map_window_checked (xcb_connection_t *c /**< */, 2163 xcb_window_t window /**< */) 2164 { 2165 static const xcb_protocol_request_t xcb_req = { 2166 /* count */ 2, 2167 /* ext */ 0, 2168 /* opcode */ XCB_MAP_WINDOW, 2169 /* isvoid */ 1 2170 }; 2171 2172 struct iovec xcb_parts[4]; 2173 xcb_void_cookie_t xcb_ret; 2174 xcb_map_window_request_t xcb_out; 2175 2176 xcb_out.pad0 = 0; 2177 xcb_out.window = window; 2178 2179 xcb_parts[2].iov_base = (char *) &xcb_out; 2180 xcb_parts[2].iov_len = sizeof(xcb_out); 2181 xcb_parts[3].iov_base = 0; 2182 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2183 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2184 return xcb_ret; 2185 } 2186 2187 2188 /***************************************************************************** 2189 ** 2190 ** xcb_void_cookie_t xcb_map_window 2191 ** 2192 ** @param xcb_connection_t *c 2193 ** @param xcb_window_t window 2194 ** @returns xcb_void_cookie_t 2195 ** 2196 *****************************************************************************/ 2197 2198 xcb_void_cookie_t 2199 xcb_map_window (xcb_connection_t *c /**< */, 2200 xcb_window_t window /**< */) 2201 { 2202 static const xcb_protocol_request_t xcb_req = { 2203 /* count */ 2, 2204 /* ext */ 0, 2205 /* opcode */ XCB_MAP_WINDOW, 2206 /* isvoid */ 1 2207 }; 2208 2209 struct iovec xcb_parts[4]; 2210 xcb_void_cookie_t xcb_ret; 2211 xcb_map_window_request_t xcb_out; 2212 2213 xcb_out.pad0 = 0; 2214 xcb_out.window = window; 2215 2216 xcb_parts[2].iov_base = (char *) &xcb_out; 2217 xcb_parts[2].iov_len = sizeof(xcb_out); 2218 xcb_parts[3].iov_base = 0; 2219 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2220 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2221 return xcb_ret; 2222 } 2223 2224 2225 /***************************************************************************** 2226 ** 2227 ** xcb_void_cookie_t xcb_map_subwindows_checked 2228 ** 2229 ** @param xcb_connection_t *c 2230 ** @param xcb_window_t window 2231 ** @returns xcb_void_cookie_t 2232 ** 2233 *****************************************************************************/ 2234 2235 xcb_void_cookie_t 2236 xcb_map_subwindows_checked (xcb_connection_t *c /**< */, 2237 xcb_window_t window /**< */) 2238 { 2239 static const xcb_protocol_request_t xcb_req = { 2240 /* count */ 2, 2241 /* ext */ 0, 2242 /* opcode */ XCB_MAP_SUBWINDOWS, 2243 /* isvoid */ 1 2244 }; 2245 2246 struct iovec xcb_parts[4]; 2247 xcb_void_cookie_t xcb_ret; 2248 xcb_map_subwindows_request_t xcb_out; 2249 2250 xcb_out.pad0 = 0; 2251 xcb_out.window = window; 2252 2253 xcb_parts[2].iov_base = (char *) &xcb_out; 2254 xcb_parts[2].iov_len = sizeof(xcb_out); 2255 xcb_parts[3].iov_base = 0; 2256 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2257 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2258 return xcb_ret; 2259 } 2260 2261 2262 /***************************************************************************** 2263 ** 2264 ** xcb_void_cookie_t xcb_map_subwindows 2265 ** 2266 ** @param xcb_connection_t *c 2267 ** @param xcb_window_t window 2268 ** @returns xcb_void_cookie_t 2269 ** 2270 *****************************************************************************/ 2271 2272 xcb_void_cookie_t 2273 xcb_map_subwindows (xcb_connection_t *c /**< */, 2274 xcb_window_t window /**< */) 2275 { 2276 static const xcb_protocol_request_t xcb_req = { 2277 /* count */ 2, 2278 /* ext */ 0, 2279 /* opcode */ XCB_MAP_SUBWINDOWS, 2280 /* isvoid */ 1 2281 }; 2282 2283 struct iovec xcb_parts[4]; 2284 xcb_void_cookie_t xcb_ret; 2285 xcb_map_subwindows_request_t xcb_out; 2286 2287 xcb_out.pad0 = 0; 2288 xcb_out.window = window; 2289 2290 xcb_parts[2].iov_base = (char *) &xcb_out; 2291 xcb_parts[2].iov_len = sizeof(xcb_out); 2292 xcb_parts[3].iov_base = 0; 2293 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2294 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2295 return xcb_ret; 2296 } 2297 2298 2299 /***************************************************************************** 2300 ** 2301 ** xcb_void_cookie_t xcb_unmap_window_checked 2302 ** 2303 ** @param xcb_connection_t *c 2304 ** @param xcb_window_t window 2305 ** @returns xcb_void_cookie_t 2306 ** 2307 *****************************************************************************/ 2308 2309 xcb_void_cookie_t 2310 xcb_unmap_window_checked (xcb_connection_t *c /**< */, 2311 xcb_window_t window /**< */) 2312 { 2313 static const xcb_protocol_request_t xcb_req = { 2314 /* count */ 2, 2315 /* ext */ 0, 2316 /* opcode */ XCB_UNMAP_WINDOW, 2317 /* isvoid */ 1 2318 }; 2319 2320 struct iovec xcb_parts[4]; 2321 xcb_void_cookie_t xcb_ret; 2322 xcb_unmap_window_request_t xcb_out; 2323 2324 xcb_out.pad0 = 0; 2325 xcb_out.window = window; 2326 2327 xcb_parts[2].iov_base = (char *) &xcb_out; 2328 xcb_parts[2].iov_len = sizeof(xcb_out); 2329 xcb_parts[3].iov_base = 0; 2330 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2331 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2332 return xcb_ret; 2333 } 2334 2335 2336 /***************************************************************************** 2337 ** 2338 ** xcb_void_cookie_t xcb_unmap_window 2339 ** 2340 ** @param xcb_connection_t *c 2341 ** @param xcb_window_t window 2342 ** @returns xcb_void_cookie_t 2343 ** 2344 *****************************************************************************/ 2345 2346 xcb_void_cookie_t 2347 xcb_unmap_window (xcb_connection_t *c /**< */, 2348 xcb_window_t window /**< */) 2349 { 2350 static const xcb_protocol_request_t xcb_req = { 2351 /* count */ 2, 2352 /* ext */ 0, 2353 /* opcode */ XCB_UNMAP_WINDOW, 2354 /* isvoid */ 1 2355 }; 2356 2357 struct iovec xcb_parts[4]; 2358 xcb_void_cookie_t xcb_ret; 2359 xcb_unmap_window_request_t xcb_out; 2360 2361 xcb_out.pad0 = 0; 2362 xcb_out.window = window; 2363 2364 xcb_parts[2].iov_base = (char *) &xcb_out; 2365 xcb_parts[2].iov_len = sizeof(xcb_out); 2366 xcb_parts[3].iov_base = 0; 2367 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2368 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2369 return xcb_ret; 2370 } 2371 2372 2373 /***************************************************************************** 2374 ** 2375 ** xcb_void_cookie_t xcb_unmap_subwindows_checked 2376 ** 2377 ** @param xcb_connection_t *c 2378 ** @param xcb_window_t window 2379 ** @returns xcb_void_cookie_t 2380 ** 2381 *****************************************************************************/ 2382 2383 xcb_void_cookie_t 2384 xcb_unmap_subwindows_checked (xcb_connection_t *c /**< */, 2385 xcb_window_t window /**< */) 2386 { 2387 static const xcb_protocol_request_t xcb_req = { 2388 /* count */ 2, 2389 /* ext */ 0, 2390 /* opcode */ XCB_UNMAP_SUBWINDOWS, 2391 /* isvoid */ 1 2392 }; 2393 2394 struct iovec xcb_parts[4]; 2395 xcb_void_cookie_t xcb_ret; 2396 xcb_unmap_subwindows_request_t xcb_out; 2397 2398 xcb_out.pad0 = 0; 2399 xcb_out.window = window; 2400 2401 xcb_parts[2].iov_base = (char *) &xcb_out; 2402 xcb_parts[2].iov_len = sizeof(xcb_out); 2403 xcb_parts[3].iov_base = 0; 2404 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2405 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2406 return xcb_ret; 2407 } 2408 2409 2410 /***************************************************************************** 2411 ** 2412 ** xcb_void_cookie_t xcb_unmap_subwindows 2413 ** 2414 ** @param xcb_connection_t *c 2415 ** @param xcb_window_t window 2416 ** @returns xcb_void_cookie_t 2417 ** 2418 *****************************************************************************/ 2419 2420 xcb_void_cookie_t 2421 xcb_unmap_subwindows (xcb_connection_t *c /**< */, 2422 xcb_window_t window /**< */) 2423 { 2424 static const xcb_protocol_request_t xcb_req = { 2425 /* count */ 2, 2426 /* ext */ 0, 2427 /* opcode */ XCB_UNMAP_SUBWINDOWS, 2428 /* isvoid */ 1 2429 }; 2430 2431 struct iovec xcb_parts[4]; 2432 xcb_void_cookie_t xcb_ret; 2433 xcb_unmap_subwindows_request_t xcb_out; 2434 2435 xcb_out.pad0 = 0; 2436 xcb_out.window = window; 2437 2438 xcb_parts[2].iov_base = (char *) &xcb_out; 2439 xcb_parts[2].iov_len = sizeof(xcb_out); 2440 xcb_parts[3].iov_base = 0; 2441 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2442 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2443 return xcb_ret; 2444 } 2445 2446 2447 /***************************************************************************** 2448 ** 2449 ** xcb_void_cookie_t xcb_configure_window_checked 2450 ** 2451 ** @param xcb_connection_t *c 2452 ** @param xcb_window_t window 2453 ** @param uint16_t value_mask 2454 ** @param const uint32_t *value_list 2455 ** @returns xcb_void_cookie_t 2456 ** 2457 *****************************************************************************/ 2458 2459 xcb_void_cookie_t 2460 xcb_configure_window_checked (xcb_connection_t *c /**< */, 2461 xcb_window_t window /**< */, 2462 uint16_t value_mask /**< */, 2463 const uint32_t *value_list /**< */) 2464 { 2465 static const xcb_protocol_request_t xcb_req = { 2466 /* count */ 4, 2467 /* ext */ 0, 2468 /* opcode */ XCB_CONFIGURE_WINDOW, 2469 /* isvoid */ 1 2470 }; 2471 2472 struct iovec xcb_parts[6]; 2473 xcb_void_cookie_t xcb_ret; 2474 xcb_configure_window_request_t xcb_out; 2475 2476 xcb_out.pad0 = 0; 2477 xcb_out.window = window; 2478 xcb_out.value_mask = value_mask; 2479 memset(xcb_out.pad1, 0, 2); 2480 2481 xcb_parts[2].iov_base = (char *) &xcb_out; 2482 xcb_parts[2].iov_len = sizeof(xcb_out); 2483 xcb_parts[3].iov_base = 0; 2484 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2485 xcb_parts[4].iov_base = (char *) value_list; 2486 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 2487 xcb_parts[5].iov_base = 0; 2488 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2489 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2490 return xcb_ret; 2491 } 2492 2493 2494 /***************************************************************************** 2495 ** 2496 ** xcb_void_cookie_t xcb_configure_window 2497 ** 2498 ** @param xcb_connection_t *c 2499 ** @param xcb_window_t window 2500 ** @param uint16_t value_mask 2501 ** @param const uint32_t *value_list 2502 ** @returns xcb_void_cookie_t 2503 ** 2504 *****************************************************************************/ 2505 2506 xcb_void_cookie_t 2507 xcb_configure_window (xcb_connection_t *c /**< */, 2508 xcb_window_t window /**< */, 2509 uint16_t value_mask /**< */, 2510 const uint32_t *value_list /**< */) 2511 { 2512 static const xcb_protocol_request_t xcb_req = { 2513 /* count */ 4, 2514 /* ext */ 0, 2515 /* opcode */ XCB_CONFIGURE_WINDOW, 2516 /* isvoid */ 1 2517 }; 2518 2519 struct iovec xcb_parts[6]; 2520 xcb_void_cookie_t xcb_ret; 2521 xcb_configure_window_request_t xcb_out; 2522 2523 xcb_out.pad0 = 0; 2524 xcb_out.window = window; 2525 xcb_out.value_mask = value_mask; 2526 memset(xcb_out.pad1, 0, 2); 2527 2528 xcb_parts[2].iov_base = (char *) &xcb_out; 2529 xcb_parts[2].iov_len = sizeof(xcb_out); 2530 xcb_parts[3].iov_base = 0; 2531 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2532 xcb_parts[4].iov_base = (char *) value_list; 2533 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 2534 xcb_parts[5].iov_base = 0; 2535 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2536 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2537 return xcb_ret; 2538 } 2539 2540 2541 /***************************************************************************** 2542 ** 2543 ** xcb_void_cookie_t xcb_circulate_window_checked 2544 ** 2545 ** @param xcb_connection_t *c 2546 ** @param uint8_t direction 2547 ** @param xcb_window_t window 2548 ** @returns xcb_void_cookie_t 2549 ** 2550 *****************************************************************************/ 2551 2552 xcb_void_cookie_t 2553 xcb_circulate_window_checked (xcb_connection_t *c /**< */, 2554 uint8_t direction /**< */, 2555 xcb_window_t window /**< */) 2556 { 2557 static const xcb_protocol_request_t xcb_req = { 2558 /* count */ 2, 2559 /* ext */ 0, 2560 /* opcode */ XCB_CIRCULATE_WINDOW, 2561 /* isvoid */ 1 2562 }; 2563 2564 struct iovec xcb_parts[4]; 2565 xcb_void_cookie_t xcb_ret; 2566 xcb_circulate_window_request_t xcb_out; 2567 2568 xcb_out.direction = direction; 2569 xcb_out.window = window; 2570 2571 xcb_parts[2].iov_base = (char *) &xcb_out; 2572 xcb_parts[2].iov_len = sizeof(xcb_out); 2573 xcb_parts[3].iov_base = 0; 2574 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2575 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2576 return xcb_ret; 2577 } 2578 2579 2580 /***************************************************************************** 2581 ** 2582 ** xcb_void_cookie_t xcb_circulate_window 2583 ** 2584 ** @param xcb_connection_t *c 2585 ** @param uint8_t direction 2586 ** @param xcb_window_t window 2587 ** @returns xcb_void_cookie_t 2588 ** 2589 *****************************************************************************/ 2590 2591 xcb_void_cookie_t 2592 xcb_circulate_window (xcb_connection_t *c /**< */, 2593 uint8_t direction /**< */, 2594 xcb_window_t window /**< */) 2595 { 2596 static const xcb_protocol_request_t xcb_req = { 2597 /* count */ 2, 2598 /* ext */ 0, 2599 /* opcode */ XCB_CIRCULATE_WINDOW, 2600 /* isvoid */ 1 2601 }; 2602 2603 struct iovec xcb_parts[4]; 2604 xcb_void_cookie_t xcb_ret; 2605 xcb_circulate_window_request_t xcb_out; 2606 2607 xcb_out.direction = direction; 2608 xcb_out.window = window; 2609 2610 xcb_parts[2].iov_base = (char *) &xcb_out; 2611 xcb_parts[2].iov_len = sizeof(xcb_out); 2612 xcb_parts[3].iov_base = 0; 2613 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2614 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2615 return xcb_ret; 2616 } 2617 2618 2619 /***************************************************************************** 2620 ** 2621 ** xcb_get_geometry_cookie_t xcb_get_geometry 2622 ** 2623 ** @param xcb_connection_t *c 2624 ** @param xcb_drawable_t drawable 2625 ** @returns xcb_get_geometry_cookie_t 2626 ** 2627 *****************************************************************************/ 2628 2629 xcb_get_geometry_cookie_t 2630 xcb_get_geometry (xcb_connection_t *c /**< */, 2631 xcb_drawable_t drawable /**< */) 2632 { 2633 static const xcb_protocol_request_t xcb_req = { 2634 /* count */ 2, 2635 /* ext */ 0, 2636 /* opcode */ XCB_GET_GEOMETRY, 2637 /* isvoid */ 0 2638 }; 2639 2640 struct iovec xcb_parts[4]; 2641 xcb_get_geometry_cookie_t xcb_ret; 2642 xcb_get_geometry_request_t xcb_out; 2643 2644 xcb_out.pad0 = 0; 2645 xcb_out.drawable = drawable; 2646 2647 xcb_parts[2].iov_base = (char *) &xcb_out; 2648 xcb_parts[2].iov_len = sizeof(xcb_out); 2649 xcb_parts[3].iov_base = 0; 2650 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2651 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2652 return xcb_ret; 2653 } 2654 2655 2656 /***************************************************************************** 2657 ** 2658 ** xcb_get_geometry_cookie_t xcb_get_geometry_unchecked 2659 ** 2660 ** @param xcb_connection_t *c 2661 ** @param xcb_drawable_t drawable 2662 ** @returns xcb_get_geometry_cookie_t 2663 ** 2664 *****************************************************************************/ 2665 2666 xcb_get_geometry_cookie_t 2667 xcb_get_geometry_unchecked (xcb_connection_t *c /**< */, 2668 xcb_drawable_t drawable /**< */) 2669 { 2670 static const xcb_protocol_request_t xcb_req = { 2671 /* count */ 2, 2672 /* ext */ 0, 2673 /* opcode */ XCB_GET_GEOMETRY, 2674 /* isvoid */ 0 2675 }; 2676 2677 struct iovec xcb_parts[4]; 2678 xcb_get_geometry_cookie_t xcb_ret; 2679 xcb_get_geometry_request_t xcb_out; 2680 2681 xcb_out.pad0 = 0; 2682 xcb_out.drawable = drawable; 2683 2684 xcb_parts[2].iov_base = (char *) &xcb_out; 2685 xcb_parts[2].iov_len = sizeof(xcb_out); 2686 xcb_parts[3].iov_base = 0; 2687 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2688 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2689 return xcb_ret; 2690 } 2691 2692 2693 /***************************************************************************** 2694 ** 2695 ** xcb_get_geometry_reply_t * xcb_get_geometry_reply 2696 ** 2697 ** @param xcb_connection_t *c 2698 ** @param xcb_get_geometry_cookie_t cookie 2699 ** @param xcb_generic_error_t **e 2700 ** @returns xcb_get_geometry_reply_t * 2701 ** 2702 *****************************************************************************/ 2703 2704 xcb_get_geometry_reply_t * 2705 xcb_get_geometry_reply (xcb_connection_t *c /**< */, 2706 xcb_get_geometry_cookie_t cookie /**< */, 2707 xcb_generic_error_t **e /**< */) 2708 { 2709 return (xcb_get_geometry_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2710 } 2711 2712 2713 /***************************************************************************** 2714 ** 2715 ** xcb_query_tree_cookie_t xcb_query_tree 2716 ** 2717 ** @param xcb_connection_t *c 2718 ** @param xcb_window_t window 2719 ** @returns xcb_query_tree_cookie_t 2720 ** 2721 *****************************************************************************/ 2722 2723 xcb_query_tree_cookie_t 2724 xcb_query_tree (xcb_connection_t *c /**< */, 2725 xcb_window_t window /**< */) 2726 { 2727 static const xcb_protocol_request_t xcb_req = { 2728 /* count */ 2, 2729 /* ext */ 0, 2730 /* opcode */ XCB_QUERY_TREE, 2731 /* isvoid */ 0 2732 }; 2733 2734 struct iovec xcb_parts[4]; 2735 xcb_query_tree_cookie_t xcb_ret; 2736 xcb_query_tree_request_t xcb_out; 2737 2738 xcb_out.pad0 = 0; 2739 xcb_out.window = window; 2740 2741 xcb_parts[2].iov_base = (char *) &xcb_out; 2742 xcb_parts[2].iov_len = sizeof(xcb_out); 2743 xcb_parts[3].iov_base = 0; 2744 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2745 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2746 return xcb_ret; 2747 } 2748 2749 2750 /***************************************************************************** 2751 ** 2752 ** xcb_query_tree_cookie_t xcb_query_tree_unchecked 2753 ** 2754 ** @param xcb_connection_t *c 2755 ** @param xcb_window_t window 2756 ** @returns xcb_query_tree_cookie_t 2757 ** 2758 *****************************************************************************/ 2759 2760 xcb_query_tree_cookie_t 2761 xcb_query_tree_unchecked (xcb_connection_t *c /**< */, 2762 xcb_window_t window /**< */) 2763 { 2764 static const xcb_protocol_request_t xcb_req = { 2765 /* count */ 2, 2766 /* ext */ 0, 2767 /* opcode */ XCB_QUERY_TREE, 2768 /* isvoid */ 0 2769 }; 2770 2771 struct iovec xcb_parts[4]; 2772 xcb_query_tree_cookie_t xcb_ret; 2773 xcb_query_tree_request_t xcb_out; 2774 2775 xcb_out.pad0 = 0; 2776 xcb_out.window = window; 2777 2778 xcb_parts[2].iov_base = (char *) &xcb_out; 2779 xcb_parts[2].iov_len = sizeof(xcb_out); 2780 xcb_parts[3].iov_base = 0; 2781 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2782 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2783 return xcb_ret; 2784 } 2785 2786 2787 /***************************************************************************** 2788 ** 2789 ** xcb_window_t * xcb_query_tree_children 2790 ** 2791 ** @param const xcb_query_tree_reply_t *R 2792 ** @returns xcb_window_t * 2793 ** 2794 *****************************************************************************/ 2795 2796 xcb_window_t * 2797 xcb_query_tree_children (const xcb_query_tree_reply_t *R /**< */) 2798 { 2799 return (xcb_window_t *) (R + 1); 2800 } 2801 2802 2803 /***************************************************************************** 2804 ** 2805 ** int xcb_query_tree_children_length 2806 ** 2807 ** @param const xcb_query_tree_reply_t *R 2808 ** @returns int 2809 ** 2810 *****************************************************************************/ 2811 2812 int 2813 xcb_query_tree_children_length (const xcb_query_tree_reply_t *R /**< */) 2814 { 2815 return R->children_len; 2816 } 2817 2818 2819 /***************************************************************************** 2820 ** 2821 ** xcb_generic_iterator_t xcb_query_tree_children_end 2822 ** 2823 ** @param const xcb_query_tree_reply_t *R 2824 ** @returns xcb_generic_iterator_t 2825 ** 2826 *****************************************************************************/ 2827 2828 xcb_generic_iterator_t 2829 xcb_query_tree_children_end (const xcb_query_tree_reply_t *R /**< */) 2830 { 2831 xcb_generic_iterator_t i; 2832 i.data = ((xcb_window_t *) (R + 1)) + (R->children_len); 2833 i.rem = 0; 2834 i.index = (char *) i.data - (char *) R; 2835 return i; 2836 } 2837 2838 2839 /***************************************************************************** 2840 ** 2841 ** xcb_query_tree_reply_t * xcb_query_tree_reply 2842 ** 2843 ** @param xcb_connection_t *c 2844 ** @param xcb_query_tree_cookie_t cookie 2845 ** @param xcb_generic_error_t **e 2846 ** @returns xcb_query_tree_reply_t * 2847 ** 2848 *****************************************************************************/ 2849 2850 xcb_query_tree_reply_t * 2851 xcb_query_tree_reply (xcb_connection_t *c /**< */, 2852 xcb_query_tree_cookie_t cookie /**< */, 2853 xcb_generic_error_t **e /**< */) 2854 { 2855 return (xcb_query_tree_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2856 } 2857 2858 2859 /***************************************************************************** 2860 ** 2861 ** xcb_intern_atom_cookie_t xcb_intern_atom 2862 ** 2863 ** @param xcb_connection_t *c 2864 ** @param uint8_t only_if_exists 2865 ** @param uint16_t name_len 2866 ** @param const char *name 2867 ** @returns xcb_intern_atom_cookie_t 2868 ** 2869 *****************************************************************************/ 2870 2871 xcb_intern_atom_cookie_t 2872 xcb_intern_atom (xcb_connection_t *c /**< */, 2873 uint8_t only_if_exists /**< */, 2874 uint16_t name_len /**< */, 2875 const char *name /**< */) 2876 { 2877 static const xcb_protocol_request_t xcb_req = { 2878 /* count */ 4, 2879 /* ext */ 0, 2880 /* opcode */ XCB_INTERN_ATOM, 2881 /* isvoid */ 0 2882 }; 2883 2884 struct iovec xcb_parts[6]; 2885 xcb_intern_atom_cookie_t xcb_ret; 2886 xcb_intern_atom_request_t xcb_out; 2887 2888 xcb_out.only_if_exists = only_if_exists; 2889 xcb_out.name_len = name_len; 2890 memset(xcb_out.pad0, 0, 2); 2891 2892 xcb_parts[2].iov_base = (char *) &xcb_out; 2893 xcb_parts[2].iov_len = sizeof(xcb_out); 2894 xcb_parts[3].iov_base = 0; 2895 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2896 xcb_parts[4].iov_base = (char *) name; 2897 xcb_parts[4].iov_len = name_len * sizeof(char); 2898 xcb_parts[5].iov_base = 0; 2899 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2900 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2901 return xcb_ret; 2902 } 2903 2904 2905 /***************************************************************************** 2906 ** 2907 ** xcb_intern_atom_cookie_t xcb_intern_atom_unchecked 2908 ** 2909 ** @param xcb_connection_t *c 2910 ** @param uint8_t only_if_exists 2911 ** @param uint16_t name_len 2912 ** @param const char *name 2913 ** @returns xcb_intern_atom_cookie_t 2914 ** 2915 *****************************************************************************/ 2916 2917 xcb_intern_atom_cookie_t 2918 xcb_intern_atom_unchecked (xcb_connection_t *c /**< */, 2919 uint8_t only_if_exists /**< */, 2920 uint16_t name_len /**< */, 2921 const char *name /**< */) 2922 { 2923 static const xcb_protocol_request_t xcb_req = { 2924 /* count */ 4, 2925 /* ext */ 0, 2926 /* opcode */ XCB_INTERN_ATOM, 2927 /* isvoid */ 0 2928 }; 2929 2930 struct iovec xcb_parts[6]; 2931 xcb_intern_atom_cookie_t xcb_ret; 2932 xcb_intern_atom_request_t xcb_out; 2933 2934 xcb_out.only_if_exists = only_if_exists; 2935 xcb_out.name_len = name_len; 2936 memset(xcb_out.pad0, 0, 2); 2937 2938 xcb_parts[2].iov_base = (char *) &xcb_out; 2939 xcb_parts[2].iov_len = sizeof(xcb_out); 2940 xcb_parts[3].iov_base = 0; 2941 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2942 xcb_parts[4].iov_base = (char *) name; 2943 xcb_parts[4].iov_len = name_len * sizeof(char); 2944 xcb_parts[5].iov_base = 0; 2945 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2946 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2947 return xcb_ret; 2948 } 2949 2950 2951 /***************************************************************************** 2952 ** 2953 ** xcb_intern_atom_reply_t * xcb_intern_atom_reply 2954 ** 2955 ** @param xcb_connection_t *c 2956 ** @param xcb_intern_atom_cookie_t cookie 2957 ** @param xcb_generic_error_t **e 2958 ** @returns xcb_intern_atom_reply_t * 2959 ** 2960 *****************************************************************************/ 2961 2962 xcb_intern_atom_reply_t * 2963 xcb_intern_atom_reply (xcb_connection_t *c /**< */, 2964 xcb_intern_atom_cookie_t cookie /**< */, 2965 xcb_generic_error_t **e /**< */) 2966 { 2967 return (xcb_intern_atom_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2968 } 2969 2970 2971 /***************************************************************************** 2972 ** 2973 ** xcb_get_atom_name_cookie_t xcb_get_atom_name 2974 ** 2975 ** @param xcb_connection_t *c 2976 ** @param xcb_atom_t atom 2977 ** @returns xcb_get_atom_name_cookie_t 2978 ** 2979 *****************************************************************************/ 2980 2981 xcb_get_atom_name_cookie_t 2982 xcb_get_atom_name (xcb_connection_t *c /**< */, 2983 xcb_atom_t atom /**< */) 2984 { 2985 static const xcb_protocol_request_t xcb_req = { 2986 /* count */ 2, 2987 /* ext */ 0, 2988 /* opcode */ XCB_GET_ATOM_NAME, 2989 /* isvoid */ 0 2990 }; 2991 2992 struct iovec xcb_parts[4]; 2993 xcb_get_atom_name_cookie_t xcb_ret; 2994 xcb_get_atom_name_request_t xcb_out; 2995 2996 xcb_out.pad0 = 0; 2997 xcb_out.atom = atom; 2998 2999 xcb_parts[2].iov_base = (char *) &xcb_out; 3000 xcb_parts[2].iov_len = sizeof(xcb_out); 3001 xcb_parts[3].iov_base = 0; 3002 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3003 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3004 return xcb_ret; 3005 } 3006 3007 3008 /***************************************************************************** 3009 ** 3010 ** xcb_get_atom_name_cookie_t xcb_get_atom_name_unchecked 3011 ** 3012 ** @param xcb_connection_t *c 3013 ** @param xcb_atom_t atom 3014 ** @returns xcb_get_atom_name_cookie_t 3015 ** 3016 *****************************************************************************/ 3017 3018 xcb_get_atom_name_cookie_t 3019 xcb_get_atom_name_unchecked (xcb_connection_t *c /**< */, 3020 xcb_atom_t atom /**< */) 3021 { 3022 static const xcb_protocol_request_t xcb_req = { 3023 /* count */ 2, 3024 /* ext */ 0, 3025 /* opcode */ XCB_GET_ATOM_NAME, 3026 /* isvoid */ 0 3027 }; 3028 3029 struct iovec xcb_parts[4]; 3030 xcb_get_atom_name_cookie_t xcb_ret; 3031 xcb_get_atom_name_request_t xcb_out; 3032 3033 xcb_out.pad0 = 0; 3034 xcb_out.atom = atom; 3035 3036 xcb_parts[2].iov_base = (char *) &xcb_out; 3037 xcb_parts[2].iov_len = sizeof(xcb_out); 3038 xcb_parts[3].iov_base = 0; 3039 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3040 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3041 return xcb_ret; 3042 } 3043 3044 3045 /***************************************************************************** 3046 ** 3047 ** char * xcb_get_atom_name_name 3048 ** 3049 ** @param const xcb_get_atom_name_reply_t *R 3050 ** @returns char * 3051 ** 3052 *****************************************************************************/ 3053 3054 char * 3055 xcb_get_atom_name_name (const xcb_get_atom_name_reply_t *R /**< */) 3056 { 3057 return (char *) (R + 1); 3058 } 3059 3060 3061 /***************************************************************************** 3062 ** 3063 ** int xcb_get_atom_name_name_length 3064 ** 3065 ** @param const xcb_get_atom_name_reply_t *R 3066 ** @returns int 3067 ** 3068 *****************************************************************************/ 3069 3070 int 3071 xcb_get_atom_name_name_length (const xcb_get_atom_name_reply_t *R /**< */) 3072 { 3073 return R->name_len; 3074 } 3075 3076 3077 /***************************************************************************** 3078 ** 3079 ** xcb_generic_iterator_t xcb_get_atom_name_name_end 3080 ** 3081 ** @param const xcb_get_atom_name_reply_t *R 3082 ** @returns xcb_generic_iterator_t 3083 ** 3084 *****************************************************************************/ 3085 3086 xcb_generic_iterator_t 3087 xcb_get_atom_name_name_end (const xcb_get_atom_name_reply_t *R /**< */) 3088 { 3089 xcb_generic_iterator_t i; 3090 i.data = ((char *) (R + 1)) + (R->name_len); 3091 i.rem = 0; 3092 i.index = (char *) i.data - (char *) R; 3093 return i; 3094 } 3095 3096 3097 /***************************************************************************** 3098 ** 3099 ** xcb_get_atom_name_reply_t * xcb_get_atom_name_reply 3100 ** 3101 ** @param xcb_connection_t *c 3102 ** @param xcb_get_atom_name_cookie_t cookie 3103 ** @param xcb_generic_error_t **e 3104 ** @returns xcb_get_atom_name_reply_t * 3105 ** 3106 *****************************************************************************/ 3107 3108 xcb_get_atom_name_reply_t * 3109 xcb_get_atom_name_reply (xcb_connection_t *c /**< */, 3110 xcb_get_atom_name_cookie_t cookie /**< */, 3111 xcb_generic_error_t **e /**< */) 3112 { 3113 return (xcb_get_atom_name_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3114 } 3115 3116 3117 /***************************************************************************** 3118 ** 3119 ** xcb_void_cookie_t xcb_change_property_checked 3120 ** 3121 ** @param xcb_connection_t *c 3122 ** @param uint8_t mode 3123 ** @param xcb_window_t window 3124 ** @param xcb_atom_t property 3125 ** @param xcb_atom_t type 3126 ** @param uint8_t format 3127 ** @param uint32_t data_len 3128 ** @param const void *data 3129 ** @returns xcb_void_cookie_t 3130 ** 3131 *****************************************************************************/ 3132 3133 xcb_void_cookie_t 3134 xcb_change_property_checked (xcb_connection_t *c /**< */, 3135 uint8_t mode /**< */, 3136 xcb_window_t window /**< */, 3137 xcb_atom_t property /**< */, 3138 xcb_atom_t type /**< */, 3139 uint8_t format /**< */, 3140 uint32_t data_len /**< */, 3141 const void *data /**< */) 3142 { 3143 static const xcb_protocol_request_t xcb_req = { 3144 /* count */ 4, 3145 /* ext */ 0, 3146 /* opcode */ XCB_CHANGE_PROPERTY, 3147 /* isvoid */ 1 3148 }; 3149 3150 struct iovec xcb_parts[6]; 3151 xcb_void_cookie_t xcb_ret; 3152 xcb_change_property_request_t xcb_out; 3153 3154 xcb_out.mode = mode; 3155 xcb_out.window = window; 3156 xcb_out.property = property; 3157 xcb_out.type = type; 3158 xcb_out.format = format; 3159 memset(xcb_out.pad0, 0, 3); 3160 xcb_out.data_len = data_len; 3161 3162 xcb_parts[2].iov_base = (char *) &xcb_out; 3163 xcb_parts[2].iov_len = sizeof(xcb_out); 3164 xcb_parts[3].iov_base = 0; 3165 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3166 xcb_parts[4].iov_base = (char *) data; 3167 xcb_parts[4].iov_len = ((data_len * format) / 8) * sizeof(char); 3168 xcb_parts[5].iov_base = 0; 3169 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3170 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3171 return xcb_ret; 3172 } 3173 3174 3175 /***************************************************************************** 3176 ** 3177 ** xcb_void_cookie_t xcb_change_property 3178 ** 3179 ** @param xcb_connection_t *c 3180 ** @param uint8_t mode 3181 ** @param xcb_window_t window 3182 ** @param xcb_atom_t property 3183 ** @param xcb_atom_t type 3184 ** @param uint8_t format 3185 ** @param uint32_t data_len 3186 ** @param const void *data 3187 ** @returns xcb_void_cookie_t 3188 ** 3189 *****************************************************************************/ 3190 3191 xcb_void_cookie_t 3192 xcb_change_property (xcb_connection_t *c /**< */, 3193 uint8_t mode /**< */, 3194 xcb_window_t window /**< */, 3195 xcb_atom_t property /**< */, 3196 xcb_atom_t type /**< */, 3197 uint8_t format /**< */, 3198 uint32_t data_len /**< */, 3199 const void *data /**< */) 3200 { 3201 static const xcb_protocol_request_t xcb_req = { 3202 /* count */ 4, 3203 /* ext */ 0, 3204 /* opcode */ XCB_CHANGE_PROPERTY, 3205 /* isvoid */ 1 3206 }; 3207 3208 struct iovec xcb_parts[6]; 3209 xcb_void_cookie_t xcb_ret; 3210 xcb_change_property_request_t xcb_out; 3211 3212 xcb_out.mode = mode; 3213 xcb_out.window = window; 3214 xcb_out.property = property; 3215 xcb_out.type = type; 3216 xcb_out.format = format; 3217 memset(xcb_out.pad0, 0, 3); 3218 xcb_out.data_len = data_len; 3219 3220 xcb_parts[2].iov_base = (char *) &xcb_out; 3221 xcb_parts[2].iov_len = sizeof(xcb_out); 3222 xcb_parts[3].iov_base = 0; 3223 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3224 xcb_parts[4].iov_base = (char *) data; 3225 xcb_parts[4].iov_len = ((data_len * format) / 8) * sizeof(char); 3226 xcb_parts[5].iov_base = 0; 3227 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3228 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3229 return xcb_ret; 3230 } 3231 3232 3233 /***************************************************************************** 3234 ** 3235 ** xcb_void_cookie_t xcb_delete_property_checked 3236 ** 3237 ** @param xcb_connection_t *c 3238 ** @param xcb_window_t window 3239 ** @param xcb_atom_t property 3240 ** @returns xcb_void_cookie_t 3241 ** 3242 *****************************************************************************/ 3243 3244 xcb_void_cookie_t 3245 xcb_delete_property_checked (xcb_connection_t *c /**< */, 3246 xcb_window_t window /**< */, 3247 xcb_atom_t property /**< */) 3248 { 3249 static const xcb_protocol_request_t xcb_req = { 3250 /* count */ 2, 3251 /* ext */ 0, 3252 /* opcode */ XCB_DELETE_PROPERTY, 3253 /* isvoid */ 1 3254 }; 3255 3256 struct iovec xcb_parts[4]; 3257 xcb_void_cookie_t xcb_ret; 3258 xcb_delete_property_request_t xcb_out; 3259 3260 xcb_out.pad0 = 0; 3261 xcb_out.window = window; 3262 xcb_out.property = property; 3263 3264 xcb_parts[2].iov_base = (char *) &xcb_out; 3265 xcb_parts[2].iov_len = sizeof(xcb_out); 3266 xcb_parts[3].iov_base = 0; 3267 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3268 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3269 return xcb_ret; 3270 } 3271 3272 3273 /***************************************************************************** 3274 ** 3275 ** xcb_void_cookie_t xcb_delete_property 3276 ** 3277 ** @param xcb_connection_t *c 3278 ** @param xcb_window_t window 3279 ** @param xcb_atom_t property 3280 ** @returns xcb_void_cookie_t 3281 ** 3282 *****************************************************************************/ 3283 3284 xcb_void_cookie_t 3285 xcb_delete_property (xcb_connection_t *c /**< */, 3286 xcb_window_t window /**< */, 3287 xcb_atom_t property /**< */) 3288 { 3289 static const xcb_protocol_request_t xcb_req = { 3290 /* count */ 2, 3291 /* ext */ 0, 3292 /* opcode */ XCB_DELETE_PROPERTY, 3293 /* isvoid */ 1 3294 }; 3295 3296 struct iovec xcb_parts[4]; 3297 xcb_void_cookie_t xcb_ret; 3298 xcb_delete_property_request_t xcb_out; 3299 3300 xcb_out.pad0 = 0; 3301 xcb_out.window = window; 3302 xcb_out.property = property; 3303 3304 xcb_parts[2].iov_base = (char *) &xcb_out; 3305 xcb_parts[2].iov_len = sizeof(xcb_out); 3306 xcb_parts[3].iov_base = 0; 3307 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3308 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3309 return xcb_ret; 3310 } 3311 3312 3313 /***************************************************************************** 3314 ** 3315 ** xcb_get_property_cookie_t xcb_get_property 3316 ** 3317 ** @param xcb_connection_t *c 3318 ** @param uint8_t _delete 3319 ** @param xcb_window_t window 3320 ** @param xcb_atom_t property 3321 ** @param xcb_atom_t type 3322 ** @param uint32_t long_offset 3323 ** @param uint32_t long_length 3324 ** @returns xcb_get_property_cookie_t 3325 ** 3326 *****************************************************************************/ 3327 3328 xcb_get_property_cookie_t 3329 xcb_get_property (xcb_connection_t *c /**< */, 3330 uint8_t _delete /**< */, 3331 xcb_window_t window /**< */, 3332 xcb_atom_t property /**< */, 3333 xcb_atom_t type /**< */, 3334 uint32_t long_offset /**< */, 3335 uint32_t long_length /**< */) 3336 { 3337 static const xcb_protocol_request_t xcb_req = { 3338 /* count */ 2, 3339 /* ext */ 0, 3340 /* opcode */ XCB_GET_PROPERTY, 3341 /* isvoid */ 0 3342 }; 3343 3344 struct iovec xcb_parts[4]; 3345 xcb_get_property_cookie_t xcb_ret; 3346 xcb_get_property_request_t xcb_out; 3347 3348 xcb_out._delete = _delete; 3349 xcb_out.window = window; 3350 xcb_out.property = property; 3351 xcb_out.type = type; 3352 xcb_out.long_offset = long_offset; 3353 xcb_out.long_length = long_length; 3354 3355 xcb_parts[2].iov_base = (char *) &xcb_out; 3356 xcb_parts[2].iov_len = sizeof(xcb_out); 3357 xcb_parts[3].iov_base = 0; 3358 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3359 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3360 return xcb_ret; 3361 } 3362 3363 3364 /***************************************************************************** 3365 ** 3366 ** xcb_get_property_cookie_t xcb_get_property_unchecked 3367 ** 3368 ** @param xcb_connection_t *c 3369 ** @param uint8_t _delete 3370 ** @param xcb_window_t window 3371 ** @param xcb_atom_t property 3372 ** @param xcb_atom_t type 3373 ** @param uint32_t long_offset 3374 ** @param uint32_t long_length 3375 ** @returns xcb_get_property_cookie_t 3376 ** 3377 *****************************************************************************/ 3378 3379 xcb_get_property_cookie_t 3380 xcb_get_property_unchecked (xcb_connection_t *c /**< */, 3381 uint8_t _delete /**< */, 3382 xcb_window_t window /**< */, 3383 xcb_atom_t property /**< */, 3384 xcb_atom_t type /**< */, 3385 uint32_t long_offset /**< */, 3386 uint32_t long_length /**< */) 3387 { 3388 static const xcb_protocol_request_t xcb_req = { 3389 /* count */ 2, 3390 /* ext */ 0, 3391 /* opcode */ XCB_GET_PROPERTY, 3392 /* isvoid */ 0 3393 }; 3394 3395 struct iovec xcb_parts[4]; 3396 xcb_get_property_cookie_t xcb_ret; 3397 xcb_get_property_request_t xcb_out; 3398 3399 xcb_out._delete = _delete; 3400 xcb_out.window = window; 3401 xcb_out.property = property; 3402 xcb_out.type = type; 3403 xcb_out.long_offset = long_offset; 3404 xcb_out.long_length = long_length; 3405 3406 xcb_parts[2].iov_base = (char *) &xcb_out; 3407 xcb_parts[2].iov_len = sizeof(xcb_out); 3408 xcb_parts[3].iov_base = 0; 3409 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3410 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3411 return xcb_ret; 3412 } 3413 3414 3415 /***************************************************************************** 3416 ** 3417 ** void * xcb_get_property_value 3418 ** 3419 ** @param const xcb_get_property_reply_t *R 3420 ** @returns void * 3421 ** 3422 *****************************************************************************/ 3423 3424 void * 3425 xcb_get_property_value (const xcb_get_property_reply_t *R /**< */) 3426 { 3427 return (void *) (R + 1); 3428 } 3429 3430 3431 /***************************************************************************** 3432 ** 3433 ** int xcb_get_property_value_length 3434 ** 3435 ** @param const xcb_get_property_reply_t *R 3436 ** @returns int 3437 ** 3438 *****************************************************************************/ 3439 3440 int 3441 xcb_get_property_value_length (const xcb_get_property_reply_t *R /**< */) 3442 { 3443 return (R->value_len * (R->format / 8)); 3444 } 3445 3446 3447 /***************************************************************************** 3448 ** 3449 ** xcb_generic_iterator_t xcb_get_property_value_end 3450 ** 3451 ** @param const xcb_get_property_reply_t *R 3452 ** @returns xcb_generic_iterator_t 3453 ** 3454 *****************************************************************************/ 3455 3456 xcb_generic_iterator_t 3457 xcb_get_property_value_end (const xcb_get_property_reply_t *R /**< */) 3458 { 3459 xcb_generic_iterator_t i; 3460 i.data = ((char *) (R + 1)) + ((R->value_len * (R->format / 8))); 3461 i.rem = 0; 3462 i.index = (char *) i.data - (char *) R; 3463 return i; 3464 } 3465 3466 3467 /***************************************************************************** 3468 ** 3469 ** xcb_get_property_reply_t * xcb_get_property_reply 3470 ** 3471 ** @param xcb_connection_t *c 3472 ** @param xcb_get_property_cookie_t cookie 3473 ** @param xcb_generic_error_t **e 3474 ** @returns xcb_get_property_reply_t * 3475 ** 3476 *****************************************************************************/ 3477 3478 xcb_get_property_reply_t * 3479 xcb_get_property_reply (xcb_connection_t *c /**< */, 3480 xcb_get_property_cookie_t cookie /**< */, 3481 xcb_generic_error_t **e /**< */) 3482 { 3483 return (xcb_get_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3484 } 3485 3486 3487 /***************************************************************************** 3488 ** 3489 ** xcb_list_properties_cookie_t xcb_list_properties 3490 ** 3491 ** @param xcb_connection_t *c 3492 ** @param xcb_window_t window 3493 ** @returns xcb_list_properties_cookie_t 3494 ** 3495 *****************************************************************************/ 3496 3497 xcb_list_properties_cookie_t 3498 xcb_list_properties (xcb_connection_t *c /**< */, 3499 xcb_window_t window /**< */) 3500 { 3501 static const xcb_protocol_request_t xcb_req = { 3502 /* count */ 2, 3503 /* ext */ 0, 3504 /* opcode */ XCB_LIST_PROPERTIES, 3505 /* isvoid */ 0 3506 }; 3507 3508 struct iovec xcb_parts[4]; 3509 xcb_list_properties_cookie_t xcb_ret; 3510 xcb_list_properties_request_t xcb_out; 3511 3512 xcb_out.pad0 = 0; 3513 xcb_out.window = window; 3514 3515 xcb_parts[2].iov_base = (char *) &xcb_out; 3516 xcb_parts[2].iov_len = sizeof(xcb_out); 3517 xcb_parts[3].iov_base = 0; 3518 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3519 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3520 return xcb_ret; 3521 } 3522 3523 3524 /***************************************************************************** 3525 ** 3526 ** xcb_list_properties_cookie_t xcb_list_properties_unchecked 3527 ** 3528 ** @param xcb_connection_t *c 3529 ** @param xcb_window_t window 3530 ** @returns xcb_list_properties_cookie_t 3531 ** 3532 *****************************************************************************/ 3533 3534 xcb_list_properties_cookie_t 3535 xcb_list_properties_unchecked (xcb_connection_t *c /**< */, 3536 xcb_window_t window /**< */) 3537 { 3538 static const xcb_protocol_request_t xcb_req = { 3539 /* count */ 2, 3540 /* ext */ 0, 3541 /* opcode */ XCB_LIST_PROPERTIES, 3542 /* isvoid */ 0 3543 }; 3544 3545 struct iovec xcb_parts[4]; 3546 xcb_list_properties_cookie_t xcb_ret; 3547 xcb_list_properties_request_t xcb_out; 3548 3549 xcb_out.pad0 = 0; 3550 xcb_out.window = window; 3551 3552 xcb_parts[2].iov_base = (char *) &xcb_out; 3553 xcb_parts[2].iov_len = sizeof(xcb_out); 3554 xcb_parts[3].iov_base = 0; 3555 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3556 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3557 return xcb_ret; 3558 } 3559 3560 3561 /***************************************************************************** 3562 ** 3563 ** xcb_atom_t * xcb_list_properties_atoms 3564 ** 3565 ** @param const xcb_list_properties_reply_t *R 3566 ** @returns xcb_atom_t * 3567 ** 3568 *****************************************************************************/ 3569 3570 xcb_atom_t * 3571 xcb_list_properties_atoms (const xcb_list_properties_reply_t *R /**< */) 3572 { 3573 return (xcb_atom_t *) (R + 1); 3574 } 3575 3576 3577 /***************************************************************************** 3578 ** 3579 ** int xcb_list_properties_atoms_length 3580 ** 3581 ** @param const xcb_list_properties_reply_t *R 3582 ** @returns int 3583 ** 3584 *****************************************************************************/ 3585 3586 int 3587 xcb_list_properties_atoms_length (const xcb_list_properties_reply_t *R /**< */) 3588 { 3589 return R->atoms_len; 3590 } 3591 3592 3593 /***************************************************************************** 3594 ** 3595 ** xcb_generic_iterator_t xcb_list_properties_atoms_end 3596 ** 3597 ** @param const xcb_list_properties_reply_t *R 3598 ** @returns xcb_generic_iterator_t 3599 ** 3600 *****************************************************************************/ 3601 3602 xcb_generic_iterator_t 3603 xcb_list_properties_atoms_end (const xcb_list_properties_reply_t *R /**< */) 3604 { 3605 xcb_generic_iterator_t i; 3606 i.data = ((xcb_atom_t *) (R + 1)) + (R->atoms_len); 3607 i.rem = 0; 3608 i.index = (char *) i.data - (char *) R; 3609 return i; 3610 } 3611 3612 3613 /***************************************************************************** 3614 ** 3615 ** xcb_list_properties_reply_t * xcb_list_properties_reply 3616 ** 3617 ** @param xcb_connection_t *c 3618 ** @param xcb_list_properties_cookie_t cookie 3619 ** @param xcb_generic_error_t **e 3620 ** @returns xcb_list_properties_reply_t * 3621 ** 3622 *****************************************************************************/ 3623 3624 xcb_list_properties_reply_t * 3625 xcb_list_properties_reply (xcb_connection_t *c /**< */, 3626 xcb_list_properties_cookie_t cookie /**< */, 3627 xcb_generic_error_t **e /**< */) 3628 { 3629 return (xcb_list_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3630 } 3631 3632 3633 /***************************************************************************** 3634 ** 3635 ** xcb_void_cookie_t xcb_set_selection_owner_checked 3636 ** 3637 ** @param xcb_connection_t *c 3638 ** @param xcb_window_t owner 3639 ** @param xcb_atom_t selection 3640 ** @param xcb_timestamp_t time 3641 ** @returns xcb_void_cookie_t 3642 ** 3643 *****************************************************************************/ 3644 3645 xcb_void_cookie_t 3646 xcb_set_selection_owner_checked (xcb_connection_t *c /**< */, 3647 xcb_window_t owner /**< */, 3648 xcb_atom_t selection /**< */, 3649 xcb_timestamp_t time /**< */) 3650 { 3651 static const xcb_protocol_request_t xcb_req = { 3652 /* count */ 2, 3653 /* ext */ 0, 3654 /* opcode */ XCB_SET_SELECTION_OWNER, 3655 /* isvoid */ 1 3656 }; 3657 3658 struct iovec xcb_parts[4]; 3659 xcb_void_cookie_t xcb_ret; 3660 xcb_set_selection_owner_request_t xcb_out; 3661 3662 xcb_out.pad0 = 0; 3663 xcb_out.owner = owner; 3664 xcb_out.selection = selection; 3665 xcb_out.time = time; 3666 3667 xcb_parts[2].iov_base = (char *) &xcb_out; 3668 xcb_parts[2].iov_len = sizeof(xcb_out); 3669 xcb_parts[3].iov_base = 0; 3670 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3671 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3672 return xcb_ret; 3673 } 3674 3675 3676 /***************************************************************************** 3677 ** 3678 ** xcb_void_cookie_t xcb_set_selection_owner 3679 ** 3680 ** @param xcb_connection_t *c 3681 ** @param xcb_window_t owner 3682 ** @param xcb_atom_t selection 3683 ** @param xcb_timestamp_t time 3684 ** @returns xcb_void_cookie_t 3685 ** 3686 *****************************************************************************/ 3687 3688 xcb_void_cookie_t 3689 xcb_set_selection_owner (xcb_connection_t *c /**< */, 3690 xcb_window_t owner /**< */, 3691 xcb_atom_t selection /**< */, 3692 xcb_timestamp_t time /**< */) 3693 { 3694 static const xcb_protocol_request_t xcb_req = { 3695 /* count */ 2, 3696 /* ext */ 0, 3697 /* opcode */ XCB_SET_SELECTION_OWNER, 3698 /* isvoid */ 1 3699 }; 3700 3701 struct iovec xcb_parts[4]; 3702 xcb_void_cookie_t xcb_ret; 3703 xcb_set_selection_owner_request_t xcb_out; 3704 3705 xcb_out.pad0 = 0; 3706 xcb_out.owner = owner; 3707 xcb_out.selection = selection; 3708 xcb_out.time = time; 3709 3710 xcb_parts[2].iov_base = (char *) &xcb_out; 3711 xcb_parts[2].iov_len = sizeof(xcb_out); 3712 xcb_parts[3].iov_base = 0; 3713 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3714 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3715 return xcb_ret; 3716 } 3717 3718 3719 /***************************************************************************** 3720 ** 3721 ** xcb_get_selection_owner_cookie_t xcb_get_selection_owner 3722 ** 3723 ** @param xcb_connection_t *c 3724 ** @param xcb_atom_t selection 3725 ** @returns xcb_get_selection_owner_cookie_t 3726 ** 3727 *****************************************************************************/ 3728 3729 xcb_get_selection_owner_cookie_t 3730 xcb_get_selection_owner (xcb_connection_t *c /**< */, 3731 xcb_atom_t selection /**< */) 3732 { 3733 static const xcb_protocol_request_t xcb_req = { 3734 /* count */ 2, 3735 /* ext */ 0, 3736 /* opcode */ XCB_GET_SELECTION_OWNER, 3737 /* isvoid */ 0 3738 }; 3739 3740 struct iovec xcb_parts[4]; 3741 xcb_get_selection_owner_cookie_t xcb_ret; 3742 xcb_get_selection_owner_request_t xcb_out; 3743 3744 xcb_out.pad0 = 0; 3745 xcb_out.selection = selection; 3746 3747 xcb_parts[2].iov_base = (char *) &xcb_out; 3748 xcb_parts[2].iov_len = sizeof(xcb_out); 3749 xcb_parts[3].iov_base = 0; 3750 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3751 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3752 return xcb_ret; 3753 } 3754 3755 3756 /***************************************************************************** 3757 ** 3758 ** xcb_get_selection_owner_cookie_t xcb_get_selection_owner_unchecked 3759 ** 3760 ** @param xcb_connection_t *c 3761 ** @param xcb_atom_t selection 3762 ** @returns xcb_get_selection_owner_cookie_t 3763 ** 3764 *****************************************************************************/ 3765 3766 xcb_get_selection_owner_cookie_t 3767 xcb_get_selection_owner_unchecked (xcb_connection_t *c /**< */, 3768 xcb_atom_t selection /**< */) 3769 { 3770 static const xcb_protocol_request_t xcb_req = { 3771 /* count */ 2, 3772 /* ext */ 0, 3773 /* opcode */ XCB_GET_SELECTION_OWNER, 3774 /* isvoid */ 0 3775 }; 3776 3777 struct iovec xcb_parts[4]; 3778 xcb_get_selection_owner_cookie_t xcb_ret; 3779 xcb_get_selection_owner_request_t xcb_out; 3780 3781 xcb_out.pad0 = 0; 3782 xcb_out.selection = selection; 3783 3784 xcb_parts[2].iov_base = (char *) &xcb_out; 3785 xcb_parts[2].iov_len = sizeof(xcb_out); 3786 xcb_parts[3].iov_base = 0; 3787 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3788 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3789 return xcb_ret; 3790 } 3791 3792 3793 /***************************************************************************** 3794 ** 3795 ** xcb_get_selection_owner_reply_t * xcb_get_selection_owner_reply 3796 ** 3797 ** @param xcb_connection_t *c 3798 ** @param xcb_get_selection_owner_cookie_t cookie 3799 ** @param xcb_generic_error_t **e 3800 ** @returns xcb_get_selection_owner_reply_t * 3801 ** 3802 *****************************************************************************/ 3803 3804 xcb_get_selection_owner_reply_t * 3805 xcb_get_selection_owner_reply (xcb_connection_t *c /**< */, 3806 xcb_get_selection_owner_cookie_t cookie /**< */, 3807 xcb_generic_error_t **e /**< */) 3808 { 3809 return (xcb_get_selection_owner_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3810 } 3811 3812 3813 /***************************************************************************** 3814 ** 3815 ** xcb_void_cookie_t xcb_convert_selection_checked 3816 ** 3817 ** @param xcb_connection_t *c 3818 ** @param xcb_window_t requestor 3819 ** @param xcb_atom_t selection 3820 ** @param xcb_atom_t target 3821 ** @param xcb_atom_t property 3822 ** @param xcb_timestamp_t time 3823 ** @returns xcb_void_cookie_t 3824 ** 3825 *****************************************************************************/ 3826 3827 xcb_void_cookie_t 3828 xcb_convert_selection_checked (xcb_connection_t *c /**< */, 3829 xcb_window_t requestor /**< */, 3830 xcb_atom_t selection /**< */, 3831 xcb_atom_t target /**< */, 3832 xcb_atom_t property /**< */, 3833 xcb_timestamp_t time /**< */) 3834 { 3835 static const xcb_protocol_request_t xcb_req = { 3836 /* count */ 2, 3837 /* ext */ 0, 3838 /* opcode */ XCB_CONVERT_SELECTION, 3839 /* isvoid */ 1 3840 }; 3841 3842 struct iovec xcb_parts[4]; 3843 xcb_void_cookie_t xcb_ret; 3844 xcb_convert_selection_request_t xcb_out; 3845 3846 xcb_out.pad0 = 0; 3847 xcb_out.requestor = requestor; 3848 xcb_out.selection = selection; 3849 xcb_out.target = target; 3850 xcb_out.property = property; 3851 xcb_out.time = time; 3852 3853 xcb_parts[2].iov_base = (char *) &xcb_out; 3854 xcb_parts[2].iov_len = sizeof(xcb_out); 3855 xcb_parts[3].iov_base = 0; 3856 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3857 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3858 return xcb_ret; 3859 } 3860 3861 3862 /***************************************************************************** 3863 ** 3864 ** xcb_void_cookie_t xcb_convert_selection 3865 ** 3866 ** @param xcb_connection_t *c 3867 ** @param xcb_window_t requestor 3868 ** @param xcb_atom_t selection 3869 ** @param xcb_atom_t target 3870 ** @param xcb_atom_t property 3871 ** @param xcb_timestamp_t time 3872 ** @returns xcb_void_cookie_t 3873 ** 3874 *****************************************************************************/ 3875 3876 xcb_void_cookie_t 3877 xcb_convert_selection (xcb_connection_t *c /**< */, 3878 xcb_window_t requestor /**< */, 3879 xcb_atom_t selection /**< */, 3880 xcb_atom_t target /**< */, 3881 xcb_atom_t property /**< */, 3882 xcb_timestamp_t time /**< */) 3883 { 3884 static const xcb_protocol_request_t xcb_req = { 3885 /* count */ 2, 3886 /* ext */ 0, 3887 /* opcode */ XCB_CONVERT_SELECTION, 3888 /* isvoid */ 1 3889 }; 3890 3891 struct iovec xcb_parts[4]; 3892 xcb_void_cookie_t xcb_ret; 3893 xcb_convert_selection_request_t xcb_out; 3894 3895 xcb_out.pad0 = 0; 3896 xcb_out.requestor = requestor; 3897 xcb_out.selection = selection; 3898 xcb_out.target = target; 3899 xcb_out.property = property; 3900 xcb_out.time = time; 3901 3902 xcb_parts[2].iov_base = (char *) &xcb_out; 3903 xcb_parts[2].iov_len = sizeof(xcb_out); 3904 xcb_parts[3].iov_base = 0; 3905 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3906 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3907 return xcb_ret; 3908 } 3909 3910 3911 /***************************************************************************** 3912 ** 3913 ** xcb_void_cookie_t xcb_send_event_checked 3914 ** 3915 ** @param xcb_connection_t *c 3916 ** @param uint8_t propagate 3917 ** @param xcb_window_t destination 3918 ** @param uint32_t event_mask 3919 ** @param const char *event 3920 ** @returns xcb_void_cookie_t 3921 ** 3922 *****************************************************************************/ 3923 3924 xcb_void_cookie_t 3925 xcb_send_event_checked (xcb_connection_t *c /**< */, 3926 uint8_t propagate /**< */, 3927 xcb_window_t destination /**< */, 3928 uint32_t event_mask /**< */, 3929 const char *event /**< */) 3930 { 3931 static const xcb_protocol_request_t xcb_req = { 3932 /* count */ 2, 3933 /* ext */ 0, 3934 /* opcode */ XCB_SEND_EVENT, 3935 /* isvoid */ 1 3936 }; 3937 3938 struct iovec xcb_parts[4]; 3939 xcb_void_cookie_t xcb_ret; 3940 xcb_send_event_request_t xcb_out; 3941 3942 xcb_out.propagate = propagate; 3943 xcb_out.destination = destination; 3944 xcb_out.event_mask = event_mask; 3945 memcpy(xcb_out.event, event, 32); 3946 3947 xcb_parts[2].iov_base = (char *) &xcb_out; 3948 xcb_parts[2].iov_len = sizeof(xcb_out); 3949 xcb_parts[3].iov_base = 0; 3950 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3951 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3952 return xcb_ret; 3953 } 3954 3955 3956 /***************************************************************************** 3957 ** 3958 ** xcb_void_cookie_t xcb_send_event 3959 ** 3960 ** @param xcb_connection_t *c 3961 ** @param uint8_t propagate 3962 ** @param xcb_window_t destination 3963 ** @param uint32_t event_mask 3964 ** @param const char *event 3965 ** @returns xcb_void_cookie_t 3966 ** 3967 *****************************************************************************/ 3968 3969 xcb_void_cookie_t 3970 xcb_send_event (xcb_connection_t *c /**< */, 3971 uint8_t propagate /**< */, 3972 xcb_window_t destination /**< */, 3973 uint32_t event_mask /**< */, 3974 const char *event /**< */) 3975 { 3976 static const xcb_protocol_request_t xcb_req = { 3977 /* count */ 2, 3978 /* ext */ 0, 3979 /* opcode */ XCB_SEND_EVENT, 3980 /* isvoid */ 1 3981 }; 3982 3983 struct iovec xcb_parts[4]; 3984 xcb_void_cookie_t xcb_ret; 3985 xcb_send_event_request_t xcb_out; 3986 3987 xcb_out.propagate = propagate; 3988 xcb_out.destination = destination; 3989 xcb_out.event_mask = event_mask; 3990 memcpy(xcb_out.event, event, 32); 3991 3992 xcb_parts[2].iov_base = (char *) &xcb_out; 3993 xcb_parts[2].iov_len = sizeof(xcb_out); 3994 xcb_parts[3].iov_base = 0; 3995 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3996 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3997 return xcb_ret; 3998 } 3999 4000 4001 /***************************************************************************** 4002 ** 4003 ** xcb_grab_pointer_cookie_t xcb_grab_pointer 4004 ** 4005 ** @param xcb_connection_t *c 4006 ** @param uint8_t owner_events 4007 ** @param xcb_window_t grab_window 4008 ** @param uint16_t event_mask 4009 ** @param uint8_t pointer_mode 4010 ** @param uint8_t keyboard_mode 4011 ** @param xcb_window_t confine_to 4012 ** @param xcb_cursor_t cursor 4013 ** @param xcb_timestamp_t time 4014 ** @returns xcb_grab_pointer_cookie_t 4015 ** 4016 *****************************************************************************/ 4017 4018 xcb_grab_pointer_cookie_t 4019 xcb_grab_pointer (xcb_connection_t *c /**< */, 4020 uint8_t owner_events /**< */, 4021 xcb_window_t grab_window /**< */, 4022 uint16_t event_mask /**< */, 4023 uint8_t pointer_mode /**< */, 4024 uint8_t keyboard_mode /**< */, 4025 xcb_window_t confine_to /**< */, 4026 xcb_cursor_t cursor /**< */, 4027 xcb_timestamp_t time /**< */) 4028 { 4029 static const xcb_protocol_request_t xcb_req = { 4030 /* count */ 2, 4031 /* ext */ 0, 4032 /* opcode */ XCB_GRAB_POINTER, 4033 /* isvoid */ 0 4034 }; 4035 4036 struct iovec xcb_parts[4]; 4037 xcb_grab_pointer_cookie_t xcb_ret; 4038 xcb_grab_pointer_request_t xcb_out; 4039 4040 xcb_out.owner_events = owner_events; 4041 xcb_out.grab_window = grab_window; 4042 xcb_out.event_mask = event_mask; 4043 xcb_out.pointer_mode = pointer_mode; 4044 xcb_out.keyboard_mode = keyboard_mode; 4045 xcb_out.confine_to = confine_to; 4046 xcb_out.cursor = cursor; 4047 xcb_out.time = time; 4048 4049 xcb_parts[2].iov_base = (char *) &xcb_out; 4050 xcb_parts[2].iov_len = sizeof(xcb_out); 4051 xcb_parts[3].iov_base = 0; 4052 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4053 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4054 return xcb_ret; 4055 } 4056 4057 4058 /***************************************************************************** 4059 ** 4060 ** xcb_grab_pointer_cookie_t xcb_grab_pointer_unchecked 4061 ** 4062 ** @param xcb_connection_t *c 4063 ** @param uint8_t owner_events 4064 ** @param xcb_window_t grab_window 4065 ** @param uint16_t event_mask 4066 ** @param uint8_t pointer_mode 4067 ** @param uint8_t keyboard_mode 4068 ** @param xcb_window_t confine_to 4069 ** @param xcb_cursor_t cursor 4070 ** @param xcb_timestamp_t time 4071 ** @returns xcb_grab_pointer_cookie_t 4072 ** 4073 *****************************************************************************/ 4074 4075 xcb_grab_pointer_cookie_t 4076 xcb_grab_pointer_unchecked (xcb_connection_t *c /**< */, 4077 uint8_t owner_events /**< */, 4078 xcb_window_t grab_window /**< */, 4079 uint16_t event_mask /**< */, 4080 uint8_t pointer_mode /**< */, 4081 uint8_t keyboard_mode /**< */, 4082 xcb_window_t confine_to /**< */, 4083 xcb_cursor_t cursor /**< */, 4084 xcb_timestamp_t time /**< */) 4085 { 4086 static const xcb_protocol_request_t xcb_req = { 4087 /* count */ 2, 4088 /* ext */ 0, 4089 /* opcode */ XCB_GRAB_POINTER, 4090 /* isvoid */ 0 4091 }; 4092 4093 struct iovec xcb_parts[4]; 4094 xcb_grab_pointer_cookie_t xcb_ret; 4095 xcb_grab_pointer_request_t xcb_out; 4096 4097 xcb_out.owner_events = owner_events; 4098 xcb_out.grab_window = grab_window; 4099 xcb_out.event_mask = event_mask; 4100 xcb_out.pointer_mode = pointer_mode; 4101 xcb_out.keyboard_mode = keyboard_mode; 4102 xcb_out.confine_to = confine_to; 4103 xcb_out.cursor = cursor; 4104 xcb_out.time = time; 4105 4106 xcb_parts[2].iov_base = (char *) &xcb_out; 4107 xcb_parts[2].iov_len = sizeof(xcb_out); 4108 xcb_parts[3].iov_base = 0; 4109 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4110 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4111 return xcb_ret; 4112 } 4113 4114 4115 /***************************************************************************** 4116 ** 4117 ** xcb_grab_pointer_reply_t * xcb_grab_pointer_reply 4118 ** 4119 ** @param xcb_connection_t *c 4120 ** @param xcb_grab_pointer_cookie_t cookie 4121 ** @param xcb_generic_error_t **e 4122 ** @returns xcb_grab_pointer_reply_t * 4123 ** 4124 *****************************************************************************/ 4125 4126 xcb_grab_pointer_reply_t * 4127 xcb_grab_pointer_reply (xcb_connection_t *c /**< */, 4128 xcb_grab_pointer_cookie_t cookie /**< */, 4129 xcb_generic_error_t **e /**< */) 4130 { 4131 return (xcb_grab_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4132 } 4133 4134 4135 /***************************************************************************** 4136 ** 4137 ** xcb_void_cookie_t xcb_ungrab_pointer_checked 4138 ** 4139 ** @param xcb_connection_t *c 4140 ** @param xcb_timestamp_t time 4141 ** @returns xcb_void_cookie_t 4142 ** 4143 *****************************************************************************/ 4144 4145 xcb_void_cookie_t 4146 xcb_ungrab_pointer_checked (xcb_connection_t *c /**< */, 4147 xcb_timestamp_t time /**< */) 4148 { 4149 static const xcb_protocol_request_t xcb_req = { 4150 /* count */ 2, 4151 /* ext */ 0, 4152 /* opcode */ XCB_UNGRAB_POINTER, 4153 /* isvoid */ 1 4154 }; 4155 4156 struct iovec xcb_parts[4]; 4157 xcb_void_cookie_t xcb_ret; 4158 xcb_ungrab_pointer_request_t xcb_out; 4159 4160 xcb_out.pad0 = 0; 4161 xcb_out.time = time; 4162 4163 xcb_parts[2].iov_base = (char *) &xcb_out; 4164 xcb_parts[2].iov_len = sizeof(xcb_out); 4165 xcb_parts[3].iov_base = 0; 4166 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4167 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4168 return xcb_ret; 4169 } 4170 4171 4172 /***************************************************************************** 4173 ** 4174 ** xcb_void_cookie_t xcb_ungrab_pointer 4175 ** 4176 ** @param xcb_connection_t *c 4177 ** @param xcb_timestamp_t time 4178 ** @returns xcb_void_cookie_t 4179 ** 4180 *****************************************************************************/ 4181 4182 xcb_void_cookie_t 4183 xcb_ungrab_pointer (xcb_connection_t *c /**< */, 4184 xcb_timestamp_t time /**< */) 4185 { 4186 static const xcb_protocol_request_t xcb_req = { 4187 /* count */ 2, 4188 /* ext */ 0, 4189 /* opcode */ XCB_UNGRAB_POINTER, 4190 /* isvoid */ 1 4191 }; 4192 4193 struct iovec xcb_parts[4]; 4194 xcb_void_cookie_t xcb_ret; 4195 xcb_ungrab_pointer_request_t xcb_out; 4196 4197 xcb_out.pad0 = 0; 4198 xcb_out.time = time; 4199 4200 xcb_parts[2].iov_base = (char *) &xcb_out; 4201 xcb_parts[2].iov_len = sizeof(xcb_out); 4202 xcb_parts[3].iov_base = 0; 4203 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4204 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4205 return xcb_ret; 4206 } 4207 4208 4209 /***************************************************************************** 4210 ** 4211 ** xcb_void_cookie_t xcb_grab_button_checked 4212 ** 4213 ** @param xcb_connection_t *c 4214 ** @param uint8_t owner_events 4215 ** @param xcb_window_t grab_window 4216 ** @param uint16_t event_mask 4217 ** @param uint8_t pointer_mode 4218 ** @param uint8_t keyboard_mode 4219 ** @param xcb_window_t confine_to 4220 ** @param xcb_cursor_t cursor 4221 ** @param uint8_t button 4222 ** @param uint16_t modifiers 4223 ** @returns xcb_void_cookie_t 4224 ** 4225 *****************************************************************************/ 4226 4227 xcb_void_cookie_t 4228 xcb_grab_button_checked (xcb_connection_t *c /**< */, 4229 uint8_t owner_events /**< */, 4230 xcb_window_t grab_window /**< */, 4231 uint16_t event_mask /**< */, 4232 uint8_t pointer_mode /**< */, 4233 uint8_t keyboard_mode /**< */, 4234 xcb_window_t confine_to /**< */, 4235 xcb_cursor_t cursor /**< */, 4236 uint8_t button /**< */, 4237 uint16_t modifiers /**< */) 4238 { 4239 static const xcb_protocol_request_t xcb_req = { 4240 /* count */ 2, 4241 /* ext */ 0, 4242 /* opcode */ XCB_GRAB_BUTTON, 4243 /* isvoid */ 1 4244 }; 4245 4246 struct iovec xcb_parts[4]; 4247 xcb_void_cookie_t xcb_ret; 4248 xcb_grab_button_request_t xcb_out; 4249 4250 xcb_out.owner_events = owner_events; 4251 xcb_out.grab_window = grab_window; 4252 xcb_out.event_mask = event_mask; 4253 xcb_out.pointer_mode = pointer_mode; 4254 xcb_out.keyboard_mode = keyboard_mode; 4255 xcb_out.confine_to = confine_to; 4256 xcb_out.cursor = cursor; 4257 xcb_out.button = button; 4258 xcb_out.pad0 = 0; 4259 xcb_out.modifiers = modifiers; 4260 4261 xcb_parts[2].iov_base = (char *) &xcb_out; 4262 xcb_parts[2].iov_len = sizeof(xcb_out); 4263 xcb_parts[3].iov_base = 0; 4264 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4265 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4266 return xcb_ret; 4267 } 4268 4269 4270 /***************************************************************************** 4271 ** 4272 ** xcb_void_cookie_t xcb_grab_button 4273 ** 4274 ** @param xcb_connection_t *c 4275 ** @param uint8_t owner_events 4276 ** @param xcb_window_t grab_window 4277 ** @param uint16_t event_mask 4278 ** @param uint8_t pointer_mode 4279 ** @param uint8_t keyboard_mode 4280 ** @param xcb_window_t confine_to 4281 ** @param xcb_cursor_t cursor 4282 ** @param uint8_t button 4283 ** @param uint16_t modifiers 4284 ** @returns xcb_void_cookie_t 4285 ** 4286 *****************************************************************************/ 4287 4288 xcb_void_cookie_t 4289 xcb_grab_button (xcb_connection_t *c /**< */, 4290 uint8_t owner_events /**< */, 4291 xcb_window_t grab_window /**< */, 4292 uint16_t event_mask /**< */, 4293 uint8_t pointer_mode /**< */, 4294 uint8_t keyboard_mode /**< */, 4295 xcb_window_t confine_to /**< */, 4296 xcb_cursor_t cursor /**< */, 4297 uint8_t button /**< */, 4298 uint16_t modifiers /**< */) 4299 { 4300 static const xcb_protocol_request_t xcb_req = { 4301 /* count */ 2, 4302 /* ext */ 0, 4303 /* opcode */ XCB_GRAB_BUTTON, 4304 /* isvoid */ 1 4305 }; 4306 4307 struct iovec xcb_parts[4]; 4308 xcb_void_cookie_t xcb_ret; 4309 xcb_grab_button_request_t xcb_out; 4310 4311 xcb_out.owner_events = owner_events; 4312 xcb_out.grab_window = grab_window; 4313 xcb_out.event_mask = event_mask; 4314 xcb_out.pointer_mode = pointer_mode; 4315 xcb_out.keyboard_mode = keyboard_mode; 4316 xcb_out.confine_to = confine_to; 4317 xcb_out.cursor = cursor; 4318 xcb_out.button = button; 4319 xcb_out.pad0 = 0; 4320 xcb_out.modifiers = modifiers; 4321 4322 xcb_parts[2].iov_base = (char *) &xcb_out; 4323 xcb_parts[2].iov_len = sizeof(xcb_out); 4324 xcb_parts[3].iov_base = 0; 4325 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4326 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4327 return xcb_ret; 4328 } 4329 4330 4331 /***************************************************************************** 4332 ** 4333 ** xcb_void_cookie_t xcb_ungrab_button_checked 4334 ** 4335 ** @param xcb_connection_t *c 4336 ** @param uint8_t button 4337 ** @param xcb_window_t grab_window 4338 ** @param uint16_t modifiers 4339 ** @returns xcb_void_cookie_t 4340 ** 4341 *****************************************************************************/ 4342 4343 xcb_void_cookie_t 4344 xcb_ungrab_button_checked (xcb_connection_t *c /**< */, 4345 uint8_t button /**< */, 4346 xcb_window_t grab_window /**< */, 4347 uint16_t modifiers /**< */) 4348 { 4349 static const xcb_protocol_request_t xcb_req = { 4350 /* count */ 2, 4351 /* ext */ 0, 4352 /* opcode */ XCB_UNGRAB_BUTTON, 4353 /* isvoid */ 1 4354 }; 4355 4356 struct iovec xcb_parts[4]; 4357 xcb_void_cookie_t xcb_ret; 4358 xcb_ungrab_button_request_t xcb_out; 4359 4360 xcb_out.button = button; 4361 xcb_out.grab_window = grab_window; 4362 xcb_out.modifiers = modifiers; 4363 memset(xcb_out.pad0, 0, 2); 4364 4365 xcb_parts[2].iov_base = (char *) &xcb_out; 4366 xcb_parts[2].iov_len = sizeof(xcb_out); 4367 xcb_parts[3].iov_base = 0; 4368 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4369 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4370 return xcb_ret; 4371 } 4372 4373 4374 /***************************************************************************** 4375 ** 4376 ** xcb_void_cookie_t xcb_ungrab_button 4377 ** 4378 ** @param xcb_connection_t *c 4379 ** @param uint8_t button 4380 ** @param xcb_window_t grab_window 4381 ** @param uint16_t modifiers 4382 ** @returns xcb_void_cookie_t 4383 ** 4384 *****************************************************************************/ 4385 4386 xcb_void_cookie_t 4387 xcb_ungrab_button (xcb_connection_t *c /**< */, 4388 uint8_t button /**< */, 4389 xcb_window_t grab_window /**< */, 4390 uint16_t modifiers /**< */) 4391 { 4392 static const xcb_protocol_request_t xcb_req = { 4393 /* count */ 2, 4394 /* ext */ 0, 4395 /* opcode */ XCB_UNGRAB_BUTTON, 4396 /* isvoid */ 1 4397 }; 4398 4399 struct iovec xcb_parts[4]; 4400 xcb_void_cookie_t xcb_ret; 4401 xcb_ungrab_button_request_t xcb_out; 4402 4403 xcb_out.button = button; 4404 xcb_out.grab_window = grab_window; 4405 xcb_out.modifiers = modifiers; 4406 memset(xcb_out.pad0, 0, 2); 4407 4408 xcb_parts[2].iov_base = (char *) &xcb_out; 4409 xcb_parts[2].iov_len = sizeof(xcb_out); 4410 xcb_parts[3].iov_base = 0; 4411 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4412 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4413 return xcb_ret; 4414 } 4415 4416 4417 /***************************************************************************** 4418 ** 4419 ** xcb_void_cookie_t xcb_change_active_pointer_grab_checked 4420 ** 4421 ** @param xcb_connection_t *c 4422 ** @param xcb_cursor_t cursor 4423 ** @param xcb_timestamp_t time 4424 ** @param uint16_t event_mask 4425 ** @returns xcb_void_cookie_t 4426 ** 4427 *****************************************************************************/ 4428 4429 xcb_void_cookie_t 4430 xcb_change_active_pointer_grab_checked (xcb_connection_t *c /**< */, 4431 xcb_cursor_t cursor /**< */, 4432 xcb_timestamp_t time /**< */, 4433 uint16_t event_mask /**< */) 4434 { 4435 static const xcb_protocol_request_t xcb_req = { 4436 /* count */ 2, 4437 /* ext */ 0, 4438 /* opcode */ XCB_CHANGE_ACTIVE_POINTER_GRAB, 4439 /* isvoid */ 1 4440 }; 4441 4442 struct iovec xcb_parts[4]; 4443 xcb_void_cookie_t xcb_ret; 4444 xcb_change_active_pointer_grab_request_t xcb_out; 4445 4446 xcb_out.pad0 = 0; 4447 xcb_out.cursor = cursor; 4448 xcb_out.time = time; 4449 xcb_out.event_mask = event_mask; 4450 memset(xcb_out.pad1, 0, 2); 4451 4452 xcb_parts[2].iov_base = (char *) &xcb_out; 4453 xcb_parts[2].iov_len = sizeof(xcb_out); 4454 xcb_parts[3].iov_base = 0; 4455 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4456 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4457 return xcb_ret; 4458 } 4459 4460 4461 /***************************************************************************** 4462 ** 4463 ** xcb_void_cookie_t xcb_change_active_pointer_grab 4464 ** 4465 ** @param xcb_connection_t *c 4466 ** @param xcb_cursor_t cursor 4467 ** @param xcb_timestamp_t time 4468 ** @param uint16_t event_mask 4469 ** @returns xcb_void_cookie_t 4470 ** 4471 *****************************************************************************/ 4472 4473 xcb_void_cookie_t 4474 xcb_change_active_pointer_grab (xcb_connection_t *c /**< */, 4475 xcb_cursor_t cursor /**< */, 4476 xcb_timestamp_t time /**< */, 4477 uint16_t event_mask /**< */) 4478 { 4479 static const xcb_protocol_request_t xcb_req = { 4480 /* count */ 2, 4481 /* ext */ 0, 4482 /* opcode */ XCB_CHANGE_ACTIVE_POINTER_GRAB, 4483 /* isvoid */ 1 4484 }; 4485 4486 struct iovec xcb_parts[4]; 4487 xcb_void_cookie_t xcb_ret; 4488 xcb_change_active_pointer_grab_request_t xcb_out; 4489 4490 xcb_out.pad0 = 0; 4491 xcb_out.cursor = cursor; 4492 xcb_out.time = time; 4493 xcb_out.event_mask = event_mask; 4494 memset(xcb_out.pad1, 0, 2); 4495 4496 xcb_parts[2].iov_base = (char *) &xcb_out; 4497 xcb_parts[2].iov_len = sizeof(xcb_out); 4498 xcb_parts[3].iov_base = 0; 4499 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4500 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4501 return xcb_ret; 4502 } 4503 4504 4505 /***************************************************************************** 4506 ** 4507 ** xcb_grab_keyboard_cookie_t xcb_grab_keyboard 4508 ** 4509 ** @param xcb_connection_t *c 4510 ** @param uint8_t owner_events 4511 ** @param xcb_window_t grab_window 4512 ** @param xcb_timestamp_t time 4513 ** @param uint8_t pointer_mode 4514 ** @param uint8_t keyboard_mode 4515 ** @returns xcb_grab_keyboard_cookie_t 4516 ** 4517 *****************************************************************************/ 4518 4519 xcb_grab_keyboard_cookie_t 4520 xcb_grab_keyboard (xcb_connection_t *c /**< */, 4521 uint8_t owner_events /**< */, 4522 xcb_window_t grab_window /**< */, 4523 xcb_timestamp_t time /**< */, 4524 uint8_t pointer_mode /**< */, 4525 uint8_t keyboard_mode /**< */) 4526 { 4527 static const xcb_protocol_request_t xcb_req = { 4528 /* count */ 2, 4529 /* ext */ 0, 4530 /* opcode */ XCB_GRAB_KEYBOARD, 4531 /* isvoid */ 0 4532 }; 4533 4534 struct iovec xcb_parts[4]; 4535 xcb_grab_keyboard_cookie_t xcb_ret; 4536 xcb_grab_keyboard_request_t xcb_out; 4537 4538 xcb_out.owner_events = owner_events; 4539 xcb_out.grab_window = grab_window; 4540 xcb_out.time = time; 4541 xcb_out.pointer_mode = pointer_mode; 4542 xcb_out.keyboard_mode = keyboard_mode; 4543 memset(xcb_out.pad0, 0, 2); 4544 4545 xcb_parts[2].iov_base = (char *) &xcb_out; 4546 xcb_parts[2].iov_len = sizeof(xcb_out); 4547 xcb_parts[3].iov_base = 0; 4548 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4549 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4550 return xcb_ret; 4551 } 4552 4553 4554 /***************************************************************************** 4555 ** 4556 ** xcb_grab_keyboard_cookie_t xcb_grab_keyboard_unchecked 4557 ** 4558 ** @param xcb_connection_t *c 4559 ** @param uint8_t owner_events 4560 ** @param xcb_window_t grab_window 4561 ** @param xcb_timestamp_t time 4562 ** @param uint8_t pointer_mode 4563 ** @param uint8_t keyboard_mode 4564 ** @returns xcb_grab_keyboard_cookie_t 4565 ** 4566 *****************************************************************************/ 4567 4568 xcb_grab_keyboard_cookie_t 4569 xcb_grab_keyboard_unchecked (xcb_connection_t *c /**< */, 4570 uint8_t owner_events /**< */, 4571 xcb_window_t grab_window /**< */, 4572 xcb_timestamp_t time /**< */, 4573 uint8_t pointer_mode /**< */, 4574 uint8_t keyboard_mode /**< */) 4575 { 4576 static const xcb_protocol_request_t xcb_req = { 4577 /* count */ 2, 4578 /* ext */ 0, 4579 /* opcode */ XCB_GRAB_KEYBOARD, 4580 /* isvoid */ 0 4581 }; 4582 4583 struct iovec xcb_parts[4]; 4584 xcb_grab_keyboard_cookie_t xcb_ret; 4585 xcb_grab_keyboard_request_t xcb_out; 4586 4587 xcb_out.owner_events = owner_events; 4588 xcb_out.grab_window = grab_window; 4589 xcb_out.time = time; 4590 xcb_out.pointer_mode = pointer_mode; 4591 xcb_out.keyboard_mode = keyboard_mode; 4592 memset(xcb_out.pad0, 0, 2); 4593 4594 xcb_parts[2].iov_base = (char *) &xcb_out; 4595 xcb_parts[2].iov_len = sizeof(xcb_out); 4596 xcb_parts[3].iov_base = 0; 4597 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4598 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4599 return xcb_ret; 4600 } 4601 4602 4603 /***************************************************************************** 4604 ** 4605 ** xcb_grab_keyboard_reply_t * xcb_grab_keyboard_reply 4606 ** 4607 ** @param xcb_connection_t *c 4608 ** @param xcb_grab_keyboard_cookie_t cookie 4609 ** @param xcb_generic_error_t **e 4610 ** @returns xcb_grab_keyboard_reply_t * 4611 ** 4612 *****************************************************************************/ 4613 4614 xcb_grab_keyboard_reply_t * 4615 xcb_grab_keyboard_reply (xcb_connection_t *c /**< */, 4616 xcb_grab_keyboard_cookie_t cookie /**< */, 4617 xcb_generic_error_t **e /**< */) 4618 { 4619 return (xcb_grab_keyboard_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4620 } 4621 4622 4623 /***************************************************************************** 4624 ** 4625 ** xcb_void_cookie_t xcb_ungrab_keyboard_checked 4626 ** 4627 ** @param xcb_connection_t *c 4628 ** @param xcb_timestamp_t time 4629 ** @returns xcb_void_cookie_t 4630 ** 4631 *****************************************************************************/ 4632 4633 xcb_void_cookie_t 4634 xcb_ungrab_keyboard_checked (xcb_connection_t *c /**< */, 4635 xcb_timestamp_t time /**< */) 4636 { 4637 static const xcb_protocol_request_t xcb_req = { 4638 /* count */ 2, 4639 /* ext */ 0, 4640 /* opcode */ XCB_UNGRAB_KEYBOARD, 4641 /* isvoid */ 1 4642 }; 4643 4644 struct iovec xcb_parts[4]; 4645 xcb_void_cookie_t xcb_ret; 4646 xcb_ungrab_keyboard_request_t xcb_out; 4647 4648 xcb_out.pad0 = 0; 4649 xcb_out.time = time; 4650 4651 xcb_parts[2].iov_base = (char *) &xcb_out; 4652 xcb_parts[2].iov_len = sizeof(xcb_out); 4653 xcb_parts[3].iov_base = 0; 4654 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4655 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4656 return xcb_ret; 4657 } 4658 4659 4660 /***************************************************************************** 4661 ** 4662 ** xcb_void_cookie_t xcb_ungrab_keyboard 4663 ** 4664 ** @param xcb_connection_t *c 4665 ** @param xcb_timestamp_t time 4666 ** @returns xcb_void_cookie_t 4667 ** 4668 *****************************************************************************/ 4669 4670 xcb_void_cookie_t 4671 xcb_ungrab_keyboard (xcb_connection_t *c /**< */, 4672 xcb_timestamp_t time /**< */) 4673 { 4674 static const xcb_protocol_request_t xcb_req = { 4675 /* count */ 2, 4676 /* ext */ 0, 4677 /* opcode */ XCB_UNGRAB_KEYBOARD, 4678 /* isvoid */ 1 4679 }; 4680 4681 struct iovec xcb_parts[4]; 4682 xcb_void_cookie_t xcb_ret; 4683 xcb_ungrab_keyboard_request_t xcb_out; 4684 4685 xcb_out.pad0 = 0; 4686 xcb_out.time = time; 4687 4688 xcb_parts[2].iov_base = (char *) &xcb_out; 4689 xcb_parts[2].iov_len = sizeof(xcb_out); 4690 xcb_parts[3].iov_base = 0; 4691 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4692 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4693 return xcb_ret; 4694 } 4695 4696 4697 /***************************************************************************** 4698 ** 4699 ** xcb_void_cookie_t xcb_grab_key_checked 4700 ** 4701 ** @param xcb_connection_t *c 4702 ** @param uint8_t owner_events 4703 ** @param xcb_window_t grab_window 4704 ** @param uint16_t modifiers 4705 ** @param xcb_keycode_t key 4706 ** @param uint8_t pointer_mode 4707 ** @param uint8_t keyboard_mode 4708 ** @returns xcb_void_cookie_t 4709 ** 4710 *****************************************************************************/ 4711 4712 xcb_void_cookie_t 4713 xcb_grab_key_checked (xcb_connection_t *c /**< */, 4714 uint8_t owner_events /**< */, 4715 xcb_window_t grab_window /**< */, 4716 uint16_t modifiers /**< */, 4717 xcb_keycode_t key /**< */, 4718 uint8_t pointer_mode /**< */, 4719 uint8_t keyboard_mode /**< */) 4720 { 4721 static const xcb_protocol_request_t xcb_req = { 4722 /* count */ 2, 4723 /* ext */ 0, 4724 /* opcode */ XCB_GRAB_KEY, 4725 /* isvoid */ 1 4726 }; 4727 4728 struct iovec xcb_parts[4]; 4729 xcb_void_cookie_t xcb_ret; 4730 xcb_grab_key_request_t xcb_out; 4731 4732 xcb_out.owner_events = owner_events; 4733 xcb_out.grab_window = grab_window; 4734 xcb_out.modifiers = modifiers; 4735 xcb_out.key = key; 4736 xcb_out.pointer_mode = pointer_mode; 4737 xcb_out.keyboard_mode = keyboard_mode; 4738 memset(xcb_out.pad0, 0, 3); 4739 4740 xcb_parts[2].iov_base = (char *) &xcb_out; 4741 xcb_parts[2].iov_len = sizeof(xcb_out); 4742 xcb_parts[3].iov_base = 0; 4743 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4744 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4745 return xcb_ret; 4746 } 4747 4748 4749 /***************************************************************************** 4750 ** 4751 ** xcb_void_cookie_t xcb_grab_key 4752 ** 4753 ** @param xcb_connection_t *c 4754 ** @param uint8_t owner_events 4755 ** @param xcb_window_t grab_window 4756 ** @param uint16_t modifiers 4757 ** @param xcb_keycode_t key 4758 ** @param uint8_t pointer_mode 4759 ** @param uint8_t keyboard_mode 4760 ** @returns xcb_void_cookie_t 4761 ** 4762 *****************************************************************************/ 4763 4764 xcb_void_cookie_t 4765 xcb_grab_key (xcb_connection_t *c /**< */, 4766 uint8_t owner_events /**< */, 4767 xcb_window_t grab_window /**< */, 4768 uint16_t modifiers /**< */, 4769 xcb_keycode_t key /**< */, 4770 uint8_t pointer_mode /**< */, 4771 uint8_t keyboard_mode /**< */) 4772 { 4773 static const xcb_protocol_request_t xcb_req = { 4774 /* count */ 2, 4775 /* ext */ 0, 4776 /* opcode */ XCB_GRAB_KEY, 4777 /* isvoid */ 1 4778 }; 4779 4780 struct iovec xcb_parts[4]; 4781 xcb_void_cookie_t xcb_ret; 4782 xcb_grab_key_request_t xcb_out; 4783 4784 xcb_out.owner_events = owner_events; 4785 xcb_out.grab_window = grab_window; 4786 xcb_out.modifiers = modifiers; 4787 xcb_out.key = key; 4788 xcb_out.pointer_mode = pointer_mode; 4789 xcb_out.keyboard_mode = keyboard_mode; 4790 memset(xcb_out.pad0, 0, 3); 4791 4792 xcb_parts[2].iov_base = (char *) &xcb_out; 4793 xcb_parts[2].iov_len = sizeof(xcb_out); 4794 xcb_parts[3].iov_base = 0; 4795 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4796 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4797 return xcb_ret; 4798 } 4799 4800 4801 /***************************************************************************** 4802 ** 4803 ** xcb_void_cookie_t xcb_ungrab_key_checked 4804 ** 4805 ** @param xcb_connection_t *c 4806 ** @param xcb_keycode_t key 4807 ** @param xcb_window_t grab_window 4808 ** @param uint16_t modifiers 4809 ** @returns xcb_void_cookie_t 4810 ** 4811 *****************************************************************************/ 4812 4813 xcb_void_cookie_t 4814 xcb_ungrab_key_checked (xcb_connection_t *c /**< */, 4815 xcb_keycode_t key /**< */, 4816 xcb_window_t grab_window /**< */, 4817 uint16_t modifiers /**< */) 4818 { 4819 static const xcb_protocol_request_t xcb_req = { 4820 /* count */ 2, 4821 /* ext */ 0, 4822 /* opcode */ XCB_UNGRAB_KEY, 4823 /* isvoid */ 1 4824 }; 4825 4826 struct iovec xcb_parts[4]; 4827 xcb_void_cookie_t xcb_ret; 4828 xcb_ungrab_key_request_t xcb_out; 4829 4830 xcb_out.key = key; 4831 xcb_out.grab_window = grab_window; 4832 xcb_out.modifiers = modifiers; 4833 memset(xcb_out.pad0, 0, 2); 4834 4835 xcb_parts[2].iov_base = (char *) &xcb_out; 4836 xcb_parts[2].iov_len = sizeof(xcb_out); 4837 xcb_parts[3].iov_base = 0; 4838 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4839 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4840 return xcb_ret; 4841 } 4842 4843 4844 /***************************************************************************** 4845 ** 4846 ** xcb_void_cookie_t xcb_ungrab_key 4847 ** 4848 ** @param xcb_connection_t *c 4849 ** @param xcb_keycode_t key 4850 ** @param xcb_window_t grab_window 4851 ** @param uint16_t modifiers 4852 ** @returns xcb_void_cookie_t 4853 ** 4854 *****************************************************************************/ 4855 4856 xcb_void_cookie_t 4857 xcb_ungrab_key (xcb_connection_t *c /**< */, 4858 xcb_keycode_t key /**< */, 4859 xcb_window_t grab_window /**< */, 4860 uint16_t modifiers /**< */) 4861 { 4862 static const xcb_protocol_request_t xcb_req = { 4863 /* count */ 2, 4864 /* ext */ 0, 4865 /* opcode */ XCB_UNGRAB_KEY, 4866 /* isvoid */ 1 4867 }; 4868 4869 struct iovec xcb_parts[4]; 4870 xcb_void_cookie_t xcb_ret; 4871 xcb_ungrab_key_request_t xcb_out; 4872 4873 xcb_out.key = key; 4874 xcb_out.grab_window = grab_window; 4875 xcb_out.modifiers = modifiers; 4876 memset(xcb_out.pad0, 0, 2); 4877 4878 xcb_parts[2].iov_base = (char *) &xcb_out; 4879 xcb_parts[2].iov_len = sizeof(xcb_out); 4880 xcb_parts[3].iov_base = 0; 4881 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4882 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4883 return xcb_ret; 4884 } 4885 4886 4887 /***************************************************************************** 4888 ** 4889 ** xcb_void_cookie_t xcb_allow_events_checked 4890 ** 4891 ** @param xcb_connection_t *c 4892 ** @param uint8_t mode 4893 ** @param xcb_timestamp_t time 4894 ** @returns xcb_void_cookie_t 4895 ** 4896 *****************************************************************************/ 4897 4898 xcb_void_cookie_t 4899 xcb_allow_events_checked (xcb_connection_t *c /**< */, 4900 uint8_t mode /**< */, 4901 xcb_timestamp_t time /**< */) 4902 { 4903 static const xcb_protocol_request_t xcb_req = { 4904 /* count */ 2, 4905 /* ext */ 0, 4906 /* opcode */ XCB_ALLOW_EVENTS, 4907 /* isvoid */ 1 4908 }; 4909 4910 struct iovec xcb_parts[4]; 4911 xcb_void_cookie_t xcb_ret; 4912 xcb_allow_events_request_t xcb_out; 4913 4914 xcb_out.mode = mode; 4915 xcb_out.time = time; 4916 4917 xcb_parts[2].iov_base = (char *) &xcb_out; 4918 xcb_parts[2].iov_len = sizeof(xcb_out); 4919 xcb_parts[3].iov_base = 0; 4920 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4921 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4922 return xcb_ret; 4923 } 4924 4925 4926 /***************************************************************************** 4927 ** 4928 ** xcb_void_cookie_t xcb_allow_events 4929 ** 4930 ** @param xcb_connection_t *c 4931 ** @param uint8_t mode 4932 ** @param xcb_timestamp_t time 4933 ** @returns xcb_void_cookie_t 4934 ** 4935 *****************************************************************************/ 4936 4937 xcb_void_cookie_t 4938 xcb_allow_events (xcb_connection_t *c /**< */, 4939 uint8_t mode /**< */, 4940 xcb_timestamp_t time /**< */) 4941 { 4942 static const xcb_protocol_request_t xcb_req = { 4943 /* count */ 2, 4944 /* ext */ 0, 4945 /* opcode */ XCB_ALLOW_EVENTS, 4946 /* isvoid */ 1 4947 }; 4948 4949 struct iovec xcb_parts[4]; 4950 xcb_void_cookie_t xcb_ret; 4951 xcb_allow_events_request_t xcb_out; 4952 4953 xcb_out.mode = mode; 4954 xcb_out.time = time; 4955 4956 xcb_parts[2].iov_base = (char *) &xcb_out; 4957 xcb_parts[2].iov_len = sizeof(xcb_out); 4958 xcb_parts[3].iov_base = 0; 4959 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4960 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4961 return xcb_ret; 4962 } 4963 4964 4965 /***************************************************************************** 4966 ** 4967 ** xcb_void_cookie_t xcb_grab_server_checked 4968 ** 4969 ** @param xcb_connection_t *c 4970 ** @returns xcb_void_cookie_t 4971 ** 4972 *****************************************************************************/ 4973 4974 xcb_void_cookie_t 4975 xcb_grab_server_checked (xcb_connection_t *c /**< */) 4976 { 4977 static const xcb_protocol_request_t xcb_req = { 4978 /* count */ 2, 4979 /* ext */ 0, 4980 /* opcode */ XCB_GRAB_SERVER, 4981 /* isvoid */ 1 4982 }; 4983 4984 struct iovec xcb_parts[4]; 4985 xcb_void_cookie_t xcb_ret; 4986 xcb_grab_server_request_t xcb_out; 4987 4988 xcb_out.pad0 = 0; 4989 4990 xcb_parts[2].iov_base = (char *) &xcb_out; 4991 xcb_parts[2].iov_len = sizeof(xcb_out); 4992 xcb_parts[3].iov_base = 0; 4993 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4994 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4995 return xcb_ret; 4996 } 4997 4998 4999 /***************************************************************************** 5000 ** 5001 ** xcb_void_cookie_t xcb_grab_server 5002 ** 5003 ** @param xcb_connection_t *c 5004 ** @returns xcb_void_cookie_t 5005 ** 5006 *****************************************************************************/ 5007 5008 xcb_void_cookie_t 5009 xcb_grab_server (xcb_connection_t *c /**< */) 5010 { 5011 static const xcb_protocol_request_t xcb_req = { 5012 /* count */ 2, 5013 /* ext */ 0, 5014 /* opcode */ XCB_GRAB_SERVER, 5015 /* isvoid */ 1 5016 }; 5017 5018 struct iovec xcb_parts[4]; 5019 xcb_void_cookie_t xcb_ret; 5020 xcb_grab_server_request_t xcb_out; 5021 5022 xcb_out.pad0 = 0; 5023 5024 xcb_parts[2].iov_base = (char *) &xcb_out; 5025 xcb_parts[2].iov_len = sizeof(xcb_out); 5026 xcb_parts[3].iov_base = 0; 5027 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5028 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5029 return xcb_ret; 5030 } 5031 5032 5033 /***************************************************************************** 5034 ** 5035 ** xcb_void_cookie_t xcb_ungrab_server_checked 5036 ** 5037 ** @param xcb_connection_t *c 5038 ** @returns xcb_void_cookie_t 5039 ** 5040 *****************************************************************************/ 5041 5042 xcb_void_cookie_t 5043 xcb_ungrab_server_checked (xcb_connection_t *c /**< */) 5044 { 5045 static const xcb_protocol_request_t xcb_req = { 5046 /* count */ 2, 5047 /* ext */ 0, 5048 /* opcode */ XCB_UNGRAB_SERVER, 5049 /* isvoid */ 1 5050 }; 5051 5052 struct iovec xcb_parts[4]; 5053 xcb_void_cookie_t xcb_ret; 5054 xcb_ungrab_server_request_t xcb_out; 5055 5056 xcb_out.pad0 = 0; 5057 5058 xcb_parts[2].iov_base = (char *) &xcb_out; 5059 xcb_parts[2].iov_len = sizeof(xcb_out); 5060 xcb_parts[3].iov_base = 0; 5061 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5062 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5063 return xcb_ret; 5064 } 5065 5066 5067 /***************************************************************************** 5068 ** 5069 ** xcb_void_cookie_t xcb_ungrab_server 5070 ** 5071 ** @param xcb_connection_t *c 5072 ** @returns xcb_void_cookie_t 5073 ** 5074 *****************************************************************************/ 5075 5076 xcb_void_cookie_t 5077 xcb_ungrab_server (xcb_connection_t *c /**< */) 5078 { 5079 static const xcb_protocol_request_t xcb_req = { 5080 /* count */ 2, 5081 /* ext */ 0, 5082 /* opcode */ XCB_UNGRAB_SERVER, 5083 /* isvoid */ 1 5084 }; 5085 5086 struct iovec xcb_parts[4]; 5087 xcb_void_cookie_t xcb_ret; 5088 xcb_ungrab_server_request_t xcb_out; 5089 5090 xcb_out.pad0 = 0; 5091 5092 xcb_parts[2].iov_base = (char *) &xcb_out; 5093 xcb_parts[2].iov_len = sizeof(xcb_out); 5094 xcb_parts[3].iov_base = 0; 5095 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5096 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5097 return xcb_ret; 5098 } 5099 5100 5101 /***************************************************************************** 5102 ** 5103 ** xcb_query_pointer_cookie_t xcb_query_pointer 5104 ** 5105 ** @param xcb_connection_t *c 5106 ** @param xcb_window_t window 5107 ** @returns xcb_query_pointer_cookie_t 5108 ** 5109 *****************************************************************************/ 5110 5111 xcb_query_pointer_cookie_t 5112 xcb_query_pointer (xcb_connection_t *c /**< */, 5113 xcb_window_t window /**< */) 5114 { 5115 static const xcb_protocol_request_t xcb_req = { 5116 /* count */ 2, 5117 /* ext */ 0, 5118 /* opcode */ XCB_QUERY_POINTER, 5119 /* isvoid */ 0 5120 }; 5121 5122 struct iovec xcb_parts[4]; 5123 xcb_query_pointer_cookie_t xcb_ret; 5124 xcb_query_pointer_request_t xcb_out; 5125 5126 xcb_out.pad0 = 0; 5127 xcb_out.window = window; 5128 5129 xcb_parts[2].iov_base = (char *) &xcb_out; 5130 xcb_parts[2].iov_len = sizeof(xcb_out); 5131 xcb_parts[3].iov_base = 0; 5132 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5133 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5134 return xcb_ret; 5135 } 5136 5137 5138 /***************************************************************************** 5139 ** 5140 ** xcb_query_pointer_cookie_t xcb_query_pointer_unchecked 5141 ** 5142 ** @param xcb_connection_t *c 5143 ** @param xcb_window_t window 5144 ** @returns xcb_query_pointer_cookie_t 5145 ** 5146 *****************************************************************************/ 5147 5148 xcb_query_pointer_cookie_t 5149 xcb_query_pointer_unchecked (xcb_connection_t *c /**< */, 5150 xcb_window_t window /**< */) 5151 { 5152 static const xcb_protocol_request_t xcb_req = { 5153 /* count */ 2, 5154 /* ext */ 0, 5155 /* opcode */ XCB_QUERY_POINTER, 5156 /* isvoid */ 0 5157 }; 5158 5159 struct iovec xcb_parts[4]; 5160 xcb_query_pointer_cookie_t xcb_ret; 5161 xcb_query_pointer_request_t xcb_out; 5162 5163 xcb_out.pad0 = 0; 5164 xcb_out.window = window; 5165 5166 xcb_parts[2].iov_base = (char *) &xcb_out; 5167 xcb_parts[2].iov_len = sizeof(xcb_out); 5168 xcb_parts[3].iov_base = 0; 5169 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5170 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5171 return xcb_ret; 5172 } 5173 5174 5175 /***************************************************************************** 5176 ** 5177 ** xcb_query_pointer_reply_t * xcb_query_pointer_reply 5178 ** 5179 ** @param xcb_connection_t *c 5180 ** @param xcb_query_pointer_cookie_t cookie 5181 ** @param xcb_generic_error_t **e 5182 ** @returns xcb_query_pointer_reply_t * 5183 ** 5184 *****************************************************************************/ 5185 5186 xcb_query_pointer_reply_t * 5187 xcb_query_pointer_reply (xcb_connection_t *c /**< */, 5188 xcb_query_pointer_cookie_t cookie /**< */, 5189 xcb_generic_error_t **e /**< */) 5190 { 5191 return (xcb_query_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5192 } 5193 5194 5195 /***************************************************************************** 5196 ** 5197 ** void xcb_timecoord_next 5198 ** 5199 ** @param xcb_timecoord_iterator_t *i 5200 ** @returns void 5201 ** 5202 *****************************************************************************/ 5203 5204 void 5205 xcb_timecoord_next (xcb_timecoord_iterator_t *i /**< */) 5206 { 5207 --i->rem; 5208 ++i->data; 5209 i->index += sizeof(xcb_timecoord_t); 5210 } 5211 5212 5213 /***************************************************************************** 5214 ** 5215 ** xcb_generic_iterator_t xcb_timecoord_end 5216 ** 5217 ** @param xcb_timecoord_iterator_t i 5218 ** @returns xcb_generic_iterator_t 5219 ** 5220 *****************************************************************************/ 5221 5222 xcb_generic_iterator_t 5223 xcb_timecoord_end (xcb_timecoord_iterator_t i /**< */) 5224 { 5225 xcb_generic_iterator_t ret; 5226 ret.data = i.data + i.rem; 5227 ret.index = i.index + ((char *) ret.data - (char *) i.data); 5228 ret.rem = 0; 5229 return ret; 5230 } 5231 5232 5233 /***************************************************************************** 5234 ** 5235 ** xcb_get_motion_events_cookie_t xcb_get_motion_events 5236 ** 5237 ** @param xcb_connection_t *c 5238 ** @param xcb_window_t window 5239 ** @param xcb_timestamp_t start 5240 ** @param xcb_timestamp_t stop 5241 ** @returns xcb_get_motion_events_cookie_t 5242 ** 5243 *****************************************************************************/ 5244 5245 xcb_get_motion_events_cookie_t 5246 xcb_get_motion_events (xcb_connection_t *c /**< */, 5247 xcb_window_t window /**< */, 5248 xcb_timestamp_t start /**< */, 5249 xcb_timestamp_t stop /**< */) 5250 { 5251 static const xcb_protocol_request_t xcb_req = { 5252 /* count */ 2, 5253 /* ext */ 0, 5254 /* opcode */ XCB_GET_MOTION_EVENTS, 5255 /* isvoid */ 0 5256 }; 5257 5258 struct iovec xcb_parts[4]; 5259 xcb_get_motion_events_cookie_t xcb_ret; 5260 xcb_get_motion_events_request_t xcb_out; 5261 5262 xcb_out.pad0 = 0; 5263 xcb_out.window = window; 5264 xcb_out.start = start; 5265 xcb_out.stop = stop; 5266 5267 xcb_parts[2].iov_base = (char *) &xcb_out; 5268 xcb_parts[2].iov_len = sizeof(xcb_out); 5269 xcb_parts[3].iov_base = 0; 5270 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5271 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5272 return xcb_ret; 5273 } 5274 5275 5276 /***************************************************************************** 5277 ** 5278 ** xcb_get_motion_events_cookie_t xcb_get_motion_events_unchecked 5279 ** 5280 ** @param xcb_connection_t *c 5281 ** @param xcb_window_t window 5282 ** @param xcb_timestamp_t start 5283 ** @param xcb_timestamp_t stop 5284 ** @returns xcb_get_motion_events_cookie_t 5285 ** 5286 *****************************************************************************/ 5287 5288 xcb_get_motion_events_cookie_t 5289 xcb_get_motion_events_unchecked (xcb_connection_t *c /**< */, 5290 xcb_window_t window /**< */, 5291 xcb_timestamp_t start /**< */, 5292 xcb_timestamp_t stop /**< */) 5293 { 5294 static const xcb_protocol_request_t xcb_req = { 5295 /* count */ 2, 5296 /* ext */ 0, 5297 /* opcode */ XCB_GET_MOTION_EVENTS, 5298 /* isvoid */ 0 5299 }; 5300 5301 struct iovec xcb_parts[4]; 5302 xcb_get_motion_events_cookie_t xcb_ret; 5303 xcb_get_motion_events_request_t xcb_out; 5304 5305 xcb_out.pad0 = 0; 5306 xcb_out.window = window; 5307 xcb_out.start = start; 5308 xcb_out.stop = stop; 5309 5310 xcb_parts[2].iov_base = (char *) &xcb_out; 5311 xcb_parts[2].iov_len = sizeof(xcb_out); 5312 xcb_parts[3].iov_base = 0; 5313 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5314 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5315 return xcb_ret; 5316 } 5317 5318 5319 /***************************************************************************** 5320 ** 5321 ** xcb_timecoord_t * xcb_get_motion_events_events 5322 ** 5323 ** @param const xcb_get_motion_events_reply_t *R 5324 ** @returns xcb_timecoord_t * 5325 ** 5326 *****************************************************************************/ 5327 5328 xcb_timecoord_t * 5329 xcb_get_motion_events_events (const xcb_get_motion_events_reply_t *R /**< */) 5330 { 5331 return (xcb_timecoord_t *) (R + 1); 5332 } 5333 5334 5335 /***************************************************************************** 5336 ** 5337 ** int xcb_get_motion_events_events_length 5338 ** 5339 ** @param const xcb_get_motion_events_reply_t *R 5340 ** @returns int 5341 ** 5342 *****************************************************************************/ 5343 5344 int 5345 xcb_get_motion_events_events_length (const xcb_get_motion_events_reply_t *R /**< */) 5346 { 5347 return R->events_len; 5348 } 5349 5350 5351 /***************************************************************************** 5352 ** 5353 ** xcb_timecoord_iterator_t xcb_get_motion_events_events_iterator 5354 ** 5355 ** @param const xcb_get_motion_events_reply_t *R 5356 ** @returns xcb_timecoord_iterator_t 5357 ** 5358 *****************************************************************************/ 5359 5360 xcb_timecoord_iterator_t 5361 xcb_get_motion_events_events_iterator (const xcb_get_motion_events_reply_t *R /**< */) 5362 { 5363 xcb_timecoord_iterator_t i; 5364 i.data = (xcb_timecoord_t *) (R + 1); 5365 i.rem = R->events_len; 5366 i.index = (char *) i.data - (char *) R; 5367 return i; 5368 } 5369 5370 5371 /***************************************************************************** 5372 ** 5373 ** xcb_get_motion_events_reply_t * xcb_get_motion_events_reply 5374 ** 5375 ** @param xcb_connection_t *c 5376 ** @param xcb_get_motion_events_cookie_t cookie 5377 ** @param xcb_generic_error_t **e 5378 ** @returns xcb_get_motion_events_reply_t * 5379 ** 5380 *****************************************************************************/ 5381 5382 xcb_get_motion_events_reply_t * 5383 xcb_get_motion_events_reply (xcb_connection_t *c /**< */, 5384 xcb_get_motion_events_cookie_t cookie /**< */, 5385 xcb_generic_error_t **e /**< */) 5386 { 5387 return (xcb_get_motion_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5388 } 5389 5390 5391 /***************************************************************************** 5392 ** 5393 ** xcb_translate_coordinates_cookie_t xcb_translate_coordinates 5394 ** 5395 ** @param xcb_connection_t *c 5396 ** @param xcb_window_t src_window 5397 ** @param xcb_window_t dst_window 5398 ** @param int16_t src_x 5399 ** @param int16_t src_y 5400 ** @returns xcb_translate_coordinates_cookie_t 5401 ** 5402 *****************************************************************************/ 5403 5404 xcb_translate_coordinates_cookie_t 5405 xcb_translate_coordinates (xcb_connection_t *c /**< */, 5406 xcb_window_t src_window /**< */, 5407 xcb_window_t dst_window /**< */, 5408 int16_t src_x /**< */, 5409 int16_t src_y /**< */) 5410 { 5411 static const xcb_protocol_request_t xcb_req = { 5412 /* count */ 2, 5413 /* ext */ 0, 5414 /* opcode */ XCB_TRANSLATE_COORDINATES, 5415 /* isvoid */ 0 5416 }; 5417 5418 struct iovec xcb_parts[4]; 5419 xcb_translate_coordinates_cookie_t xcb_ret; 5420 xcb_translate_coordinates_request_t xcb_out; 5421 5422 xcb_out.pad0 = 0; 5423 xcb_out.src_window = src_window; 5424 xcb_out.dst_window = dst_window; 5425 xcb_out.src_x = src_x; 5426 xcb_out.src_y = src_y; 5427 5428 xcb_parts[2].iov_base = (char *) &xcb_out; 5429 xcb_parts[2].iov_len = sizeof(xcb_out); 5430 xcb_parts[3].iov_base = 0; 5431 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5432 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5433 return xcb_ret; 5434 } 5435 5436 5437 /***************************************************************************** 5438 ** 5439 ** xcb_translate_coordinates_cookie_t xcb_translate_coordinates_unchecked 5440 ** 5441 ** @param xcb_connection_t *c 5442 ** @param xcb_window_t src_window 5443 ** @param xcb_window_t dst_window 5444 ** @param int16_t src_x 5445 ** @param int16_t src_y 5446 ** @returns xcb_translate_coordinates_cookie_t 5447 ** 5448 *****************************************************************************/ 5449 5450 xcb_translate_coordinates_cookie_t 5451 xcb_translate_coordinates_unchecked (xcb_connection_t *c /**< */, 5452 xcb_window_t src_window /**< */, 5453 xcb_window_t dst_window /**< */, 5454 int16_t src_x /**< */, 5455 int16_t src_y /**< */) 5456 { 5457 static const xcb_protocol_request_t xcb_req = { 5458 /* count */ 2, 5459 /* ext */ 0, 5460 /* opcode */ XCB_TRANSLATE_COORDINATES, 5461 /* isvoid */ 0 5462 }; 5463 5464 struct iovec xcb_parts[4]; 5465 xcb_translate_coordinates_cookie_t xcb_ret; 5466 xcb_translate_coordinates_request_t xcb_out; 5467 5468 xcb_out.pad0 = 0; 5469 xcb_out.src_window = src_window; 5470 xcb_out.dst_window = dst_window; 5471 xcb_out.src_x = src_x; 5472 xcb_out.src_y = src_y; 5473 5474 xcb_parts[2].iov_base = (char *) &xcb_out; 5475 xcb_parts[2].iov_len = sizeof(xcb_out); 5476 xcb_parts[3].iov_base = 0; 5477 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5478 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5479 return xcb_ret; 5480 } 5481 5482 5483 /***************************************************************************** 5484 ** 5485 ** xcb_translate_coordinates_reply_t * xcb_translate_coordinates_reply 5486 ** 5487 ** @param xcb_connection_t *c 5488 ** @param xcb_translate_coordinates_cookie_t cookie 5489 ** @param xcb_generic_error_t **e 5490 ** @returns xcb_translate_coordinates_reply_t * 5491 ** 5492 *****************************************************************************/ 5493 5494 xcb_translate_coordinates_reply_t * 5495 xcb_translate_coordinates_reply (xcb_connection_t *c /**< */, 5496 xcb_translate_coordinates_cookie_t cookie /**< */, 5497 xcb_generic_error_t **e /**< */) 5498 { 5499 return (xcb_translate_coordinates_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5500 } 5501 5502 5503 /***************************************************************************** 5504 ** 5505 ** xcb_void_cookie_t xcb_warp_pointer_checked 5506 ** 5507 ** @param xcb_connection_t *c 5508 ** @param xcb_window_t src_window 5509 ** @param xcb_window_t dst_window 5510 ** @param int16_t src_x 5511 ** @param int16_t src_y 5512 ** @param uint16_t src_width 5513 ** @param uint16_t src_height 5514 ** @param int16_t dst_x 5515 ** @param int16_t dst_y 5516 ** @returns xcb_void_cookie_t 5517 ** 5518 *****************************************************************************/ 5519 5520 xcb_void_cookie_t 5521 xcb_warp_pointer_checked (xcb_connection_t *c /**< */, 5522 xcb_window_t src_window /**< */, 5523 xcb_window_t dst_window /**< */, 5524 int16_t src_x /**< */, 5525 int16_t src_y /**< */, 5526 uint16_t src_width /**< */, 5527 uint16_t src_height /**< */, 5528 int16_t dst_x /**< */, 5529 int16_t dst_y /**< */) 5530 { 5531 static const xcb_protocol_request_t xcb_req = { 5532 /* count */ 2, 5533 /* ext */ 0, 5534 /* opcode */ XCB_WARP_POINTER, 5535 /* isvoid */ 1 5536 }; 5537 5538 struct iovec xcb_parts[4]; 5539 xcb_void_cookie_t xcb_ret; 5540 xcb_warp_pointer_request_t xcb_out; 5541 5542 xcb_out.pad0 = 0; 5543 xcb_out.src_window = src_window; 5544 xcb_out.dst_window = dst_window; 5545 xcb_out.src_x = src_x; 5546 xcb_out.src_y = src_y; 5547 xcb_out.src_width = src_width; 5548 xcb_out.src_height = src_height; 5549 xcb_out.dst_x = dst_x; 5550 xcb_out.dst_y = dst_y; 5551 5552 xcb_parts[2].iov_base = (char *) &xcb_out; 5553 xcb_parts[2].iov_len = sizeof(xcb_out); 5554 xcb_parts[3].iov_base = 0; 5555 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5556 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5557 return xcb_ret; 5558 } 5559 5560 5561 /***************************************************************************** 5562 ** 5563 ** xcb_void_cookie_t xcb_warp_pointer 5564 ** 5565 ** @param xcb_connection_t *c 5566 ** @param xcb_window_t src_window 5567 ** @param xcb_window_t dst_window 5568 ** @param int16_t src_x 5569 ** @param int16_t src_y 5570 ** @param uint16_t src_width 5571 ** @param uint16_t src_height 5572 ** @param int16_t dst_x 5573 ** @param int16_t dst_y 5574 ** @returns xcb_void_cookie_t 5575 ** 5576 *****************************************************************************/ 5577 5578 xcb_void_cookie_t 5579 xcb_warp_pointer (xcb_connection_t *c /**< */, 5580 xcb_window_t src_window /**< */, 5581 xcb_window_t dst_window /**< */, 5582 int16_t src_x /**< */, 5583 int16_t src_y /**< */, 5584 uint16_t src_width /**< */, 5585 uint16_t src_height /**< */, 5586 int16_t dst_x /**< */, 5587 int16_t dst_y /**< */) 5588 { 5589 static const xcb_protocol_request_t xcb_req = { 5590 /* count */ 2, 5591 /* ext */ 0, 5592 /* opcode */ XCB_WARP_POINTER, 5593 /* isvoid */ 1 5594 }; 5595 5596 struct iovec xcb_parts[4]; 5597 xcb_void_cookie_t xcb_ret; 5598 xcb_warp_pointer_request_t xcb_out; 5599 5600 xcb_out.pad0 = 0; 5601 xcb_out.src_window = src_window; 5602 xcb_out.dst_window = dst_window; 5603 xcb_out.src_x = src_x; 5604 xcb_out.src_y = src_y; 5605 xcb_out.src_width = src_width; 5606 xcb_out.src_height = src_height; 5607 xcb_out.dst_x = dst_x; 5608 xcb_out.dst_y = dst_y; 5609 5610 xcb_parts[2].iov_base = (char *) &xcb_out; 5611 xcb_parts[2].iov_len = sizeof(xcb_out); 5612 xcb_parts[3].iov_base = 0; 5613 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5614 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5615 return xcb_ret; 5616 } 5617 5618 5619 /***************************************************************************** 5620 ** 5621 ** xcb_void_cookie_t xcb_set_input_focus_checked 5622 ** 5623 ** @param xcb_connection_t *c 5624 ** @param uint8_t revert_to 5625 ** @param xcb_window_t focus 5626 ** @param xcb_timestamp_t time 5627 ** @returns xcb_void_cookie_t 5628 ** 5629 *****************************************************************************/ 5630 5631 xcb_void_cookie_t 5632 xcb_set_input_focus_checked (xcb_connection_t *c /**< */, 5633 uint8_t revert_to /**< */, 5634 xcb_window_t focus /**< */, 5635 xcb_timestamp_t time /**< */) 5636 { 5637 static const xcb_protocol_request_t xcb_req = { 5638 /* count */ 2, 5639 /* ext */ 0, 5640 /* opcode */ XCB_SET_INPUT_FOCUS, 5641 /* isvoid */ 1 5642 }; 5643 5644 struct iovec xcb_parts[4]; 5645 xcb_void_cookie_t xcb_ret; 5646 xcb_set_input_focus_request_t xcb_out; 5647 5648 xcb_out.revert_to = revert_to; 5649 xcb_out.focus = focus; 5650 xcb_out.time = time; 5651 5652 xcb_parts[2].iov_base = (char *) &xcb_out; 5653 xcb_parts[2].iov_len = sizeof(xcb_out); 5654 xcb_parts[3].iov_base = 0; 5655 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5656 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5657 return xcb_ret; 5658 } 5659 5660 5661 /***************************************************************************** 5662 ** 5663 ** xcb_void_cookie_t xcb_set_input_focus 5664 ** 5665 ** @param xcb_connection_t *c 5666 ** @param uint8_t revert_to 5667 ** @param xcb_window_t focus 5668 ** @param xcb_timestamp_t time 5669 ** @returns xcb_void_cookie_t 5670 ** 5671 *****************************************************************************/ 5672 5673 xcb_void_cookie_t 5674 xcb_set_input_focus (xcb_connection_t *c /**< */, 5675 uint8_t revert_to /**< */, 5676 xcb_window_t focus /**< */, 5677 xcb_timestamp_t time /**< */) 5678 { 5679 static const xcb_protocol_request_t xcb_req = { 5680 /* count */ 2, 5681 /* ext */ 0, 5682 /* opcode */ XCB_SET_INPUT_FOCUS, 5683 /* isvoid */ 1 5684 }; 5685 5686 struct iovec xcb_parts[4]; 5687 xcb_void_cookie_t xcb_ret; 5688 xcb_set_input_focus_request_t xcb_out; 5689 5690 xcb_out.revert_to = revert_to; 5691 xcb_out.focus = focus; 5692 xcb_out.time = time; 5693 5694 xcb_parts[2].iov_base = (char *) &xcb_out; 5695 xcb_parts[2].iov_len = sizeof(xcb_out); 5696 xcb_parts[3].iov_base = 0; 5697 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5698 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5699 return xcb_ret; 5700 } 5701 5702 5703 /***************************************************************************** 5704 ** 5705 ** xcb_get_input_focus_cookie_t xcb_get_input_focus 5706 ** 5707 ** @param xcb_connection_t *c 5708 ** @returns xcb_get_input_focus_cookie_t 5709 ** 5710 *****************************************************************************/ 5711 5712 xcb_get_input_focus_cookie_t 5713 xcb_get_input_focus (xcb_connection_t *c /**< */) 5714 { 5715 static const xcb_protocol_request_t xcb_req = { 5716 /* count */ 2, 5717 /* ext */ 0, 5718 /* opcode */ XCB_GET_INPUT_FOCUS, 5719 /* isvoid */ 0 5720 }; 5721 5722 struct iovec xcb_parts[4]; 5723 xcb_get_input_focus_cookie_t xcb_ret; 5724 xcb_get_input_focus_request_t xcb_out; 5725 5726 xcb_out.pad0 = 0; 5727 5728 xcb_parts[2].iov_base = (char *) &xcb_out; 5729 xcb_parts[2].iov_len = sizeof(xcb_out); 5730 xcb_parts[3].iov_base = 0; 5731 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5732 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5733 return xcb_ret; 5734 } 5735 5736 5737 /***************************************************************************** 5738 ** 5739 ** xcb_get_input_focus_cookie_t xcb_get_input_focus_unchecked 5740 ** 5741 ** @param xcb_connection_t *c 5742 ** @returns xcb_get_input_focus_cookie_t 5743 ** 5744 *****************************************************************************/ 5745 5746 xcb_get_input_focus_cookie_t 5747 xcb_get_input_focus_unchecked (xcb_connection_t *c /**< */) 5748 { 5749 static const xcb_protocol_request_t xcb_req = { 5750 /* count */ 2, 5751 /* ext */ 0, 5752 /* opcode */ XCB_GET_INPUT_FOCUS, 5753 /* isvoid */ 0 5754 }; 5755 5756 struct iovec xcb_parts[4]; 5757 xcb_get_input_focus_cookie_t xcb_ret; 5758 xcb_get_input_focus_request_t xcb_out; 5759 5760 xcb_out.pad0 = 0; 5761 5762 xcb_parts[2].iov_base = (char *) &xcb_out; 5763 xcb_parts[2].iov_len = sizeof(xcb_out); 5764 xcb_parts[3].iov_base = 0; 5765 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5766 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5767 return xcb_ret; 5768 } 5769 5770 5771 /***************************************************************************** 5772 ** 5773 ** xcb_get_input_focus_reply_t * xcb_get_input_focus_reply 5774 ** 5775 ** @param xcb_connection_t *c 5776 ** @param xcb_get_input_focus_cookie_t cookie 5777 ** @param xcb_generic_error_t **e 5778 ** @returns xcb_get_input_focus_reply_t * 5779 ** 5780 *****************************************************************************/ 5781 5782 xcb_get_input_focus_reply_t * 5783 xcb_get_input_focus_reply (xcb_connection_t *c /**< */, 5784 xcb_get_input_focus_cookie_t cookie /**< */, 5785 xcb_generic_error_t **e /**< */) 5786 { 5787 return (xcb_get_input_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5788 } 5789 5790 5791 /***************************************************************************** 5792 ** 5793 ** xcb_query_keymap_cookie_t xcb_query_keymap 5794 ** 5795 ** @param xcb_connection_t *c 5796 ** @returns xcb_query_keymap_cookie_t 5797 ** 5798 *****************************************************************************/ 5799 5800 xcb_query_keymap_cookie_t 5801 xcb_query_keymap (xcb_connection_t *c /**< */) 5802 { 5803 static const xcb_protocol_request_t xcb_req = { 5804 /* count */ 2, 5805 /* ext */ 0, 5806 /* opcode */ XCB_QUERY_KEYMAP, 5807 /* isvoid */ 0 5808 }; 5809 5810 struct iovec xcb_parts[4]; 5811 xcb_query_keymap_cookie_t xcb_ret; 5812 xcb_query_keymap_request_t xcb_out; 5813 5814 xcb_out.pad0 = 0; 5815 5816 xcb_parts[2].iov_base = (char *) &xcb_out; 5817 xcb_parts[2].iov_len = sizeof(xcb_out); 5818 xcb_parts[3].iov_base = 0; 5819 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5820 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5821 return xcb_ret; 5822 } 5823 5824 5825 /***************************************************************************** 5826 ** 5827 ** xcb_query_keymap_cookie_t xcb_query_keymap_unchecked 5828 ** 5829 ** @param xcb_connection_t *c 5830 ** @returns xcb_query_keymap_cookie_t 5831 ** 5832 *****************************************************************************/ 5833 5834 xcb_query_keymap_cookie_t 5835 xcb_query_keymap_unchecked (xcb_connection_t *c /**< */) 5836 { 5837 static const xcb_protocol_request_t xcb_req = { 5838 /* count */ 2, 5839 /* ext */ 0, 5840 /* opcode */ XCB_QUERY_KEYMAP, 5841 /* isvoid */ 0 5842 }; 5843 5844 struct iovec xcb_parts[4]; 5845 xcb_query_keymap_cookie_t xcb_ret; 5846 xcb_query_keymap_request_t xcb_out; 5847 5848 xcb_out.pad0 = 0; 5849 5850 xcb_parts[2].iov_base = (char *) &xcb_out; 5851 xcb_parts[2].iov_len = sizeof(xcb_out); 5852 xcb_parts[3].iov_base = 0; 5853 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5854 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5855 return xcb_ret; 5856 } 5857 5858 5859 /***************************************************************************** 5860 ** 5861 ** xcb_query_keymap_reply_t * xcb_query_keymap_reply 5862 ** 5863 ** @param xcb_connection_t *c 5864 ** @param xcb_query_keymap_cookie_t cookie 5865 ** @param xcb_generic_error_t **e 5866 ** @returns xcb_query_keymap_reply_t * 5867 ** 5868 *****************************************************************************/ 5869 5870 xcb_query_keymap_reply_t * 5871 xcb_query_keymap_reply (xcb_connection_t *c /**< */, 5872 xcb_query_keymap_cookie_t cookie /**< */, 5873 xcb_generic_error_t **e /**< */) 5874 { 5875 return (xcb_query_keymap_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5876 } 5877 5878 5879 /***************************************************************************** 5880 ** 5881 ** xcb_void_cookie_t xcb_open_font_checked 5882 ** 5883 ** @param xcb_connection_t *c 5884 ** @param xcb_font_t fid 5885 ** @param uint16_t name_len 5886 ** @param const char *name 5887 ** @returns xcb_void_cookie_t 5888 ** 5889 *****************************************************************************/ 5890 5891 xcb_void_cookie_t 5892 xcb_open_font_checked (xcb_connection_t *c /**< */, 5893 xcb_font_t fid /**< */, 5894 uint16_t name_len /**< */, 5895 const char *name /**< */) 5896 { 5897 static const xcb_protocol_request_t xcb_req = { 5898 /* count */ 4, 5899 /* ext */ 0, 5900 /* opcode */ XCB_OPEN_FONT, 5901 /* isvoid */ 1 5902 }; 5903 5904 struct iovec xcb_parts[6]; 5905 xcb_void_cookie_t xcb_ret; 5906 xcb_open_font_request_t xcb_out; 5907 5908 xcb_out.pad0 = 0; 5909 xcb_out.fid = fid; 5910 xcb_out.name_len = name_len; 5911 memset(xcb_out.pad1, 0, 2); 5912 5913 xcb_parts[2].iov_base = (char *) &xcb_out; 5914 xcb_parts[2].iov_len = sizeof(xcb_out); 5915 xcb_parts[3].iov_base = 0; 5916 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5917 xcb_parts[4].iov_base = (char *) name; 5918 xcb_parts[4].iov_len = name_len * sizeof(char); 5919 xcb_parts[5].iov_base = 0; 5920 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 5921 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5922 return xcb_ret; 5923 } 5924 5925 5926 /***************************************************************************** 5927 ** 5928 ** xcb_void_cookie_t xcb_open_font 5929 ** 5930 ** @param xcb_connection_t *c 5931 ** @param xcb_font_t fid 5932 ** @param uint16_t name_len 5933 ** @param const char *name 5934 ** @returns xcb_void_cookie_t 5935 ** 5936 *****************************************************************************/ 5937 5938 xcb_void_cookie_t 5939 xcb_open_font (xcb_connection_t *c /**< */, 5940 xcb_font_t fid /**< */, 5941 uint16_t name_len /**< */, 5942 const char *name /**< */) 5943 { 5944 static const xcb_protocol_request_t xcb_req = { 5945 /* count */ 4, 5946 /* ext */ 0, 5947 /* opcode */ XCB_OPEN_FONT, 5948 /* isvoid */ 1 5949 }; 5950 5951 struct iovec xcb_parts[6]; 5952 xcb_void_cookie_t xcb_ret; 5953 xcb_open_font_request_t xcb_out; 5954 5955 xcb_out.pad0 = 0; 5956 xcb_out.fid = fid; 5957 xcb_out.name_len = name_len; 5958 memset(xcb_out.pad1, 0, 2); 5959 5960 xcb_parts[2].iov_base = (char *) &xcb_out; 5961 xcb_parts[2].iov_len = sizeof(xcb_out); 5962 xcb_parts[3].iov_base = 0; 5963 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5964 xcb_parts[4].iov_base = (char *) name; 5965 xcb_parts[4].iov_len = name_len * sizeof(char); 5966 xcb_parts[5].iov_base = 0; 5967 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 5968 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5969 return xcb_ret; 5970 } 5971 5972 5973 /***************************************************************************** 5974 ** 5975 ** xcb_void_cookie_t xcb_close_font_checked 5976 ** 5977 ** @param xcb_connection_t *c 5978 ** @param xcb_font_t font 5979 ** @returns xcb_void_cookie_t 5980 ** 5981 *****************************************************************************/ 5982 5983 xcb_void_cookie_t 5984 xcb_close_font_checked (xcb_connection_t *c /**< */, 5985 xcb_font_t font /**< */) 5986 { 5987 static const xcb_protocol_request_t xcb_req = { 5988 /* count */ 2, 5989 /* ext */ 0, 5990 /* opcode */ XCB_CLOSE_FONT, 5991 /* isvoid */ 1 5992 }; 5993 5994 struct iovec xcb_parts[4]; 5995 xcb_void_cookie_t xcb_ret; 5996 xcb_close_font_request_t xcb_out; 5997 5998 xcb_out.pad0 = 0; 5999 xcb_out.font = font; 6000 6001 xcb_parts[2].iov_base = (char *) &xcb_out; 6002 xcb_parts[2].iov_len = sizeof(xcb_out); 6003 xcb_parts[3].iov_base = 0; 6004 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6005 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6006 return xcb_ret; 6007 } 6008 6009 6010 /***************************************************************************** 6011 ** 6012 ** xcb_void_cookie_t xcb_close_font 6013 ** 6014 ** @param xcb_connection_t *c 6015 ** @param xcb_font_t font 6016 ** @returns xcb_void_cookie_t 6017 ** 6018 *****************************************************************************/ 6019 6020 xcb_void_cookie_t 6021 xcb_close_font (xcb_connection_t *c /**< */, 6022 xcb_font_t font /**< */) 6023 { 6024 static const xcb_protocol_request_t xcb_req = { 6025 /* count */ 2, 6026 /* ext */ 0, 6027 /* opcode */ XCB_CLOSE_FONT, 6028 /* isvoid */ 1 6029 }; 6030 6031 struct iovec xcb_parts[4]; 6032 xcb_void_cookie_t xcb_ret; 6033 xcb_close_font_request_t xcb_out; 6034 6035 xcb_out.pad0 = 0; 6036 xcb_out.font = font; 6037 6038 xcb_parts[2].iov_base = (char *) &xcb_out; 6039 xcb_parts[2].iov_len = sizeof(xcb_out); 6040 xcb_parts[3].iov_base = 0; 6041 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6042 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6043 return xcb_ret; 6044 } 6045 6046 6047 /***************************************************************************** 6048 ** 6049 ** void xcb_fontprop_next 6050 ** 6051 ** @param xcb_fontprop_iterator_t *i 6052 ** @returns void 6053 ** 6054 *****************************************************************************/ 6055 6056 void 6057 xcb_fontprop_next (xcb_fontprop_iterator_t *i /**< */) 6058 { 6059 --i->rem; 6060 ++i->data; 6061 i->index += sizeof(xcb_fontprop_t); 6062 } 6063 6064 6065 /***************************************************************************** 6066 ** 6067 ** xcb_generic_iterator_t xcb_fontprop_end 6068 ** 6069 ** @param xcb_fontprop_iterator_t i 6070 ** @returns xcb_generic_iterator_t 6071 ** 6072 *****************************************************************************/ 6073 6074 xcb_generic_iterator_t 6075 xcb_fontprop_end (xcb_fontprop_iterator_t i /**< */) 6076 { 6077 xcb_generic_iterator_t ret; 6078 ret.data = i.data + i.rem; 6079 ret.index = i.index + ((char *) ret.data - (char *) i.data); 6080 ret.rem = 0; 6081 return ret; 6082 } 6083 6084 6085 /***************************************************************************** 6086 ** 6087 ** void xcb_charinfo_next 6088 ** 6089 ** @param xcb_charinfo_iterator_t *i 6090 ** @returns void 6091 ** 6092 *****************************************************************************/ 6093 6094 void 6095 xcb_charinfo_next (xcb_charinfo_iterator_t *i /**< */) 6096 { 6097 --i->rem; 6098 ++i->data; 6099 i->index += sizeof(xcb_charinfo_t); 6100 } 6101 6102 6103 /***************************************************************************** 6104 ** 6105 ** xcb_generic_iterator_t xcb_charinfo_end 6106 ** 6107 ** @param xcb_charinfo_iterator_t i 6108 ** @returns xcb_generic_iterator_t 6109 ** 6110 *****************************************************************************/ 6111 6112 xcb_generic_iterator_t 6113 xcb_charinfo_end (xcb_charinfo_iterator_t i /**< */) 6114 { 6115 xcb_generic_iterator_t ret; 6116 ret.data = i.data + i.rem; 6117 ret.index = i.index + ((char *) ret.data - (char *) i.data); 6118 ret.rem = 0; 6119 return ret; 6120 } 6121 6122 6123 /***************************************************************************** 6124 ** 6125 ** xcb_query_font_cookie_t xcb_query_font 6126 ** 6127 ** @param xcb_connection_t *c 6128 ** @param xcb_fontable_t font 6129 ** @returns xcb_query_font_cookie_t 6130 ** 6131 *****************************************************************************/ 6132 6133 xcb_query_font_cookie_t 6134 xcb_query_font (xcb_connection_t *c /**< */, 6135 xcb_fontable_t font /**< */) 6136 { 6137 static const xcb_protocol_request_t xcb_req = { 6138 /* count */ 2, 6139 /* ext */ 0, 6140 /* opcode */ XCB_QUERY_FONT, 6141 /* isvoid */ 0 6142 }; 6143 6144 struct iovec xcb_parts[4]; 6145 xcb_query_font_cookie_t xcb_ret; 6146 xcb_query_font_request_t xcb_out; 6147 6148 xcb_out.pad0 = 0; 6149 xcb_out.font = font; 6150 6151 xcb_parts[2].iov_base = (char *) &xcb_out; 6152 xcb_parts[2].iov_len = sizeof(xcb_out); 6153 xcb_parts[3].iov_base = 0; 6154 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6155 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6156 return xcb_ret; 6157 } 6158 6159 6160 /***************************************************************************** 6161 ** 6162 ** xcb_query_font_cookie_t xcb_query_font_unchecked 6163 ** 6164 ** @param xcb_connection_t *c 6165 ** @param xcb_fontable_t font 6166 ** @returns xcb_query_font_cookie_t 6167 ** 6168 *****************************************************************************/ 6169 6170 xcb_query_font_cookie_t 6171 xcb_query_font_unchecked (xcb_connection_t *c /**< */, 6172 xcb_fontable_t font /**< */) 6173 { 6174 static const xcb_protocol_request_t xcb_req = { 6175 /* count */ 2, 6176 /* ext */ 0, 6177 /* opcode */ XCB_QUERY_FONT, 6178 /* isvoid */ 0 6179 }; 6180 6181 struct iovec xcb_parts[4]; 6182 xcb_query_font_cookie_t xcb_ret; 6183 xcb_query_font_request_t xcb_out; 6184 6185 xcb_out.pad0 = 0; 6186 xcb_out.font = font; 6187 6188 xcb_parts[2].iov_base = (char *) &xcb_out; 6189 xcb_parts[2].iov_len = sizeof(xcb_out); 6190 xcb_parts[3].iov_base = 0; 6191 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6192 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6193 return xcb_ret; 6194 } 6195 6196 6197 /***************************************************************************** 6198 ** 6199 ** xcb_fontprop_t * xcb_query_font_properties 6200 ** 6201 ** @param const xcb_query_font_reply_t *R 6202 ** @returns xcb_fontprop_t * 6203 ** 6204 *****************************************************************************/ 6205 6206 xcb_fontprop_t * 6207 xcb_query_font_properties (const xcb_query_font_reply_t *R /**< */) 6208 { 6209 return (xcb_fontprop_t *) (R + 1); 6210 } 6211 6212 6213 /***************************************************************************** 6214 ** 6215 ** int xcb_query_font_properties_length 6216 ** 6217 ** @param const xcb_query_font_reply_t *R 6218 ** @returns int 6219 ** 6220 *****************************************************************************/ 6221 6222 int 6223 xcb_query_font_properties_length (const xcb_query_font_reply_t *R /**< */) 6224 { 6225 return R->properties_len; 6226 } 6227 6228 6229 /***************************************************************************** 6230 ** 6231 ** xcb_fontprop_iterator_t xcb_query_font_properties_iterator 6232 ** 6233 ** @param const xcb_query_font_reply_t *R 6234 ** @returns xcb_fontprop_iterator_t 6235 ** 6236 *****************************************************************************/ 6237 6238 xcb_fontprop_iterator_t 6239 xcb_query_font_properties_iterator (const xcb_query_font_reply_t *R /**< */) 6240 { 6241 xcb_fontprop_iterator_t i; 6242 i.data = (xcb_fontprop_t *) (R + 1); 6243 i.rem = R->properties_len; 6244 i.index = (char *) i.data - (char *) R; 6245 return i; 6246 } 6247 6248 6249 /***************************************************************************** 6250 ** 6251 ** xcb_charinfo_t * xcb_query_font_char_infos 6252 ** 6253 ** @param const xcb_query_font_reply_t *R 6254 ** @returns xcb_charinfo_t * 6255 ** 6256 *****************************************************************************/ 6257 6258 xcb_charinfo_t * 6259 xcb_query_font_char_infos (const xcb_query_font_reply_t *R /**< */) 6260 { 6261 xcb_generic_iterator_t prev = xcb_fontprop_end(xcb_query_font_properties_iterator(R)); 6262 return (xcb_charinfo_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_charinfo_t, prev.index) + 0); 6263 } 6264 6265 6266 /***************************************************************************** 6267 ** 6268 ** int xcb_query_font_char_infos_length 6269 ** 6270 ** @param const xcb_query_font_reply_t *R 6271 ** @returns int 6272 ** 6273 *****************************************************************************/ 6274 6275 int 6276 xcb_query_font_char_infos_length (const xcb_query_font_reply_t *R /**< */) 6277 { 6278 return R->char_infos_len; 6279 } 6280 6281 6282 /***************************************************************************** 6283 ** 6284 ** xcb_charinfo_iterator_t xcb_query_font_char_infos_iterator 6285 ** 6286 ** @param const xcb_query_font_reply_t *R 6287 ** @returns xcb_charinfo_iterator_t 6288 ** 6289 *****************************************************************************/ 6290 6291 xcb_charinfo_iterator_t 6292 xcb_query_font_char_infos_iterator (const xcb_query_font_reply_t *R /**< */) 6293 { 6294 xcb_charinfo_iterator_t i; 6295 xcb_generic_iterator_t prev = xcb_fontprop_end(xcb_query_font_properties_iterator(R)); 6296 i.data = (xcb_charinfo_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_charinfo_t, prev.index)); 6297 i.rem = R->char_infos_len; 6298 i.index = (char *) i.data - (char *) R; 6299 return i; 6300 } 6301 6302 6303 /***************************************************************************** 6304 ** 6305 ** xcb_query_font_reply_t * xcb_query_font_reply 6306 ** 6307 ** @param xcb_connection_t *c 6308 ** @param xcb_query_font_cookie_t cookie 6309 ** @param xcb_generic_error_t **e 6310 ** @returns xcb_query_font_reply_t * 6311 ** 6312 *****************************************************************************/ 6313 6314 xcb_query_font_reply_t * 6315 xcb_query_font_reply (xcb_connection_t *c /**< */, 6316 xcb_query_font_cookie_t cookie /**< */, 6317 xcb_generic_error_t **e /**< */) 6318 { 6319 return (xcb_query_font_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6320 } 6321 6322 6323 /***************************************************************************** 6324 ** 6325 ** xcb_query_text_extents_cookie_t xcb_query_text_extents 6326 ** 6327 ** @param xcb_connection_t *c 6328 ** @param xcb_fontable_t font 6329 ** @param uint32_t string_len 6330 ** @param const xcb_char2b_t *string 6331 ** @returns xcb_query_text_extents_cookie_t 6332 ** 6333 *****************************************************************************/ 6334 6335 xcb_query_text_extents_cookie_t 6336 xcb_query_text_extents (xcb_connection_t *c /**< */, 6337 xcb_fontable_t font /**< */, 6338 uint32_t string_len /**< */, 6339 const xcb_char2b_t *string /**< */) 6340 { 6341 static const xcb_protocol_request_t xcb_req = { 6342 /* count */ 4, 6343 /* ext */ 0, 6344 /* opcode */ XCB_QUERY_TEXT_EXTENTS, 6345 /* isvoid */ 0 6346 }; 6347 6348 struct iovec xcb_parts[6]; 6349 xcb_query_text_extents_cookie_t xcb_ret; 6350 xcb_query_text_extents_request_t xcb_out; 6351 6352 xcb_out.odd_length = (string_len & 1); 6353 xcb_out.font = font; 6354 6355 xcb_parts[2].iov_base = (char *) &xcb_out; 6356 xcb_parts[2].iov_len = sizeof(xcb_out); 6357 xcb_parts[3].iov_base = 0; 6358 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6359 xcb_parts[4].iov_base = (char *) string; 6360 xcb_parts[4].iov_len = string_len * sizeof(xcb_char2b_t); 6361 xcb_parts[5].iov_base = 0; 6362 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6363 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6364 return xcb_ret; 6365 } 6366 6367 6368 /***************************************************************************** 6369 ** 6370 ** xcb_query_text_extents_cookie_t xcb_query_text_extents_unchecked 6371 ** 6372 ** @param xcb_connection_t *c 6373 ** @param xcb_fontable_t font 6374 ** @param uint32_t string_len 6375 ** @param const xcb_char2b_t *string 6376 ** @returns xcb_query_text_extents_cookie_t 6377 ** 6378 *****************************************************************************/ 6379 6380 xcb_query_text_extents_cookie_t 6381 xcb_query_text_extents_unchecked (xcb_connection_t *c /**< */, 6382 xcb_fontable_t font /**< */, 6383 uint32_t string_len /**< */, 6384 const xcb_char2b_t *string /**< */) 6385 { 6386 static const xcb_protocol_request_t xcb_req = { 6387 /* count */ 4, 6388 /* ext */ 0, 6389 /* opcode */ XCB_QUERY_TEXT_EXTENTS, 6390 /* isvoid */ 0 6391 }; 6392 6393 struct iovec xcb_parts[6]; 6394 xcb_query_text_extents_cookie_t xcb_ret; 6395 xcb_query_text_extents_request_t xcb_out; 6396 6397 xcb_out.odd_length = (string_len & 1); 6398 xcb_out.font = font; 6399 6400 xcb_parts[2].iov_base = (char *) &xcb_out; 6401 xcb_parts[2].iov_len = sizeof(xcb_out); 6402 xcb_parts[3].iov_base = 0; 6403 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6404 xcb_parts[4].iov_base = (char *) string; 6405 xcb_parts[4].iov_len = string_len * sizeof(xcb_char2b_t); 6406 xcb_parts[5].iov_base = 0; 6407 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6408 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6409 return xcb_ret; 6410 } 6411 6412 6413 /***************************************************************************** 6414 ** 6415 ** xcb_query_text_extents_reply_t * xcb_query_text_extents_reply 6416 ** 6417 ** @param xcb_connection_t *c 6418 ** @param xcb_query_text_extents_cookie_t cookie 6419 ** @param xcb_generic_error_t **e 6420 ** @returns xcb_query_text_extents_reply_t * 6421 ** 6422 *****************************************************************************/ 6423 6424 xcb_query_text_extents_reply_t * 6425 xcb_query_text_extents_reply (xcb_connection_t *c /**< */, 6426 xcb_query_text_extents_cookie_t cookie /**< */, 6427 xcb_generic_error_t **e /**< */) 6428 { 6429 return (xcb_query_text_extents_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6430 } 6431 6432 6433 /***************************************************************************** 6434 ** 6435 ** char * xcb_str_name 6436 ** 6437 ** @param const xcb_str_t *R 6438 ** @returns char * 6439 ** 6440 *****************************************************************************/ 6441 6442 char * 6443 xcb_str_name (const xcb_str_t *R /**< */) 6444 { 6445 return (char *) (R + 1); 6446 } 6447 6448 6449 /***************************************************************************** 6450 ** 6451 ** int xcb_str_name_length 6452 ** 6453 ** @param const xcb_str_t *R 6454 ** @returns int 6455 ** 6456 *****************************************************************************/ 6457 6458 int 6459 xcb_str_name_length (const xcb_str_t *R /**< */) 6460 { 6461 return R->name_len; 6462 } 6463 6464 6465 /***************************************************************************** 6466 ** 6467 ** xcb_generic_iterator_t xcb_str_name_end 6468 ** 6469 ** @param const xcb_str_t *R 6470 ** @returns xcb_generic_iterator_t 6471 ** 6472 *****************************************************************************/ 6473 6474 xcb_generic_iterator_t 6475 xcb_str_name_end (const xcb_str_t *R /**< */) 6476 { 6477 xcb_generic_iterator_t i; 6478 i.data = ((char *) (R + 1)) + (R->name_len); 6479 i.rem = 0; 6480 i.index = (char *) i.data - (char *) R; 6481 return i; 6482 } 6483 6484 6485 /***************************************************************************** 6486 ** 6487 ** void xcb_str_next 6488 ** 6489 ** @param xcb_str_iterator_t *i 6490 ** @returns void 6491 ** 6492 *****************************************************************************/ 6493 6494 void 6495 xcb_str_next (xcb_str_iterator_t *i /**< */) 6496 { 6497 xcb_str_t *R = i->data; 6498 xcb_generic_iterator_t child = xcb_str_name_end(R); 6499 --i->rem; 6500 i->data = (xcb_str_t *) child.data; 6501 i->index = child.index; 6502 } 6503 6504 6505 /***************************************************************************** 6506 ** 6507 ** xcb_generic_iterator_t xcb_str_end 6508 ** 6509 ** @param xcb_str_iterator_t i 6510 ** @returns xcb_generic_iterator_t 6511 ** 6512 *****************************************************************************/ 6513 6514 xcb_generic_iterator_t 6515 xcb_str_end (xcb_str_iterator_t i /**< */) 6516 { 6517 xcb_generic_iterator_t ret; 6518 while(i.rem > 0) 6519 xcb_str_next(&i); 6520 ret.data = i.data; 6521 ret.rem = i.rem; 6522 ret.index = i.index; 6523 return ret; 6524 } 6525 6526 6527 /***************************************************************************** 6528 ** 6529 ** xcb_list_fonts_cookie_t xcb_list_fonts 6530 ** 6531 ** @param xcb_connection_t *c 6532 ** @param uint16_t max_names 6533 ** @param uint16_t pattern_len 6534 ** @param const char *pattern 6535 ** @returns xcb_list_fonts_cookie_t 6536 ** 6537 *****************************************************************************/ 6538 6539 xcb_list_fonts_cookie_t 6540 xcb_list_fonts (xcb_connection_t *c /**< */, 6541 uint16_t max_names /**< */, 6542 uint16_t pattern_len /**< */, 6543 const char *pattern /**< */) 6544 { 6545 static const xcb_protocol_request_t xcb_req = { 6546 /* count */ 4, 6547 /* ext */ 0, 6548 /* opcode */ XCB_LIST_FONTS, 6549 /* isvoid */ 0 6550 }; 6551 6552 struct iovec xcb_parts[6]; 6553 xcb_list_fonts_cookie_t xcb_ret; 6554 xcb_list_fonts_request_t xcb_out; 6555 6556 xcb_out.pad0 = 0; 6557 xcb_out.max_names = max_names; 6558 xcb_out.pattern_len = pattern_len; 6559 6560 xcb_parts[2].iov_base = (char *) &xcb_out; 6561 xcb_parts[2].iov_len = sizeof(xcb_out); 6562 xcb_parts[3].iov_base = 0; 6563 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6564 xcb_parts[4].iov_base = (char *) pattern; 6565 xcb_parts[4].iov_len = pattern_len * sizeof(char); 6566 xcb_parts[5].iov_base = 0; 6567 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6568 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6569 return xcb_ret; 6570 } 6571 6572 6573 /***************************************************************************** 6574 ** 6575 ** xcb_list_fonts_cookie_t xcb_list_fonts_unchecked 6576 ** 6577 ** @param xcb_connection_t *c 6578 ** @param uint16_t max_names 6579 ** @param uint16_t pattern_len 6580 ** @param const char *pattern 6581 ** @returns xcb_list_fonts_cookie_t 6582 ** 6583 *****************************************************************************/ 6584 6585 xcb_list_fonts_cookie_t 6586 xcb_list_fonts_unchecked (xcb_connection_t *c /**< */, 6587 uint16_t max_names /**< */, 6588 uint16_t pattern_len /**< */, 6589 const char *pattern /**< */) 6590 { 6591 static const xcb_protocol_request_t xcb_req = { 6592 /* count */ 4, 6593 /* ext */ 0, 6594 /* opcode */ XCB_LIST_FONTS, 6595 /* isvoid */ 0 6596 }; 6597 6598 struct iovec xcb_parts[6]; 6599 xcb_list_fonts_cookie_t xcb_ret; 6600 xcb_list_fonts_request_t xcb_out; 6601 6602 xcb_out.pad0 = 0; 6603 xcb_out.max_names = max_names; 6604 xcb_out.pattern_len = pattern_len; 6605 6606 xcb_parts[2].iov_base = (char *) &xcb_out; 6607 xcb_parts[2].iov_len = sizeof(xcb_out); 6608 xcb_parts[3].iov_base = 0; 6609 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6610 xcb_parts[4].iov_base = (char *) pattern; 6611 xcb_parts[4].iov_len = pattern_len * sizeof(char); 6612 xcb_parts[5].iov_base = 0; 6613 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6614 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6615 return xcb_ret; 6616 } 6617 6618 6619 /***************************************************************************** 6620 ** 6621 ** int xcb_list_fonts_names_length 6622 ** 6623 ** @param const xcb_list_fonts_reply_t *R 6624 ** @returns int 6625 ** 6626 *****************************************************************************/ 6627 6628 int 6629 xcb_list_fonts_names_length (const xcb_list_fonts_reply_t *R /**< */) 6630 { 6631 return R->names_len; 6632 } 6633 6634 6635 /***************************************************************************** 6636 ** 6637 ** xcb_str_iterator_t xcb_list_fonts_names_iterator 6638 ** 6639 ** @param const xcb_list_fonts_reply_t *R 6640 ** @returns xcb_str_iterator_t 6641 ** 6642 *****************************************************************************/ 6643 6644 xcb_str_iterator_t 6645 xcb_list_fonts_names_iterator (const xcb_list_fonts_reply_t *R /**< */) 6646 { 6647 xcb_str_iterator_t i; 6648 i.data = (xcb_str_t *) (R + 1); 6649 i.rem = R->names_len; 6650 i.index = (char *) i.data - (char *) R; 6651 return i; 6652 } 6653 6654 6655 /***************************************************************************** 6656 ** 6657 ** xcb_list_fonts_reply_t * xcb_list_fonts_reply 6658 ** 6659 ** @param xcb_connection_t *c 6660 ** @param xcb_list_fonts_cookie_t cookie 6661 ** @param xcb_generic_error_t **e 6662 ** @returns xcb_list_fonts_reply_t * 6663 ** 6664 *****************************************************************************/ 6665 6666 xcb_list_fonts_reply_t * 6667 xcb_list_fonts_reply (xcb_connection_t *c /**< */, 6668 xcb_list_fonts_cookie_t cookie /**< */, 6669 xcb_generic_error_t **e /**< */) 6670 { 6671 return (xcb_list_fonts_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6672 } 6673 6674 6675 /***************************************************************************** 6676 ** 6677 ** xcb_list_fonts_with_info_cookie_t xcb_list_fonts_with_info 6678 ** 6679 ** @param xcb_connection_t *c 6680 ** @param uint16_t max_names 6681 ** @param uint16_t pattern_len 6682 ** @param const char *pattern 6683 ** @returns xcb_list_fonts_with_info_cookie_t 6684 ** 6685 *****************************************************************************/ 6686 6687 xcb_list_fonts_with_info_cookie_t 6688 xcb_list_fonts_with_info (xcb_connection_t *c /**< */, 6689 uint16_t max_names /**< */, 6690 uint16_t pattern_len /**< */, 6691 const char *pattern /**< */) 6692 { 6693 static const xcb_protocol_request_t xcb_req = { 6694 /* count */ 4, 6695 /* ext */ 0, 6696 /* opcode */ XCB_LIST_FONTS_WITH_INFO, 6697 /* isvoid */ 0 6698 }; 6699 6700 struct iovec xcb_parts[6]; 6701 xcb_list_fonts_with_info_cookie_t xcb_ret; 6702 xcb_list_fonts_with_info_request_t xcb_out; 6703 6704 xcb_out.pad0 = 0; 6705 xcb_out.max_names = max_names; 6706 xcb_out.pattern_len = pattern_len; 6707 6708 xcb_parts[2].iov_base = (char *) &xcb_out; 6709 xcb_parts[2].iov_len = sizeof(xcb_out); 6710 xcb_parts[3].iov_base = 0; 6711 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6712 xcb_parts[4].iov_base = (char *) pattern; 6713 xcb_parts[4].iov_len = pattern_len * sizeof(char); 6714 xcb_parts[5].iov_base = 0; 6715 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6716 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6717 return xcb_ret; 6718 } 6719 6720 6721 /***************************************************************************** 6722 ** 6723 ** xcb_list_fonts_with_info_cookie_t xcb_list_fonts_with_info_unchecked 6724 ** 6725 ** @param xcb_connection_t *c 6726 ** @param uint16_t max_names 6727 ** @param uint16_t pattern_len 6728 ** @param const char *pattern 6729 ** @returns xcb_list_fonts_with_info_cookie_t 6730 ** 6731 *****************************************************************************/ 6732 6733 xcb_list_fonts_with_info_cookie_t 6734 xcb_list_fonts_with_info_unchecked (xcb_connection_t *c /**< */, 6735 uint16_t max_names /**< */, 6736 uint16_t pattern_len /**< */, 6737 const char *pattern /**< */) 6738 { 6739 static const xcb_protocol_request_t xcb_req = { 6740 /* count */ 4, 6741 /* ext */ 0, 6742 /* opcode */ XCB_LIST_FONTS_WITH_INFO, 6743 /* isvoid */ 0 6744 }; 6745 6746 struct iovec xcb_parts[6]; 6747 xcb_list_fonts_with_info_cookie_t xcb_ret; 6748 xcb_list_fonts_with_info_request_t xcb_out; 6749 6750 xcb_out.pad0 = 0; 6751 xcb_out.max_names = max_names; 6752 xcb_out.pattern_len = pattern_len; 6753 6754 xcb_parts[2].iov_base = (char *) &xcb_out; 6755 xcb_parts[2].iov_len = sizeof(xcb_out); 6756 xcb_parts[3].iov_base = 0; 6757 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6758 xcb_parts[4].iov_base = (char *) pattern; 6759 xcb_parts[4].iov_len = pattern_len * sizeof(char); 6760 xcb_parts[5].iov_base = 0; 6761 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6762 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6763 return xcb_ret; 6764 } 6765 6766 6767 /***************************************************************************** 6768 ** 6769 ** xcb_fontprop_t * xcb_list_fonts_with_info_properties 6770 ** 6771 ** @param const xcb_list_fonts_with_info_reply_t *R 6772 ** @returns xcb_fontprop_t * 6773 ** 6774 *****************************************************************************/ 6775 6776 xcb_fontprop_t * 6777 xcb_list_fonts_with_info_properties (const xcb_list_fonts_with_info_reply_t *R /**< */) 6778 { 6779 return (xcb_fontprop_t *) (R + 1); 6780 } 6781 6782 6783 /***************************************************************************** 6784 ** 6785 ** int xcb_list_fonts_with_info_properties_length 6786 ** 6787 ** @param const xcb_list_fonts_with_info_reply_t *R 6788 ** @returns int 6789 ** 6790 *****************************************************************************/ 6791 6792 int 6793 xcb_list_fonts_with_info_properties_length (const xcb_list_fonts_with_info_reply_t *R /**< */) 6794 { 6795 return R->properties_len; 6796 } 6797 6798 6799 /***************************************************************************** 6800 ** 6801 ** xcb_fontprop_iterator_t xcb_list_fonts_with_info_properties_iterator 6802 ** 6803 ** @param const xcb_list_fonts_with_info_reply_t *R 6804 ** @returns xcb_fontprop_iterator_t 6805 ** 6806 *****************************************************************************/ 6807 6808 xcb_fontprop_iterator_t 6809 xcb_list_fonts_with_info_properties_iterator (const xcb_list_fonts_with_info_reply_t *R /**< */) 6810 { 6811 xcb_fontprop_iterator_t i; 6812 i.data = (xcb_fontprop_t *) (R + 1); 6813 i.rem = R->properties_len; 6814 i.index = (char *) i.data - (char *) R; 6815 return i; 6816 } 6817 6818 6819 /***************************************************************************** 6820 ** 6821 ** char * xcb_list_fonts_with_info_name 6822 ** 6823 ** @param const xcb_list_fonts_with_info_reply_t *R 6824 ** @returns char * 6825 ** 6826 *****************************************************************************/ 6827 6828 char * 6829 xcb_list_fonts_with_info_name (const xcb_list_fonts_with_info_reply_t *R /**< */) 6830 { 6831 xcb_generic_iterator_t prev = xcb_fontprop_end(xcb_list_fonts_with_info_properties_iterator(R)); 6832 return (char *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); 6833 } 6834 6835 6836 /***************************************************************************** 6837 ** 6838 ** int xcb_list_fonts_with_info_name_length 6839 ** 6840 ** @param const xcb_list_fonts_with_info_reply_t *R 6841 ** @returns int 6842 ** 6843 *****************************************************************************/ 6844 6845 int 6846 xcb_list_fonts_with_info_name_length (const xcb_list_fonts_with_info_reply_t *R /**< */) 6847 { 6848 return R->name_len; 6849 } 6850 6851 6852 /***************************************************************************** 6853 ** 6854 ** xcb_generic_iterator_t xcb_list_fonts_with_info_name_end 6855 ** 6856 ** @param const xcb_list_fonts_with_info_reply_t *R 6857 ** @returns xcb_generic_iterator_t 6858 ** 6859 *****************************************************************************/ 6860 6861 xcb_generic_iterator_t 6862 xcb_list_fonts_with_info_name_end (const xcb_list_fonts_with_info_reply_t *R /**< */) 6863 { 6864 xcb_generic_iterator_t i; 6865 xcb_generic_iterator_t child = xcb_fontprop_end(xcb_list_fonts_with_info_properties_iterator(R)); 6866 i.data = ((char *) child.data) + (R->name_len); 6867 i.rem = 0; 6868 i.index = (char *) i.data - (char *) R; 6869 return i; 6870 } 6871 6872 6873 /***************************************************************************** 6874 ** 6875 ** xcb_list_fonts_with_info_reply_t * xcb_list_fonts_with_info_reply 6876 ** 6877 ** @param xcb_connection_t *c 6878 ** @param xcb_list_fonts_with_info_cookie_t cookie 6879 ** @param xcb_generic_error_t **e 6880 ** @returns xcb_list_fonts_with_info_reply_t * 6881 ** 6882 *****************************************************************************/ 6883 6884 xcb_list_fonts_with_info_reply_t * 6885 xcb_list_fonts_with_info_reply (xcb_connection_t *c /**< */, 6886 xcb_list_fonts_with_info_cookie_t cookie /**< */, 6887 xcb_generic_error_t **e /**< */) 6888 { 6889 return (xcb_list_fonts_with_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6890 } 6891 6892 6893 /***************************************************************************** 6894 ** 6895 ** xcb_void_cookie_t xcb_set_font_path_checked 6896 ** 6897 ** @param xcb_connection_t *c 6898 ** @param uint16_t font_qty 6899 ** @param uint32_t path_len 6900 ** @param const char *path 6901 ** @returns xcb_void_cookie_t 6902 ** 6903 *****************************************************************************/ 6904 6905 xcb_void_cookie_t 6906 xcb_set_font_path_checked (xcb_connection_t *c /**< */, 6907 uint16_t font_qty /**< */, 6908 uint32_t path_len /**< */, 6909 const char *path /**< */) 6910 { 6911 static const xcb_protocol_request_t xcb_req = { 6912 /* count */ 4, 6913 /* ext */ 0, 6914 /* opcode */ XCB_SET_FONT_PATH, 6915 /* isvoid */ 1 6916 }; 6917 6918 struct iovec xcb_parts[6]; 6919 xcb_void_cookie_t xcb_ret; 6920 xcb_set_font_path_request_t xcb_out; 6921 6922 xcb_out.pad0 = 0; 6923 xcb_out.font_qty = font_qty; 6924 6925 xcb_parts[2].iov_base = (char *) &xcb_out; 6926 xcb_parts[2].iov_len = sizeof(xcb_out); 6927 xcb_parts[3].iov_base = 0; 6928 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6929 xcb_parts[4].iov_base = (char *) path; 6930 xcb_parts[4].iov_len = path_len * sizeof(char); 6931 xcb_parts[5].iov_base = 0; 6932 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6933 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6934 return xcb_ret; 6935 } 6936 6937 6938 /***************************************************************************** 6939 ** 6940 ** xcb_void_cookie_t xcb_set_font_path 6941 ** 6942 ** @param xcb_connection_t *c 6943 ** @param uint16_t font_qty 6944 ** @param uint32_t path_len 6945 ** @param const char *path 6946 ** @returns xcb_void_cookie_t 6947 ** 6948 *****************************************************************************/ 6949 6950 xcb_void_cookie_t 6951 xcb_set_font_path (xcb_connection_t *c /**< */, 6952 uint16_t font_qty /**< */, 6953 uint32_t path_len /**< */, 6954 const char *path /**< */) 6955 { 6956 static const xcb_protocol_request_t xcb_req = { 6957 /* count */ 4, 6958 /* ext */ 0, 6959 /* opcode */ XCB_SET_FONT_PATH, 6960 /* isvoid */ 1 6961 }; 6962 6963 struct iovec xcb_parts[6]; 6964 xcb_void_cookie_t xcb_ret; 6965 xcb_set_font_path_request_t xcb_out; 6966 6967 xcb_out.pad0 = 0; 6968 xcb_out.font_qty = font_qty; 6969 6970 xcb_parts[2].iov_base = (char *) &xcb_out; 6971 xcb_parts[2].iov_len = sizeof(xcb_out); 6972 xcb_parts[3].iov_base = 0; 6973 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6974 xcb_parts[4].iov_base = (char *) path; 6975 xcb_parts[4].iov_len = path_len * sizeof(char); 6976 xcb_parts[5].iov_base = 0; 6977 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 6978 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6979 return xcb_ret; 6980 } 6981 6982 6983 /***************************************************************************** 6984 ** 6985 ** xcb_get_font_path_cookie_t xcb_get_font_path 6986 ** 6987 ** @param xcb_connection_t *c 6988 ** @returns xcb_get_font_path_cookie_t 6989 ** 6990 *****************************************************************************/ 6991 6992 xcb_get_font_path_cookie_t 6993 xcb_get_font_path (xcb_connection_t *c /**< */) 6994 { 6995 static const xcb_protocol_request_t xcb_req = { 6996 /* count */ 2, 6997 /* ext */ 0, 6998 /* opcode */ XCB_GET_FONT_PATH, 6999 /* isvoid */ 0 7000 }; 7001 7002 struct iovec xcb_parts[4]; 7003 xcb_get_font_path_cookie_t xcb_ret; 7004 xcb_get_font_path_request_t xcb_out; 7005 7006 xcb_out.pad0 = 0; 7007 7008 xcb_parts[2].iov_base = (char *) &xcb_out; 7009 xcb_parts[2].iov_len = sizeof(xcb_out); 7010 xcb_parts[3].iov_base = 0; 7011 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7012 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7013 return xcb_ret; 7014 } 7015 7016 7017 /***************************************************************************** 7018 ** 7019 ** xcb_get_font_path_cookie_t xcb_get_font_path_unchecked 7020 ** 7021 ** @param xcb_connection_t *c 7022 ** @returns xcb_get_font_path_cookie_t 7023 ** 7024 *****************************************************************************/ 7025 7026 xcb_get_font_path_cookie_t 7027 xcb_get_font_path_unchecked (xcb_connection_t *c /**< */) 7028 { 7029 static const xcb_protocol_request_t xcb_req = { 7030 /* count */ 2, 7031 /* ext */ 0, 7032 /* opcode */ XCB_GET_FONT_PATH, 7033 /* isvoid */ 0 7034 }; 7035 7036 struct iovec xcb_parts[4]; 7037 xcb_get_font_path_cookie_t xcb_ret; 7038 xcb_get_font_path_request_t xcb_out; 7039 7040 xcb_out.pad0 = 0; 7041 7042 xcb_parts[2].iov_base = (char *) &xcb_out; 7043 xcb_parts[2].iov_len = sizeof(xcb_out); 7044 xcb_parts[3].iov_base = 0; 7045 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7046 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7047 return xcb_ret; 7048 } 7049 7050 7051 /***************************************************************************** 7052 ** 7053 ** int xcb_get_font_path_path_length 7054 ** 7055 ** @param const xcb_get_font_path_reply_t *R 7056 ** @returns int 7057 ** 7058 *****************************************************************************/ 7059 7060 int 7061 xcb_get_font_path_path_length (const xcb_get_font_path_reply_t *R /**< */) 7062 { 7063 return R->path_len; 7064 } 7065 7066 7067 /***************************************************************************** 7068 ** 7069 ** xcb_str_iterator_t xcb_get_font_path_path_iterator 7070 ** 7071 ** @param const xcb_get_font_path_reply_t *R 7072 ** @returns xcb_str_iterator_t 7073 ** 7074 *****************************************************************************/ 7075 7076 xcb_str_iterator_t 7077 xcb_get_font_path_path_iterator (const xcb_get_font_path_reply_t *R /**< */) 7078 { 7079 xcb_str_iterator_t i; 7080 i.data = (xcb_str_t *) (R + 1); 7081 i.rem = R->path_len; 7082 i.index = (char *) i.data - (char *) R; 7083 return i; 7084 } 7085 7086 7087 /***************************************************************************** 7088 ** 7089 ** xcb_get_font_path_reply_t * xcb_get_font_path_reply 7090 ** 7091 ** @param xcb_connection_t *c 7092 ** @param xcb_get_font_path_cookie_t cookie 7093 ** @param xcb_generic_error_t **e 7094 ** @returns xcb_get_font_path_reply_t * 7095 ** 7096 *****************************************************************************/ 7097 7098 xcb_get_font_path_reply_t * 7099 xcb_get_font_path_reply (xcb_connection_t *c /**< */, 7100 xcb_get_font_path_cookie_t cookie /**< */, 7101 xcb_generic_error_t **e /**< */) 7102 { 7103 return (xcb_get_font_path_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7104 } 7105 7106 7107 /***************************************************************************** 7108 ** 7109 ** xcb_void_cookie_t xcb_create_pixmap_checked 7110 ** 7111 ** @param xcb_connection_t *c 7112 ** @param uint8_t depth 7113 ** @param xcb_pixmap_t pid 7114 ** @param xcb_drawable_t drawable 7115 ** @param uint16_t width 7116 ** @param uint16_t height 7117 ** @returns xcb_void_cookie_t 7118 ** 7119 *****************************************************************************/ 7120 7121 xcb_void_cookie_t 7122 xcb_create_pixmap_checked (xcb_connection_t *c /**< */, 7123 uint8_t depth /**< */, 7124 xcb_pixmap_t pid /**< */, 7125 xcb_drawable_t drawable /**< */, 7126 uint16_t width /**< */, 7127 uint16_t height /**< */) 7128 { 7129 static const xcb_protocol_request_t xcb_req = { 7130 /* count */ 2, 7131 /* ext */ 0, 7132 /* opcode */ XCB_CREATE_PIXMAP, 7133 /* isvoid */ 1 7134 }; 7135 7136 struct iovec xcb_parts[4]; 7137 xcb_void_cookie_t xcb_ret; 7138 xcb_create_pixmap_request_t xcb_out; 7139 7140 xcb_out.depth = depth; 7141 xcb_out.pid = pid; 7142 xcb_out.drawable = drawable; 7143 xcb_out.width = width; 7144 xcb_out.height = height; 7145 7146 xcb_parts[2].iov_base = (char *) &xcb_out; 7147 xcb_parts[2].iov_len = sizeof(xcb_out); 7148 xcb_parts[3].iov_base = 0; 7149 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7150 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7151 return xcb_ret; 7152 } 7153 7154 7155 /***************************************************************************** 7156 ** 7157 ** xcb_void_cookie_t xcb_create_pixmap 7158 ** 7159 ** @param xcb_connection_t *c 7160 ** @param uint8_t depth 7161 ** @param xcb_pixmap_t pid 7162 ** @param xcb_drawable_t drawable 7163 ** @param uint16_t width 7164 ** @param uint16_t height 7165 ** @returns xcb_void_cookie_t 7166 ** 7167 *****************************************************************************/ 7168 7169 xcb_void_cookie_t 7170 xcb_create_pixmap (xcb_connection_t *c /**< */, 7171 uint8_t depth /**< */, 7172 xcb_pixmap_t pid /**< */, 7173 xcb_drawable_t drawable /**< */, 7174 uint16_t width /**< */, 7175 uint16_t height /**< */) 7176 { 7177 static const xcb_protocol_request_t xcb_req = { 7178 /* count */ 2, 7179 /* ext */ 0, 7180 /* opcode */ XCB_CREATE_PIXMAP, 7181 /* isvoid */ 1 7182 }; 7183 7184 struct iovec xcb_parts[4]; 7185 xcb_void_cookie_t xcb_ret; 7186 xcb_create_pixmap_request_t xcb_out; 7187 7188 xcb_out.depth = depth; 7189 xcb_out.pid = pid; 7190 xcb_out.drawable = drawable; 7191 xcb_out.width = width; 7192 xcb_out.height = height; 7193 7194 xcb_parts[2].iov_base = (char *) &xcb_out; 7195 xcb_parts[2].iov_len = sizeof(xcb_out); 7196 xcb_parts[3].iov_base = 0; 7197 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7198 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7199 return xcb_ret; 7200 } 7201 7202 7203 /***************************************************************************** 7204 ** 7205 ** xcb_void_cookie_t xcb_free_pixmap_checked 7206 ** 7207 ** @param xcb_connection_t *c 7208 ** @param xcb_pixmap_t pixmap 7209 ** @returns xcb_void_cookie_t 7210 ** 7211 *****************************************************************************/ 7212 7213 xcb_void_cookie_t 7214 xcb_free_pixmap_checked (xcb_connection_t *c /**< */, 7215 xcb_pixmap_t pixmap /**< */) 7216 { 7217 static const xcb_protocol_request_t xcb_req = { 7218 /* count */ 2, 7219 /* ext */ 0, 7220 /* opcode */ XCB_FREE_PIXMAP, 7221 /* isvoid */ 1 7222 }; 7223 7224 struct iovec xcb_parts[4]; 7225 xcb_void_cookie_t xcb_ret; 7226 xcb_free_pixmap_request_t xcb_out; 7227 7228 xcb_out.pad0 = 0; 7229 xcb_out.pixmap = pixmap; 7230 7231 xcb_parts[2].iov_base = (char *) &xcb_out; 7232 xcb_parts[2].iov_len = sizeof(xcb_out); 7233 xcb_parts[3].iov_base = 0; 7234 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7235 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7236 return xcb_ret; 7237 } 7238 7239 7240 /***************************************************************************** 7241 ** 7242 ** xcb_void_cookie_t xcb_free_pixmap 7243 ** 7244 ** @param xcb_connection_t *c 7245 ** @param xcb_pixmap_t pixmap 7246 ** @returns xcb_void_cookie_t 7247 ** 7248 *****************************************************************************/ 7249 7250 xcb_void_cookie_t 7251 xcb_free_pixmap (xcb_connection_t *c /**< */, 7252 xcb_pixmap_t pixmap /**< */) 7253 { 7254 static const xcb_protocol_request_t xcb_req = { 7255 /* count */ 2, 7256 /* ext */ 0, 7257 /* opcode */ XCB_FREE_PIXMAP, 7258 /* isvoid */ 1 7259 }; 7260 7261 struct iovec xcb_parts[4]; 7262 xcb_void_cookie_t xcb_ret; 7263 xcb_free_pixmap_request_t xcb_out; 7264 7265 xcb_out.pad0 = 0; 7266 xcb_out.pixmap = pixmap; 7267 7268 xcb_parts[2].iov_base = (char *) &xcb_out; 7269 xcb_parts[2].iov_len = sizeof(xcb_out); 7270 xcb_parts[3].iov_base = 0; 7271 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7272 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7273 return xcb_ret; 7274 } 7275 7276 7277 /***************************************************************************** 7278 ** 7279 ** xcb_void_cookie_t xcb_create_gc_checked 7280 ** 7281 ** @param xcb_connection_t *c 7282 ** @param xcb_gcontext_t cid 7283 ** @param xcb_drawable_t drawable 7284 ** @param uint32_t value_mask 7285 ** @param const uint32_t *value_list 7286 ** @returns xcb_void_cookie_t 7287 ** 7288 *****************************************************************************/ 7289 7290 xcb_void_cookie_t 7291 xcb_create_gc_checked (xcb_connection_t *c /**< */, 7292 xcb_gcontext_t cid /**< */, 7293 xcb_drawable_t drawable /**< */, 7294 uint32_t value_mask /**< */, 7295 const uint32_t *value_list /**< */) 7296 { 7297 static const xcb_protocol_request_t xcb_req = { 7298 /* count */ 4, 7299 /* ext */ 0, 7300 /* opcode */ XCB_CREATE_GC, 7301 /* isvoid */ 1 7302 }; 7303 7304 struct iovec xcb_parts[6]; 7305 xcb_void_cookie_t xcb_ret; 7306 xcb_create_gc_request_t xcb_out; 7307 7308 xcb_out.pad0 = 0; 7309 xcb_out.cid = cid; 7310 xcb_out.drawable = drawable; 7311 xcb_out.value_mask = value_mask; 7312 7313 xcb_parts[2].iov_base = (char *) &xcb_out; 7314 xcb_parts[2].iov_len = sizeof(xcb_out); 7315 xcb_parts[3].iov_base = 0; 7316 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7317 xcb_parts[4].iov_base = (char *) value_list; 7318 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 7319 xcb_parts[5].iov_base = 0; 7320 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7321 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7322 return xcb_ret; 7323 } 7324 7325 7326 /***************************************************************************** 7327 ** 7328 ** xcb_void_cookie_t xcb_create_gc 7329 ** 7330 ** @param xcb_connection_t *c 7331 ** @param xcb_gcontext_t cid 7332 ** @param xcb_drawable_t drawable 7333 ** @param uint32_t value_mask 7334 ** @param const uint32_t *value_list 7335 ** @returns xcb_void_cookie_t 7336 ** 7337 *****************************************************************************/ 7338 7339 xcb_void_cookie_t 7340 xcb_create_gc (xcb_connection_t *c /**< */, 7341 xcb_gcontext_t cid /**< */, 7342 xcb_drawable_t drawable /**< */, 7343 uint32_t value_mask /**< */, 7344 const uint32_t *value_list /**< */) 7345 { 7346 static const xcb_protocol_request_t xcb_req = { 7347 /* count */ 4, 7348 /* ext */ 0, 7349 /* opcode */ XCB_CREATE_GC, 7350 /* isvoid */ 1 7351 }; 7352 7353 struct iovec xcb_parts[6]; 7354 xcb_void_cookie_t xcb_ret; 7355 xcb_create_gc_request_t xcb_out; 7356 7357 xcb_out.pad0 = 0; 7358 xcb_out.cid = cid; 7359 xcb_out.drawable = drawable; 7360 xcb_out.value_mask = value_mask; 7361 7362 xcb_parts[2].iov_base = (char *) &xcb_out; 7363 xcb_parts[2].iov_len = sizeof(xcb_out); 7364 xcb_parts[3].iov_base = 0; 7365 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7366 xcb_parts[4].iov_base = (char *) value_list; 7367 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 7368 xcb_parts[5].iov_base = 0; 7369 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7370 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7371 return xcb_ret; 7372 } 7373 7374 7375 /***************************************************************************** 7376 ** 7377 ** xcb_void_cookie_t xcb_change_gc_checked 7378 ** 7379 ** @param xcb_connection_t *c 7380 ** @param xcb_gcontext_t gc 7381 ** @param uint32_t value_mask 7382 ** @param const uint32_t *value_list 7383 ** @returns xcb_void_cookie_t 7384 ** 7385 *****************************************************************************/ 7386 7387 xcb_void_cookie_t 7388 xcb_change_gc_checked (xcb_connection_t *c /**< */, 7389 xcb_gcontext_t gc /**< */, 7390 uint32_t value_mask /**< */, 7391 const uint32_t *value_list /**< */) 7392 { 7393 static const xcb_protocol_request_t xcb_req = { 7394 /* count */ 4, 7395 /* ext */ 0, 7396 /* opcode */ XCB_CHANGE_GC, 7397 /* isvoid */ 1 7398 }; 7399 7400 struct iovec xcb_parts[6]; 7401 xcb_void_cookie_t xcb_ret; 7402 xcb_change_gc_request_t xcb_out; 7403 7404 xcb_out.pad0 = 0; 7405 xcb_out.gc = gc; 7406 xcb_out.value_mask = value_mask; 7407 7408 xcb_parts[2].iov_base = (char *) &xcb_out; 7409 xcb_parts[2].iov_len = sizeof(xcb_out); 7410 xcb_parts[3].iov_base = 0; 7411 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7412 xcb_parts[4].iov_base = (char *) value_list; 7413 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 7414 xcb_parts[5].iov_base = 0; 7415 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7416 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7417 return xcb_ret; 7418 } 7419 7420 7421 /***************************************************************************** 7422 ** 7423 ** xcb_void_cookie_t xcb_change_gc 7424 ** 7425 ** @param xcb_connection_t *c 7426 ** @param xcb_gcontext_t gc 7427 ** @param uint32_t value_mask 7428 ** @param const uint32_t *value_list 7429 ** @returns xcb_void_cookie_t 7430 ** 7431 *****************************************************************************/ 7432 7433 xcb_void_cookie_t 7434 xcb_change_gc (xcb_connection_t *c /**< */, 7435 xcb_gcontext_t gc /**< */, 7436 uint32_t value_mask /**< */, 7437 const uint32_t *value_list /**< */) 7438 { 7439 static const xcb_protocol_request_t xcb_req = { 7440 /* count */ 4, 7441 /* ext */ 0, 7442 /* opcode */ XCB_CHANGE_GC, 7443 /* isvoid */ 1 7444 }; 7445 7446 struct iovec xcb_parts[6]; 7447 xcb_void_cookie_t xcb_ret; 7448 xcb_change_gc_request_t xcb_out; 7449 7450 xcb_out.pad0 = 0; 7451 xcb_out.gc = gc; 7452 xcb_out.value_mask = value_mask; 7453 7454 xcb_parts[2].iov_base = (char *) &xcb_out; 7455 xcb_parts[2].iov_len = sizeof(xcb_out); 7456 xcb_parts[3].iov_base = 0; 7457 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7458 xcb_parts[4].iov_base = (char *) value_list; 7459 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 7460 xcb_parts[5].iov_base = 0; 7461 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7462 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7463 return xcb_ret; 7464 } 7465 7466 7467 /***************************************************************************** 7468 ** 7469 ** xcb_void_cookie_t xcb_copy_gc_checked 7470 ** 7471 ** @param xcb_connection_t *c 7472 ** @param xcb_gcontext_t src_gc 7473 ** @param xcb_gcontext_t dst_gc 7474 ** @param uint32_t value_mask 7475 ** @returns xcb_void_cookie_t 7476 ** 7477 *****************************************************************************/ 7478 7479 xcb_void_cookie_t 7480 xcb_copy_gc_checked (xcb_connection_t *c /**< */, 7481 xcb_gcontext_t src_gc /**< */, 7482 xcb_gcontext_t dst_gc /**< */, 7483 uint32_t value_mask /**< */) 7484 { 7485 static const xcb_protocol_request_t xcb_req = { 7486 /* count */ 2, 7487 /* ext */ 0, 7488 /* opcode */ XCB_COPY_GC, 7489 /* isvoid */ 1 7490 }; 7491 7492 struct iovec xcb_parts[4]; 7493 xcb_void_cookie_t xcb_ret; 7494 xcb_copy_gc_request_t xcb_out; 7495 7496 xcb_out.pad0 = 0; 7497 xcb_out.src_gc = src_gc; 7498 xcb_out.dst_gc = dst_gc; 7499 xcb_out.value_mask = value_mask; 7500 7501 xcb_parts[2].iov_base = (char *) &xcb_out; 7502 xcb_parts[2].iov_len = sizeof(xcb_out); 7503 xcb_parts[3].iov_base = 0; 7504 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7505 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7506 return xcb_ret; 7507 } 7508 7509 7510 /***************************************************************************** 7511 ** 7512 ** xcb_void_cookie_t xcb_copy_gc 7513 ** 7514 ** @param xcb_connection_t *c 7515 ** @param xcb_gcontext_t src_gc 7516 ** @param xcb_gcontext_t dst_gc 7517 ** @param uint32_t value_mask 7518 ** @returns xcb_void_cookie_t 7519 ** 7520 *****************************************************************************/ 7521 7522 xcb_void_cookie_t 7523 xcb_copy_gc (xcb_connection_t *c /**< */, 7524 xcb_gcontext_t src_gc /**< */, 7525 xcb_gcontext_t dst_gc /**< */, 7526 uint32_t value_mask /**< */) 7527 { 7528 static const xcb_protocol_request_t xcb_req = { 7529 /* count */ 2, 7530 /* ext */ 0, 7531 /* opcode */ XCB_COPY_GC, 7532 /* isvoid */ 1 7533 }; 7534 7535 struct iovec xcb_parts[4]; 7536 xcb_void_cookie_t xcb_ret; 7537 xcb_copy_gc_request_t xcb_out; 7538 7539 xcb_out.pad0 = 0; 7540 xcb_out.src_gc = src_gc; 7541 xcb_out.dst_gc = dst_gc; 7542 xcb_out.value_mask = value_mask; 7543 7544 xcb_parts[2].iov_base = (char *) &xcb_out; 7545 xcb_parts[2].iov_len = sizeof(xcb_out); 7546 xcb_parts[3].iov_base = 0; 7547 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7548 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7549 return xcb_ret; 7550 } 7551 7552 7553 /***************************************************************************** 7554 ** 7555 ** xcb_void_cookie_t xcb_set_dashes_checked 7556 ** 7557 ** @param xcb_connection_t *c 7558 ** @param xcb_gcontext_t gc 7559 ** @param uint16_t dash_offset 7560 ** @param uint16_t dashes_len 7561 ** @param const uint8_t *dashes 7562 ** @returns xcb_void_cookie_t 7563 ** 7564 *****************************************************************************/ 7565 7566 xcb_void_cookie_t 7567 xcb_set_dashes_checked (xcb_connection_t *c /**< */, 7568 xcb_gcontext_t gc /**< */, 7569 uint16_t dash_offset /**< */, 7570 uint16_t dashes_len /**< */, 7571 const uint8_t *dashes /**< */) 7572 { 7573 static const xcb_protocol_request_t xcb_req = { 7574 /* count */ 4, 7575 /* ext */ 0, 7576 /* opcode */ XCB_SET_DASHES, 7577 /* isvoid */ 1 7578 }; 7579 7580 struct iovec xcb_parts[6]; 7581 xcb_void_cookie_t xcb_ret; 7582 xcb_set_dashes_request_t xcb_out; 7583 7584 xcb_out.pad0 = 0; 7585 xcb_out.gc = gc; 7586 xcb_out.dash_offset = dash_offset; 7587 xcb_out.dashes_len = dashes_len; 7588 7589 xcb_parts[2].iov_base = (char *) &xcb_out; 7590 xcb_parts[2].iov_len = sizeof(xcb_out); 7591 xcb_parts[3].iov_base = 0; 7592 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7593 xcb_parts[4].iov_base = (char *) dashes; 7594 xcb_parts[4].iov_len = dashes_len * sizeof(uint8_t); 7595 xcb_parts[5].iov_base = 0; 7596 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7597 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7598 return xcb_ret; 7599 } 7600 7601 7602 /***************************************************************************** 7603 ** 7604 ** xcb_void_cookie_t xcb_set_dashes 7605 ** 7606 ** @param xcb_connection_t *c 7607 ** @param xcb_gcontext_t gc 7608 ** @param uint16_t dash_offset 7609 ** @param uint16_t dashes_len 7610 ** @param const uint8_t *dashes 7611 ** @returns xcb_void_cookie_t 7612 ** 7613 *****************************************************************************/ 7614 7615 xcb_void_cookie_t 7616 xcb_set_dashes (xcb_connection_t *c /**< */, 7617 xcb_gcontext_t gc /**< */, 7618 uint16_t dash_offset /**< */, 7619 uint16_t dashes_len /**< */, 7620 const uint8_t *dashes /**< */) 7621 { 7622 static const xcb_protocol_request_t xcb_req = { 7623 /* count */ 4, 7624 /* ext */ 0, 7625 /* opcode */ XCB_SET_DASHES, 7626 /* isvoid */ 1 7627 }; 7628 7629 struct iovec xcb_parts[6]; 7630 xcb_void_cookie_t xcb_ret; 7631 xcb_set_dashes_request_t xcb_out; 7632 7633 xcb_out.pad0 = 0; 7634 xcb_out.gc = gc; 7635 xcb_out.dash_offset = dash_offset; 7636 xcb_out.dashes_len = dashes_len; 7637 7638 xcb_parts[2].iov_base = (char *) &xcb_out; 7639 xcb_parts[2].iov_len = sizeof(xcb_out); 7640 xcb_parts[3].iov_base = 0; 7641 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7642 xcb_parts[4].iov_base = (char *) dashes; 7643 xcb_parts[4].iov_len = dashes_len * sizeof(uint8_t); 7644 xcb_parts[5].iov_base = 0; 7645 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7646 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7647 return xcb_ret; 7648 } 7649 7650 7651 /***************************************************************************** 7652 ** 7653 ** xcb_void_cookie_t xcb_set_clip_rectangles_checked 7654 ** 7655 ** @param xcb_connection_t *c 7656 ** @param uint8_t ordering 7657 ** @param xcb_gcontext_t gc 7658 ** @param int16_t clip_x_origin 7659 ** @param int16_t clip_y_origin 7660 ** @param uint32_t rectangles_len 7661 ** @param const xcb_rectangle_t *rectangles 7662 ** @returns xcb_void_cookie_t 7663 ** 7664 *****************************************************************************/ 7665 7666 xcb_void_cookie_t 7667 xcb_set_clip_rectangles_checked (xcb_connection_t *c /**< */, 7668 uint8_t ordering /**< */, 7669 xcb_gcontext_t gc /**< */, 7670 int16_t clip_x_origin /**< */, 7671 int16_t clip_y_origin /**< */, 7672 uint32_t rectangles_len /**< */, 7673 const xcb_rectangle_t *rectangles /**< */) 7674 { 7675 static const xcb_protocol_request_t xcb_req = { 7676 /* count */ 4, 7677 /* ext */ 0, 7678 /* opcode */ XCB_SET_CLIP_RECTANGLES, 7679 /* isvoid */ 1 7680 }; 7681 7682 struct iovec xcb_parts[6]; 7683 xcb_void_cookie_t xcb_ret; 7684 xcb_set_clip_rectangles_request_t xcb_out; 7685 7686 xcb_out.ordering = ordering; 7687 xcb_out.gc = gc; 7688 xcb_out.clip_x_origin = clip_x_origin; 7689 xcb_out.clip_y_origin = clip_y_origin; 7690 7691 xcb_parts[2].iov_base = (char *) &xcb_out; 7692 xcb_parts[2].iov_len = sizeof(xcb_out); 7693 xcb_parts[3].iov_base = 0; 7694 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7695 xcb_parts[4].iov_base = (char *) rectangles; 7696 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 7697 xcb_parts[5].iov_base = 0; 7698 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7699 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7700 return xcb_ret; 7701 } 7702 7703 7704 /***************************************************************************** 7705 ** 7706 ** xcb_void_cookie_t xcb_set_clip_rectangles 7707 ** 7708 ** @param xcb_connection_t *c 7709 ** @param uint8_t ordering 7710 ** @param xcb_gcontext_t gc 7711 ** @param int16_t clip_x_origin 7712 ** @param int16_t clip_y_origin 7713 ** @param uint32_t rectangles_len 7714 ** @param const xcb_rectangle_t *rectangles 7715 ** @returns xcb_void_cookie_t 7716 ** 7717 *****************************************************************************/ 7718 7719 xcb_void_cookie_t 7720 xcb_set_clip_rectangles (xcb_connection_t *c /**< */, 7721 uint8_t ordering /**< */, 7722 xcb_gcontext_t gc /**< */, 7723 int16_t clip_x_origin /**< */, 7724 int16_t clip_y_origin /**< */, 7725 uint32_t rectangles_len /**< */, 7726 const xcb_rectangle_t *rectangles /**< */) 7727 { 7728 static const xcb_protocol_request_t xcb_req = { 7729 /* count */ 4, 7730 /* ext */ 0, 7731 /* opcode */ XCB_SET_CLIP_RECTANGLES, 7732 /* isvoid */ 1 7733 }; 7734 7735 struct iovec xcb_parts[6]; 7736 xcb_void_cookie_t xcb_ret; 7737 xcb_set_clip_rectangles_request_t xcb_out; 7738 7739 xcb_out.ordering = ordering; 7740 xcb_out.gc = gc; 7741 xcb_out.clip_x_origin = clip_x_origin; 7742 xcb_out.clip_y_origin = clip_y_origin; 7743 7744 xcb_parts[2].iov_base = (char *) &xcb_out; 7745 xcb_parts[2].iov_len = sizeof(xcb_out); 7746 xcb_parts[3].iov_base = 0; 7747 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7748 xcb_parts[4].iov_base = (char *) rectangles; 7749 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 7750 xcb_parts[5].iov_base = 0; 7751 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7752 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7753 return xcb_ret; 7754 } 7755 7756 7757 /***************************************************************************** 7758 ** 7759 ** xcb_void_cookie_t xcb_free_gc_checked 7760 ** 7761 ** @param xcb_connection_t *c 7762 ** @param xcb_gcontext_t gc 7763 ** @returns xcb_void_cookie_t 7764 ** 7765 *****************************************************************************/ 7766 7767 xcb_void_cookie_t 7768 xcb_free_gc_checked (xcb_connection_t *c /**< */, 7769 xcb_gcontext_t gc /**< */) 7770 { 7771 static const xcb_protocol_request_t xcb_req = { 7772 /* count */ 2, 7773 /* ext */ 0, 7774 /* opcode */ XCB_FREE_GC, 7775 /* isvoid */ 1 7776 }; 7777 7778 struct iovec xcb_parts[4]; 7779 xcb_void_cookie_t xcb_ret; 7780 xcb_free_gc_request_t xcb_out; 7781 7782 xcb_out.pad0 = 0; 7783 xcb_out.gc = gc; 7784 7785 xcb_parts[2].iov_base = (char *) &xcb_out; 7786 xcb_parts[2].iov_len = sizeof(xcb_out); 7787 xcb_parts[3].iov_base = 0; 7788 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7789 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7790 return xcb_ret; 7791 } 7792 7793 7794 /***************************************************************************** 7795 ** 7796 ** xcb_void_cookie_t xcb_free_gc 7797 ** 7798 ** @param xcb_connection_t *c 7799 ** @param xcb_gcontext_t gc 7800 ** @returns xcb_void_cookie_t 7801 ** 7802 *****************************************************************************/ 7803 7804 xcb_void_cookie_t 7805 xcb_free_gc (xcb_connection_t *c /**< */, 7806 xcb_gcontext_t gc /**< */) 7807 { 7808 static const xcb_protocol_request_t xcb_req = { 7809 /* count */ 2, 7810 /* ext */ 0, 7811 /* opcode */ XCB_FREE_GC, 7812 /* isvoid */ 1 7813 }; 7814 7815 struct iovec xcb_parts[4]; 7816 xcb_void_cookie_t xcb_ret; 7817 xcb_free_gc_request_t xcb_out; 7818 7819 xcb_out.pad0 = 0; 7820 xcb_out.gc = gc; 7821 7822 xcb_parts[2].iov_base = (char *) &xcb_out; 7823 xcb_parts[2].iov_len = sizeof(xcb_out); 7824 xcb_parts[3].iov_base = 0; 7825 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7826 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7827 return xcb_ret; 7828 } 7829 7830 7831 /***************************************************************************** 7832 ** 7833 ** xcb_void_cookie_t xcb_clear_area_checked 7834 ** 7835 ** @param xcb_connection_t *c 7836 ** @param uint8_t exposures 7837 ** @param xcb_window_t window 7838 ** @param int16_t x 7839 ** @param int16_t y 7840 ** @param uint16_t width 7841 ** @param uint16_t height 7842 ** @returns xcb_void_cookie_t 7843 ** 7844 *****************************************************************************/ 7845 7846 xcb_void_cookie_t 7847 xcb_clear_area_checked (xcb_connection_t *c /**< */, 7848 uint8_t exposures /**< */, 7849 xcb_window_t window /**< */, 7850 int16_t x /**< */, 7851 int16_t y /**< */, 7852 uint16_t width /**< */, 7853 uint16_t height /**< */) 7854 { 7855 static const xcb_protocol_request_t xcb_req = { 7856 /* count */ 2, 7857 /* ext */ 0, 7858 /* opcode */ XCB_CLEAR_AREA, 7859 /* isvoid */ 1 7860 }; 7861 7862 struct iovec xcb_parts[4]; 7863 xcb_void_cookie_t xcb_ret; 7864 xcb_clear_area_request_t xcb_out; 7865 7866 xcb_out.exposures = exposures; 7867 xcb_out.window = window; 7868 xcb_out.x = x; 7869 xcb_out.y = y; 7870 xcb_out.width = width; 7871 xcb_out.height = height; 7872 7873 xcb_parts[2].iov_base = (char *) &xcb_out; 7874 xcb_parts[2].iov_len = sizeof(xcb_out); 7875 xcb_parts[3].iov_base = 0; 7876 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7877 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7878 return xcb_ret; 7879 } 7880 7881 7882 /***************************************************************************** 7883 ** 7884 ** xcb_void_cookie_t xcb_clear_area 7885 ** 7886 ** @param xcb_connection_t *c 7887 ** @param uint8_t exposures 7888 ** @param xcb_window_t window 7889 ** @param int16_t x 7890 ** @param int16_t y 7891 ** @param uint16_t width 7892 ** @param uint16_t height 7893 ** @returns xcb_void_cookie_t 7894 ** 7895 *****************************************************************************/ 7896 7897 xcb_void_cookie_t 7898 xcb_clear_area (xcb_connection_t *c /**< */, 7899 uint8_t exposures /**< */, 7900 xcb_window_t window /**< */, 7901 int16_t x /**< */, 7902 int16_t y /**< */, 7903 uint16_t width /**< */, 7904 uint16_t height /**< */) 7905 { 7906 static const xcb_protocol_request_t xcb_req = { 7907 /* count */ 2, 7908 /* ext */ 0, 7909 /* opcode */ XCB_CLEAR_AREA, 7910 /* isvoid */ 1 7911 }; 7912 7913 struct iovec xcb_parts[4]; 7914 xcb_void_cookie_t xcb_ret; 7915 xcb_clear_area_request_t xcb_out; 7916 7917 xcb_out.exposures = exposures; 7918 xcb_out.window = window; 7919 xcb_out.x = x; 7920 xcb_out.y = y; 7921 xcb_out.width = width; 7922 xcb_out.height = height; 7923 7924 xcb_parts[2].iov_base = (char *) &xcb_out; 7925 xcb_parts[2].iov_len = sizeof(xcb_out); 7926 xcb_parts[3].iov_base = 0; 7927 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7928 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7929 return xcb_ret; 7930 } 7931 7932 7933 /***************************************************************************** 7934 ** 7935 ** xcb_void_cookie_t xcb_copy_area_checked 7936 ** 7937 ** @param xcb_connection_t *c 7938 ** @param xcb_drawable_t src_drawable 7939 ** @param xcb_drawable_t dst_drawable 7940 ** @param xcb_gcontext_t gc 7941 ** @param int16_t src_x 7942 ** @param int16_t src_y 7943 ** @param int16_t dst_x 7944 ** @param int16_t dst_y 7945 ** @param uint16_t width 7946 ** @param uint16_t height 7947 ** @returns xcb_void_cookie_t 7948 ** 7949 *****************************************************************************/ 7950 7951 xcb_void_cookie_t 7952 xcb_copy_area_checked (xcb_connection_t *c /**< */, 7953 xcb_drawable_t src_drawable /**< */, 7954 xcb_drawable_t dst_drawable /**< */, 7955 xcb_gcontext_t gc /**< */, 7956 int16_t src_x /**< */, 7957 int16_t src_y /**< */, 7958 int16_t dst_x /**< */, 7959 int16_t dst_y /**< */, 7960 uint16_t width /**< */, 7961 uint16_t height /**< */) 7962 { 7963 static const xcb_protocol_request_t xcb_req = { 7964 /* count */ 2, 7965 /* ext */ 0, 7966 /* opcode */ XCB_COPY_AREA, 7967 /* isvoid */ 1 7968 }; 7969 7970 struct iovec xcb_parts[4]; 7971 xcb_void_cookie_t xcb_ret; 7972 xcb_copy_area_request_t xcb_out; 7973 7974 xcb_out.pad0 = 0; 7975 xcb_out.src_drawable = src_drawable; 7976 xcb_out.dst_drawable = dst_drawable; 7977 xcb_out.gc = gc; 7978 xcb_out.src_x = src_x; 7979 xcb_out.src_y = src_y; 7980 xcb_out.dst_x = dst_x; 7981 xcb_out.dst_y = dst_y; 7982 xcb_out.width = width; 7983 xcb_out.height = height; 7984 7985 xcb_parts[2].iov_base = (char *) &xcb_out; 7986 xcb_parts[2].iov_len = sizeof(xcb_out); 7987 xcb_parts[3].iov_base = 0; 7988 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7989 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7990 return xcb_ret; 7991 } 7992 7993 7994 /***************************************************************************** 7995 ** 7996 ** xcb_void_cookie_t xcb_copy_area 7997 ** 7998 ** @param xcb_connection_t *c 7999 ** @param xcb_drawable_t src_drawable 8000 ** @param xcb_drawable_t dst_drawable 8001 ** @param xcb_gcontext_t gc 8002 ** @param int16_t src_x 8003 ** @param int16_t src_y 8004 ** @param int16_t dst_x 8005 ** @param int16_t dst_y 8006 ** @param uint16_t width 8007 ** @param uint16_t height 8008 ** @returns xcb_void_cookie_t 8009 ** 8010 *****************************************************************************/ 8011 8012 xcb_void_cookie_t 8013 xcb_copy_area (xcb_connection_t *c /**< */, 8014 xcb_drawable_t src_drawable /**< */, 8015 xcb_drawable_t dst_drawable /**< */, 8016 xcb_gcontext_t gc /**< */, 8017 int16_t src_x /**< */, 8018 int16_t src_y /**< */, 8019 int16_t dst_x /**< */, 8020 int16_t dst_y /**< */, 8021 uint16_t width /**< */, 8022 uint16_t height /**< */) 8023 { 8024 static const xcb_protocol_request_t xcb_req = { 8025 /* count */ 2, 8026 /* ext */ 0, 8027 /* opcode */ XCB_COPY_AREA, 8028 /* isvoid */ 1 8029 }; 8030 8031 struct iovec xcb_parts[4]; 8032 xcb_void_cookie_t xcb_ret; 8033 xcb_copy_area_request_t xcb_out; 8034 8035 xcb_out.pad0 = 0; 8036 xcb_out.src_drawable = src_drawable; 8037 xcb_out.dst_drawable = dst_drawable; 8038 xcb_out.gc = gc; 8039 xcb_out.src_x = src_x; 8040 xcb_out.src_y = src_y; 8041 xcb_out.dst_x = dst_x; 8042 xcb_out.dst_y = dst_y; 8043 xcb_out.width = width; 8044 xcb_out.height = height; 8045 8046 xcb_parts[2].iov_base = (char *) &xcb_out; 8047 xcb_parts[2].iov_len = sizeof(xcb_out); 8048 xcb_parts[3].iov_base = 0; 8049 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8050 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8051 return xcb_ret; 8052 } 8053 8054 8055 /***************************************************************************** 8056 ** 8057 ** xcb_void_cookie_t xcb_copy_plane_checked 8058 ** 8059 ** @param xcb_connection_t *c 8060 ** @param xcb_drawable_t src_drawable 8061 ** @param xcb_drawable_t dst_drawable 8062 ** @param xcb_gcontext_t gc 8063 ** @param int16_t src_x 8064 ** @param int16_t src_y 8065 ** @param int16_t dst_x 8066 ** @param int16_t dst_y 8067 ** @param uint16_t width 8068 ** @param uint16_t height 8069 ** @param uint32_t bit_plane 8070 ** @returns xcb_void_cookie_t 8071 ** 8072 *****************************************************************************/ 8073 8074 xcb_void_cookie_t 8075 xcb_copy_plane_checked (xcb_connection_t *c /**< */, 8076 xcb_drawable_t src_drawable /**< */, 8077 xcb_drawable_t dst_drawable /**< */, 8078 xcb_gcontext_t gc /**< */, 8079 int16_t src_x /**< */, 8080 int16_t src_y /**< */, 8081 int16_t dst_x /**< */, 8082 int16_t dst_y /**< */, 8083 uint16_t width /**< */, 8084 uint16_t height /**< */, 8085 uint32_t bit_plane /**< */) 8086 { 8087 static const xcb_protocol_request_t xcb_req = { 8088 /* count */ 2, 8089 /* ext */ 0, 8090 /* opcode */ XCB_COPY_PLANE, 8091 /* isvoid */ 1 8092 }; 8093 8094 struct iovec xcb_parts[4]; 8095 xcb_void_cookie_t xcb_ret; 8096 xcb_copy_plane_request_t xcb_out; 8097 8098 xcb_out.pad0 = 0; 8099 xcb_out.src_drawable = src_drawable; 8100 xcb_out.dst_drawable = dst_drawable; 8101 xcb_out.gc = gc; 8102 xcb_out.src_x = src_x; 8103 xcb_out.src_y = src_y; 8104 xcb_out.dst_x = dst_x; 8105 xcb_out.dst_y = dst_y; 8106 xcb_out.width = width; 8107 xcb_out.height = height; 8108 xcb_out.bit_plane = bit_plane; 8109 8110 xcb_parts[2].iov_base = (char *) &xcb_out; 8111 xcb_parts[2].iov_len = sizeof(xcb_out); 8112 xcb_parts[3].iov_base = 0; 8113 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8114 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8115 return xcb_ret; 8116 } 8117 8118 8119 /***************************************************************************** 8120 ** 8121 ** xcb_void_cookie_t xcb_copy_plane 8122 ** 8123 ** @param xcb_connection_t *c 8124 ** @param xcb_drawable_t src_drawable 8125 ** @param xcb_drawable_t dst_drawable 8126 ** @param xcb_gcontext_t gc 8127 ** @param int16_t src_x 8128 ** @param int16_t src_y 8129 ** @param int16_t dst_x 8130 ** @param int16_t dst_y 8131 ** @param uint16_t width 8132 ** @param uint16_t height 8133 ** @param uint32_t bit_plane 8134 ** @returns xcb_void_cookie_t 8135 ** 8136 *****************************************************************************/ 8137 8138 xcb_void_cookie_t 8139 xcb_copy_plane (xcb_connection_t *c /**< */, 8140 xcb_drawable_t src_drawable /**< */, 8141 xcb_drawable_t dst_drawable /**< */, 8142 xcb_gcontext_t gc /**< */, 8143 int16_t src_x /**< */, 8144 int16_t src_y /**< */, 8145 int16_t dst_x /**< */, 8146 int16_t dst_y /**< */, 8147 uint16_t width /**< */, 8148 uint16_t height /**< */, 8149 uint32_t bit_plane /**< */) 8150 { 8151 static const xcb_protocol_request_t xcb_req = { 8152 /* count */ 2, 8153 /* ext */ 0, 8154 /* opcode */ XCB_COPY_PLANE, 8155 /* isvoid */ 1 8156 }; 8157 8158 struct iovec xcb_parts[4]; 8159 xcb_void_cookie_t xcb_ret; 8160 xcb_copy_plane_request_t xcb_out; 8161 8162 xcb_out.pad0 = 0; 8163 xcb_out.src_drawable = src_drawable; 8164 xcb_out.dst_drawable = dst_drawable; 8165 xcb_out.gc = gc; 8166 xcb_out.src_x = src_x; 8167 xcb_out.src_y = src_y; 8168 xcb_out.dst_x = dst_x; 8169 xcb_out.dst_y = dst_y; 8170 xcb_out.width = width; 8171 xcb_out.height = height; 8172 xcb_out.bit_plane = bit_plane; 8173 8174 xcb_parts[2].iov_base = (char *) &xcb_out; 8175 xcb_parts[2].iov_len = sizeof(xcb_out); 8176 xcb_parts[3].iov_base = 0; 8177 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8178 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8179 return xcb_ret; 8180 } 8181 8182 8183 /***************************************************************************** 8184 ** 8185 ** xcb_void_cookie_t xcb_poly_point_checked 8186 ** 8187 ** @param xcb_connection_t *c 8188 ** @param uint8_t coordinate_mode 8189 ** @param xcb_drawable_t drawable 8190 ** @param xcb_gcontext_t gc 8191 ** @param uint32_t points_len 8192 ** @param const xcb_point_t *points 8193 ** @returns xcb_void_cookie_t 8194 ** 8195 *****************************************************************************/ 8196 8197 xcb_void_cookie_t 8198 xcb_poly_point_checked (xcb_connection_t *c /**< */, 8199 uint8_t coordinate_mode /**< */, 8200 xcb_drawable_t drawable /**< */, 8201 xcb_gcontext_t gc /**< */, 8202 uint32_t points_len /**< */, 8203 const xcb_point_t *points /**< */) 8204 { 8205 static const xcb_protocol_request_t xcb_req = { 8206 /* count */ 4, 8207 /* ext */ 0, 8208 /* opcode */ XCB_POLY_POINT, 8209 /* isvoid */ 1 8210 }; 8211 8212 struct iovec xcb_parts[6]; 8213 xcb_void_cookie_t xcb_ret; 8214 xcb_poly_point_request_t xcb_out; 8215 8216 xcb_out.coordinate_mode = coordinate_mode; 8217 xcb_out.drawable = drawable; 8218 xcb_out.gc = gc; 8219 8220 xcb_parts[2].iov_base = (char *) &xcb_out; 8221 xcb_parts[2].iov_len = sizeof(xcb_out); 8222 xcb_parts[3].iov_base = 0; 8223 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8224 xcb_parts[4].iov_base = (char *) points; 8225 xcb_parts[4].iov_len = points_len * sizeof(xcb_point_t); 8226 xcb_parts[5].iov_base = 0; 8227 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8228 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8229 return xcb_ret; 8230 } 8231 8232 8233 /***************************************************************************** 8234 ** 8235 ** xcb_void_cookie_t xcb_poly_point 8236 ** 8237 ** @param xcb_connection_t *c 8238 ** @param uint8_t coordinate_mode 8239 ** @param xcb_drawable_t drawable 8240 ** @param xcb_gcontext_t gc 8241 ** @param uint32_t points_len 8242 ** @param const xcb_point_t *points 8243 ** @returns xcb_void_cookie_t 8244 ** 8245 *****************************************************************************/ 8246 8247 xcb_void_cookie_t 8248 xcb_poly_point (xcb_connection_t *c /**< */, 8249 uint8_t coordinate_mode /**< */, 8250 xcb_drawable_t drawable /**< */, 8251 xcb_gcontext_t gc /**< */, 8252 uint32_t points_len /**< */, 8253 const xcb_point_t *points /**< */) 8254 { 8255 static const xcb_protocol_request_t xcb_req = { 8256 /* count */ 4, 8257 /* ext */ 0, 8258 /* opcode */ XCB_POLY_POINT, 8259 /* isvoid */ 1 8260 }; 8261 8262 struct iovec xcb_parts[6]; 8263 xcb_void_cookie_t xcb_ret; 8264 xcb_poly_point_request_t xcb_out; 8265 8266 xcb_out.coordinate_mode = coordinate_mode; 8267 xcb_out.drawable = drawable; 8268 xcb_out.gc = gc; 8269 8270 xcb_parts[2].iov_base = (char *) &xcb_out; 8271 xcb_parts[2].iov_len = sizeof(xcb_out); 8272 xcb_parts[3].iov_base = 0; 8273 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8274 xcb_parts[4].iov_base = (char *) points; 8275 xcb_parts[4].iov_len = points_len * sizeof(xcb_point_t); 8276 xcb_parts[5].iov_base = 0; 8277 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8278 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8279 return xcb_ret; 8280 } 8281 8282 8283 /***************************************************************************** 8284 ** 8285 ** xcb_void_cookie_t xcb_poly_line_checked 8286 ** 8287 ** @param xcb_connection_t *c 8288 ** @param uint8_t coordinate_mode 8289 ** @param xcb_drawable_t drawable 8290 ** @param xcb_gcontext_t gc 8291 ** @param uint32_t points_len 8292 ** @param const xcb_point_t *points 8293 ** @returns xcb_void_cookie_t 8294 ** 8295 *****************************************************************************/ 8296 8297 xcb_void_cookie_t 8298 xcb_poly_line_checked (xcb_connection_t *c /**< */, 8299 uint8_t coordinate_mode /**< */, 8300 xcb_drawable_t drawable /**< */, 8301 xcb_gcontext_t gc /**< */, 8302 uint32_t points_len /**< */, 8303 const xcb_point_t *points /**< */) 8304 { 8305 static const xcb_protocol_request_t xcb_req = { 8306 /* count */ 4, 8307 /* ext */ 0, 8308 /* opcode */ XCB_POLY_LINE, 8309 /* isvoid */ 1 8310 }; 8311 8312 struct iovec xcb_parts[6]; 8313 xcb_void_cookie_t xcb_ret; 8314 xcb_poly_line_request_t xcb_out; 8315 8316 xcb_out.coordinate_mode = coordinate_mode; 8317 xcb_out.drawable = drawable; 8318 xcb_out.gc = gc; 8319 8320 xcb_parts[2].iov_base = (char *) &xcb_out; 8321 xcb_parts[2].iov_len = sizeof(xcb_out); 8322 xcb_parts[3].iov_base = 0; 8323 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8324 xcb_parts[4].iov_base = (char *) points; 8325 xcb_parts[4].iov_len = points_len * sizeof(xcb_point_t); 8326 xcb_parts[5].iov_base = 0; 8327 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8328 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8329 return xcb_ret; 8330 } 8331 8332 8333 /***************************************************************************** 8334 ** 8335 ** xcb_void_cookie_t xcb_poly_line 8336 ** 8337 ** @param xcb_connection_t *c 8338 ** @param uint8_t coordinate_mode 8339 ** @param xcb_drawable_t drawable 8340 ** @param xcb_gcontext_t gc 8341 ** @param uint32_t points_len 8342 ** @param const xcb_point_t *points 8343 ** @returns xcb_void_cookie_t 8344 ** 8345 *****************************************************************************/ 8346 8347 xcb_void_cookie_t 8348 xcb_poly_line (xcb_connection_t *c /**< */, 8349 uint8_t coordinate_mode /**< */, 8350 xcb_drawable_t drawable /**< */, 8351 xcb_gcontext_t gc /**< */, 8352 uint32_t points_len /**< */, 8353 const xcb_point_t *points /**< */) 8354 { 8355 static const xcb_protocol_request_t xcb_req = { 8356 /* count */ 4, 8357 /* ext */ 0, 8358 /* opcode */ XCB_POLY_LINE, 8359 /* isvoid */ 1 8360 }; 8361 8362 struct iovec xcb_parts[6]; 8363 xcb_void_cookie_t xcb_ret; 8364 xcb_poly_line_request_t xcb_out; 8365 8366 xcb_out.coordinate_mode = coordinate_mode; 8367 xcb_out.drawable = drawable; 8368 xcb_out.gc = gc; 8369 8370 xcb_parts[2].iov_base = (char *) &xcb_out; 8371 xcb_parts[2].iov_len = sizeof(xcb_out); 8372 xcb_parts[3].iov_base = 0; 8373 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8374 xcb_parts[4].iov_base = (char *) points; 8375 xcb_parts[4].iov_len = points_len * sizeof(xcb_point_t); 8376 xcb_parts[5].iov_base = 0; 8377 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8378 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8379 return xcb_ret; 8380 } 8381 8382 8383 /***************************************************************************** 8384 ** 8385 ** void xcb_segment_next 8386 ** 8387 ** @param xcb_segment_iterator_t *i 8388 ** @returns void 8389 ** 8390 *****************************************************************************/ 8391 8392 void 8393 xcb_segment_next (xcb_segment_iterator_t *i /**< */) 8394 { 8395 --i->rem; 8396 ++i->data; 8397 i->index += sizeof(xcb_segment_t); 8398 } 8399 8400 8401 /***************************************************************************** 8402 ** 8403 ** xcb_generic_iterator_t xcb_segment_end 8404 ** 8405 ** @param xcb_segment_iterator_t i 8406 ** @returns xcb_generic_iterator_t 8407 ** 8408 *****************************************************************************/ 8409 8410 xcb_generic_iterator_t 8411 xcb_segment_end (xcb_segment_iterator_t i /**< */) 8412 { 8413 xcb_generic_iterator_t ret; 8414 ret.data = i.data + i.rem; 8415 ret.index = i.index + ((char *) ret.data - (char *) i.data); 8416 ret.rem = 0; 8417 return ret; 8418 } 8419 8420 8421 /***************************************************************************** 8422 ** 8423 ** xcb_void_cookie_t xcb_poly_segment_checked 8424 ** 8425 ** @param xcb_connection_t *c 8426 ** @param xcb_drawable_t drawable 8427 ** @param xcb_gcontext_t gc 8428 ** @param uint32_t segments_len 8429 ** @param const xcb_segment_t *segments 8430 ** @returns xcb_void_cookie_t 8431 ** 8432 *****************************************************************************/ 8433 8434 xcb_void_cookie_t 8435 xcb_poly_segment_checked (xcb_connection_t *c /**< */, 8436 xcb_drawable_t drawable /**< */, 8437 xcb_gcontext_t gc /**< */, 8438 uint32_t segments_len /**< */, 8439 const xcb_segment_t *segments /**< */) 8440 { 8441 static const xcb_protocol_request_t xcb_req = { 8442 /* count */ 4, 8443 /* ext */ 0, 8444 /* opcode */ XCB_POLY_SEGMENT, 8445 /* isvoid */ 1 8446 }; 8447 8448 struct iovec xcb_parts[6]; 8449 xcb_void_cookie_t xcb_ret; 8450 xcb_poly_segment_request_t xcb_out; 8451 8452 xcb_out.pad0 = 0; 8453 xcb_out.drawable = drawable; 8454 xcb_out.gc = gc; 8455 8456 xcb_parts[2].iov_base = (char *) &xcb_out; 8457 xcb_parts[2].iov_len = sizeof(xcb_out); 8458 xcb_parts[3].iov_base = 0; 8459 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8460 xcb_parts[4].iov_base = (char *) segments; 8461 xcb_parts[4].iov_len = segments_len * sizeof(xcb_segment_t); 8462 xcb_parts[5].iov_base = 0; 8463 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8464 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8465 return xcb_ret; 8466 } 8467 8468 8469 /***************************************************************************** 8470 ** 8471 ** xcb_void_cookie_t xcb_poly_segment 8472 ** 8473 ** @param xcb_connection_t *c 8474 ** @param xcb_drawable_t drawable 8475 ** @param xcb_gcontext_t gc 8476 ** @param uint32_t segments_len 8477 ** @param const xcb_segment_t *segments 8478 ** @returns xcb_void_cookie_t 8479 ** 8480 *****************************************************************************/ 8481 8482 xcb_void_cookie_t 8483 xcb_poly_segment (xcb_connection_t *c /**< */, 8484 xcb_drawable_t drawable /**< */, 8485 xcb_gcontext_t gc /**< */, 8486 uint32_t segments_len /**< */, 8487 const xcb_segment_t *segments /**< */) 8488 { 8489 static const xcb_protocol_request_t xcb_req = { 8490 /* count */ 4, 8491 /* ext */ 0, 8492 /* opcode */ XCB_POLY_SEGMENT, 8493 /* isvoid */ 1 8494 }; 8495 8496 struct iovec xcb_parts[6]; 8497 xcb_void_cookie_t xcb_ret; 8498 xcb_poly_segment_request_t xcb_out; 8499 8500 xcb_out.pad0 = 0; 8501 xcb_out.drawable = drawable; 8502 xcb_out.gc = gc; 8503 8504 xcb_parts[2].iov_base = (char *) &xcb_out; 8505 xcb_parts[2].iov_len = sizeof(xcb_out); 8506 xcb_parts[3].iov_base = 0; 8507 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8508 xcb_parts[4].iov_base = (char *) segments; 8509 xcb_parts[4].iov_len = segments_len * sizeof(xcb_segment_t); 8510 xcb_parts[5].iov_base = 0; 8511 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8512 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8513 return xcb_ret; 8514 } 8515 8516 8517 /***************************************************************************** 8518 ** 8519 ** xcb_void_cookie_t xcb_poly_rectangle_checked 8520 ** 8521 ** @param xcb_connection_t *c 8522 ** @param xcb_drawable_t drawable 8523 ** @param xcb_gcontext_t gc 8524 ** @param uint32_t rectangles_len 8525 ** @param const xcb_rectangle_t *rectangles 8526 ** @returns xcb_void_cookie_t 8527 ** 8528 *****************************************************************************/ 8529 8530 xcb_void_cookie_t 8531 xcb_poly_rectangle_checked (xcb_connection_t *c /**< */, 8532 xcb_drawable_t drawable /**< */, 8533 xcb_gcontext_t gc /**< */, 8534 uint32_t rectangles_len /**< */, 8535 const xcb_rectangle_t *rectangles /**< */) 8536 { 8537 static const xcb_protocol_request_t xcb_req = { 8538 /* count */ 4, 8539 /* ext */ 0, 8540 /* opcode */ XCB_POLY_RECTANGLE, 8541 /* isvoid */ 1 8542 }; 8543 8544 struct iovec xcb_parts[6]; 8545 xcb_void_cookie_t xcb_ret; 8546 xcb_poly_rectangle_request_t xcb_out; 8547 8548 xcb_out.pad0 = 0; 8549 xcb_out.drawable = drawable; 8550 xcb_out.gc = gc; 8551 8552 xcb_parts[2].iov_base = (char *) &xcb_out; 8553 xcb_parts[2].iov_len = sizeof(xcb_out); 8554 xcb_parts[3].iov_base = 0; 8555 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8556 xcb_parts[4].iov_base = (char *) rectangles; 8557 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 8558 xcb_parts[5].iov_base = 0; 8559 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8560 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8561 return xcb_ret; 8562 } 8563 8564 8565 /***************************************************************************** 8566 ** 8567 ** xcb_void_cookie_t xcb_poly_rectangle 8568 ** 8569 ** @param xcb_connection_t *c 8570 ** @param xcb_drawable_t drawable 8571 ** @param xcb_gcontext_t gc 8572 ** @param uint32_t rectangles_len 8573 ** @param const xcb_rectangle_t *rectangles 8574 ** @returns xcb_void_cookie_t 8575 ** 8576 *****************************************************************************/ 8577 8578 xcb_void_cookie_t 8579 xcb_poly_rectangle (xcb_connection_t *c /**< */, 8580 xcb_drawable_t drawable /**< */, 8581 xcb_gcontext_t gc /**< */, 8582 uint32_t rectangles_len /**< */, 8583 const xcb_rectangle_t *rectangles /**< */) 8584 { 8585 static const xcb_protocol_request_t xcb_req = { 8586 /* count */ 4, 8587 /* ext */ 0, 8588 /* opcode */ XCB_POLY_RECTANGLE, 8589 /* isvoid */ 1 8590 }; 8591 8592 struct iovec xcb_parts[6]; 8593 xcb_void_cookie_t xcb_ret; 8594 xcb_poly_rectangle_request_t xcb_out; 8595 8596 xcb_out.pad0 = 0; 8597 xcb_out.drawable = drawable; 8598 xcb_out.gc = gc; 8599 8600 xcb_parts[2].iov_base = (char *) &xcb_out; 8601 xcb_parts[2].iov_len = sizeof(xcb_out); 8602 xcb_parts[3].iov_base = 0; 8603 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8604 xcb_parts[4].iov_base = (char *) rectangles; 8605 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 8606 xcb_parts[5].iov_base = 0; 8607 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8608 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8609 return xcb_ret; 8610 } 8611 8612 8613 /***************************************************************************** 8614 ** 8615 ** xcb_void_cookie_t xcb_poly_arc_checked 8616 ** 8617 ** @param xcb_connection_t *c 8618 ** @param xcb_drawable_t drawable 8619 ** @param xcb_gcontext_t gc 8620 ** @param uint32_t arcs_len 8621 ** @param const xcb_arc_t *arcs 8622 ** @returns xcb_void_cookie_t 8623 ** 8624 *****************************************************************************/ 8625 8626 xcb_void_cookie_t 8627 xcb_poly_arc_checked (xcb_connection_t *c /**< */, 8628 xcb_drawable_t drawable /**< */, 8629 xcb_gcontext_t gc /**< */, 8630 uint32_t arcs_len /**< */, 8631 const xcb_arc_t *arcs /**< */) 8632 { 8633 static const xcb_protocol_request_t xcb_req = { 8634 /* count */ 4, 8635 /* ext */ 0, 8636 /* opcode */ XCB_POLY_ARC, 8637 /* isvoid */ 1 8638 }; 8639 8640 struct iovec xcb_parts[6]; 8641 xcb_void_cookie_t xcb_ret; 8642 xcb_poly_arc_request_t xcb_out; 8643 8644 xcb_out.pad0 = 0; 8645 xcb_out.drawable = drawable; 8646 xcb_out.gc = gc; 8647 8648 xcb_parts[2].iov_base = (char *) &xcb_out; 8649 xcb_parts[2].iov_len = sizeof(xcb_out); 8650 xcb_parts[3].iov_base = 0; 8651 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8652 xcb_parts[4].iov_base = (char *) arcs; 8653 xcb_parts[4].iov_len = arcs_len * sizeof(xcb_arc_t); 8654 xcb_parts[5].iov_base = 0; 8655 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8656 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8657 return xcb_ret; 8658 } 8659 8660 8661 /***************************************************************************** 8662 ** 8663 ** xcb_void_cookie_t xcb_poly_arc 8664 ** 8665 ** @param xcb_connection_t *c 8666 ** @param xcb_drawable_t drawable 8667 ** @param xcb_gcontext_t gc 8668 ** @param uint32_t arcs_len 8669 ** @param const xcb_arc_t *arcs 8670 ** @returns xcb_void_cookie_t 8671 ** 8672 *****************************************************************************/ 8673 8674 xcb_void_cookie_t 8675 xcb_poly_arc (xcb_connection_t *c /**< */, 8676 xcb_drawable_t drawable /**< */, 8677 xcb_gcontext_t gc /**< */, 8678 uint32_t arcs_len /**< */, 8679 const xcb_arc_t *arcs /**< */) 8680 { 8681 static const xcb_protocol_request_t xcb_req = { 8682 /* count */ 4, 8683 /* ext */ 0, 8684 /* opcode */ XCB_POLY_ARC, 8685 /* isvoid */ 1 8686 }; 8687 8688 struct iovec xcb_parts[6]; 8689 xcb_void_cookie_t xcb_ret; 8690 xcb_poly_arc_request_t xcb_out; 8691 8692 xcb_out.pad0 = 0; 8693 xcb_out.drawable = drawable; 8694 xcb_out.gc = gc; 8695 8696 xcb_parts[2].iov_base = (char *) &xcb_out; 8697 xcb_parts[2].iov_len = sizeof(xcb_out); 8698 xcb_parts[3].iov_base = 0; 8699 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8700 xcb_parts[4].iov_base = (char *) arcs; 8701 xcb_parts[4].iov_len = arcs_len * sizeof(xcb_arc_t); 8702 xcb_parts[5].iov_base = 0; 8703 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8704 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8705 return xcb_ret; 8706 } 8707 8708 8709 /***************************************************************************** 8710 ** 8711 ** xcb_void_cookie_t xcb_fill_poly_checked 8712 ** 8713 ** @param xcb_connection_t *c 8714 ** @param xcb_drawable_t drawable 8715 ** @param xcb_gcontext_t gc 8716 ** @param uint8_t shape 8717 ** @param uint8_t coordinate_mode 8718 ** @param uint32_t points_len 8719 ** @param const xcb_point_t *points 8720 ** @returns xcb_void_cookie_t 8721 ** 8722 *****************************************************************************/ 8723 8724 xcb_void_cookie_t 8725 xcb_fill_poly_checked (xcb_connection_t *c /**< */, 8726 xcb_drawable_t drawable /**< */, 8727 xcb_gcontext_t gc /**< */, 8728 uint8_t shape /**< */, 8729 uint8_t coordinate_mode /**< */, 8730 uint32_t points_len /**< */, 8731 const xcb_point_t *points /**< */) 8732 { 8733 static const xcb_protocol_request_t xcb_req = { 8734 /* count */ 4, 8735 /* ext */ 0, 8736 /* opcode */ XCB_FILL_POLY, 8737 /* isvoid */ 1 8738 }; 8739 8740 struct iovec xcb_parts[6]; 8741 xcb_void_cookie_t xcb_ret; 8742 xcb_fill_poly_request_t xcb_out; 8743 8744 xcb_out.pad0 = 0; 8745 xcb_out.drawable = drawable; 8746 xcb_out.gc = gc; 8747 xcb_out.shape = shape; 8748 xcb_out.coordinate_mode = coordinate_mode; 8749 memset(xcb_out.pad1, 0, 2); 8750 8751 xcb_parts[2].iov_base = (char *) &xcb_out; 8752 xcb_parts[2].iov_len = sizeof(xcb_out); 8753 xcb_parts[3].iov_base = 0; 8754 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8755 xcb_parts[4].iov_base = (char *) points; 8756 xcb_parts[4].iov_len = points_len * sizeof(xcb_point_t); 8757 xcb_parts[5].iov_base = 0; 8758 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8759 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8760 return xcb_ret; 8761 } 8762 8763 8764 /***************************************************************************** 8765 ** 8766 ** xcb_void_cookie_t xcb_fill_poly 8767 ** 8768 ** @param xcb_connection_t *c 8769 ** @param xcb_drawable_t drawable 8770 ** @param xcb_gcontext_t gc 8771 ** @param uint8_t shape 8772 ** @param uint8_t coordinate_mode 8773 ** @param uint32_t points_len 8774 ** @param const xcb_point_t *points 8775 ** @returns xcb_void_cookie_t 8776 ** 8777 *****************************************************************************/ 8778 8779 xcb_void_cookie_t 8780 xcb_fill_poly (xcb_connection_t *c /**< */, 8781 xcb_drawable_t drawable /**< */, 8782 xcb_gcontext_t gc /**< */, 8783 uint8_t shape /**< */, 8784 uint8_t coordinate_mode /**< */, 8785 uint32_t points_len /**< */, 8786 const xcb_point_t *points /**< */) 8787 { 8788 static const xcb_protocol_request_t xcb_req = { 8789 /* count */ 4, 8790 /* ext */ 0, 8791 /* opcode */ XCB_FILL_POLY, 8792 /* isvoid */ 1 8793 }; 8794 8795 struct iovec xcb_parts[6]; 8796 xcb_void_cookie_t xcb_ret; 8797 xcb_fill_poly_request_t xcb_out; 8798 8799 xcb_out.pad0 = 0; 8800 xcb_out.drawable = drawable; 8801 xcb_out.gc = gc; 8802 xcb_out.shape = shape; 8803 xcb_out.coordinate_mode = coordinate_mode; 8804 memset(xcb_out.pad1, 0, 2); 8805 8806 xcb_parts[2].iov_base = (char *) &xcb_out; 8807 xcb_parts[2].iov_len = sizeof(xcb_out); 8808 xcb_parts[3].iov_base = 0; 8809 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8810 xcb_parts[4].iov_base = (char *) points; 8811 xcb_parts[4].iov_len = points_len * sizeof(xcb_point_t); 8812 xcb_parts[5].iov_base = 0; 8813 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8814 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8815 return xcb_ret; 8816 } 8817 8818 8819 /***************************************************************************** 8820 ** 8821 ** xcb_void_cookie_t xcb_poly_fill_rectangle_checked 8822 ** 8823 ** @param xcb_connection_t *c 8824 ** @param xcb_drawable_t drawable 8825 ** @param xcb_gcontext_t gc 8826 ** @param uint32_t rectangles_len 8827 ** @param const xcb_rectangle_t *rectangles 8828 ** @returns xcb_void_cookie_t 8829 ** 8830 *****************************************************************************/ 8831 8832 xcb_void_cookie_t 8833 xcb_poly_fill_rectangle_checked (xcb_connection_t *c /**< */, 8834 xcb_drawable_t drawable /**< */, 8835 xcb_gcontext_t gc /**< */, 8836 uint32_t rectangles_len /**< */, 8837 const xcb_rectangle_t *rectangles /**< */) 8838 { 8839 static const xcb_protocol_request_t xcb_req = { 8840 /* count */ 4, 8841 /* ext */ 0, 8842 /* opcode */ XCB_POLY_FILL_RECTANGLE, 8843 /* isvoid */ 1 8844 }; 8845 8846 struct iovec xcb_parts[6]; 8847 xcb_void_cookie_t xcb_ret; 8848 xcb_poly_fill_rectangle_request_t xcb_out; 8849 8850 xcb_out.pad0 = 0; 8851 xcb_out.drawable = drawable; 8852 xcb_out.gc = gc; 8853 8854 xcb_parts[2].iov_base = (char *) &xcb_out; 8855 xcb_parts[2].iov_len = sizeof(xcb_out); 8856 xcb_parts[3].iov_base = 0; 8857 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8858 xcb_parts[4].iov_base = (char *) rectangles; 8859 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 8860 xcb_parts[5].iov_base = 0; 8861 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8862 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8863 return xcb_ret; 8864 } 8865 8866 8867 /***************************************************************************** 8868 ** 8869 ** xcb_void_cookie_t xcb_poly_fill_rectangle 8870 ** 8871 ** @param xcb_connection_t *c 8872 ** @param xcb_drawable_t drawable 8873 ** @param xcb_gcontext_t gc 8874 ** @param uint32_t rectangles_len 8875 ** @param const xcb_rectangle_t *rectangles 8876 ** @returns xcb_void_cookie_t 8877 ** 8878 *****************************************************************************/ 8879 8880 xcb_void_cookie_t 8881 xcb_poly_fill_rectangle (xcb_connection_t *c /**< */, 8882 xcb_drawable_t drawable /**< */, 8883 xcb_gcontext_t gc /**< */, 8884 uint32_t rectangles_len /**< */, 8885 const xcb_rectangle_t *rectangles /**< */) 8886 { 8887 static const xcb_protocol_request_t xcb_req = { 8888 /* count */ 4, 8889 /* ext */ 0, 8890 /* opcode */ XCB_POLY_FILL_RECTANGLE, 8891 /* isvoid */ 1 8892 }; 8893 8894 struct iovec xcb_parts[6]; 8895 xcb_void_cookie_t xcb_ret; 8896 xcb_poly_fill_rectangle_request_t xcb_out; 8897 8898 xcb_out.pad0 = 0; 8899 xcb_out.drawable = drawable; 8900 xcb_out.gc = gc; 8901 8902 xcb_parts[2].iov_base = (char *) &xcb_out; 8903 xcb_parts[2].iov_len = sizeof(xcb_out); 8904 xcb_parts[3].iov_base = 0; 8905 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8906 xcb_parts[4].iov_base = (char *) rectangles; 8907 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 8908 xcb_parts[5].iov_base = 0; 8909 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8910 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8911 return xcb_ret; 8912 } 8913 8914 8915 /***************************************************************************** 8916 ** 8917 ** xcb_void_cookie_t xcb_poly_fill_arc_checked 8918 ** 8919 ** @param xcb_connection_t *c 8920 ** @param xcb_drawable_t drawable 8921 ** @param xcb_gcontext_t gc 8922 ** @param uint32_t arcs_len 8923 ** @param const xcb_arc_t *arcs 8924 ** @returns xcb_void_cookie_t 8925 ** 8926 *****************************************************************************/ 8927 8928 xcb_void_cookie_t 8929 xcb_poly_fill_arc_checked (xcb_connection_t *c /**< */, 8930 xcb_drawable_t drawable /**< */, 8931 xcb_gcontext_t gc /**< */, 8932 uint32_t arcs_len /**< */, 8933 const xcb_arc_t *arcs /**< */) 8934 { 8935 static const xcb_protocol_request_t xcb_req = { 8936 /* count */ 4, 8937 /* ext */ 0, 8938 /* opcode */ XCB_POLY_FILL_ARC, 8939 /* isvoid */ 1 8940 }; 8941 8942 struct iovec xcb_parts[6]; 8943 xcb_void_cookie_t xcb_ret; 8944 xcb_poly_fill_arc_request_t xcb_out; 8945 8946 xcb_out.pad0 = 0; 8947 xcb_out.drawable = drawable; 8948 xcb_out.gc = gc; 8949 8950 xcb_parts[2].iov_base = (char *) &xcb_out; 8951 xcb_parts[2].iov_len = sizeof(xcb_out); 8952 xcb_parts[3].iov_base = 0; 8953 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8954 xcb_parts[4].iov_base = (char *) arcs; 8955 xcb_parts[4].iov_len = arcs_len * sizeof(xcb_arc_t); 8956 xcb_parts[5].iov_base = 0; 8957 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8958 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8959 return xcb_ret; 8960 } 8961 8962 8963 /***************************************************************************** 8964 ** 8965 ** xcb_void_cookie_t xcb_poly_fill_arc 8966 ** 8967 ** @param xcb_connection_t *c 8968 ** @param xcb_drawable_t drawable 8969 ** @param xcb_gcontext_t gc 8970 ** @param uint32_t arcs_len 8971 ** @param const xcb_arc_t *arcs 8972 ** @returns xcb_void_cookie_t 8973 ** 8974 *****************************************************************************/ 8975 8976 xcb_void_cookie_t 8977 xcb_poly_fill_arc (xcb_connection_t *c /**< */, 8978 xcb_drawable_t drawable /**< */, 8979 xcb_gcontext_t gc /**< */, 8980 uint32_t arcs_len /**< */, 8981 const xcb_arc_t *arcs /**< */) 8982 { 8983 static const xcb_protocol_request_t xcb_req = { 8984 /* count */ 4, 8985 /* ext */ 0, 8986 /* opcode */ XCB_POLY_FILL_ARC, 8987 /* isvoid */ 1 8988 }; 8989 8990 struct iovec xcb_parts[6]; 8991 xcb_void_cookie_t xcb_ret; 8992 xcb_poly_fill_arc_request_t xcb_out; 8993 8994 xcb_out.pad0 = 0; 8995 xcb_out.drawable = drawable; 8996 xcb_out.gc = gc; 8997 8998 xcb_parts[2].iov_base = (char *) &xcb_out; 8999 xcb_parts[2].iov_len = sizeof(xcb_out); 9000 xcb_parts[3].iov_base = 0; 9001 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9002 xcb_parts[4].iov_base = (char *) arcs; 9003 xcb_parts[4].iov_len = arcs_len * sizeof(xcb_arc_t); 9004 xcb_parts[5].iov_base = 0; 9005 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9006 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9007 return xcb_ret; 9008 } 9009 9010 9011 /***************************************************************************** 9012 ** 9013 ** xcb_void_cookie_t xcb_put_image_checked 9014 ** 9015 ** @param xcb_connection_t *c 9016 ** @param uint8_t format 9017 ** @param xcb_drawable_t drawable 9018 ** @param xcb_gcontext_t gc 9019 ** @param uint16_t width 9020 ** @param uint16_t height 9021 ** @param int16_t dst_x 9022 ** @param int16_t dst_y 9023 ** @param uint8_t left_pad 9024 ** @param uint8_t depth 9025 ** @param uint32_t data_len 9026 ** @param const uint8_t *data 9027 ** @returns xcb_void_cookie_t 9028 ** 9029 *****************************************************************************/ 9030 9031 xcb_void_cookie_t 9032 xcb_put_image_checked (xcb_connection_t *c /**< */, 9033 uint8_t format /**< */, 9034 xcb_drawable_t drawable /**< */, 9035 xcb_gcontext_t gc /**< */, 9036 uint16_t width /**< */, 9037 uint16_t height /**< */, 9038 int16_t dst_x /**< */, 9039 int16_t dst_y /**< */, 9040 uint8_t left_pad /**< */, 9041 uint8_t depth /**< */, 9042 uint32_t data_len /**< */, 9043 const uint8_t *data /**< */) 9044 { 9045 static const xcb_protocol_request_t xcb_req = { 9046 /* count */ 4, 9047 /* ext */ 0, 9048 /* opcode */ XCB_PUT_IMAGE, 9049 /* isvoid */ 1 9050 }; 9051 9052 struct iovec xcb_parts[6]; 9053 xcb_void_cookie_t xcb_ret; 9054 xcb_put_image_request_t xcb_out; 9055 9056 xcb_out.format = format; 9057 xcb_out.drawable = drawable; 9058 xcb_out.gc = gc; 9059 xcb_out.width = width; 9060 xcb_out.height = height; 9061 xcb_out.dst_x = dst_x; 9062 xcb_out.dst_y = dst_y; 9063 xcb_out.left_pad = left_pad; 9064 xcb_out.depth = depth; 9065 memset(xcb_out.pad0, 0, 2); 9066 9067 xcb_parts[2].iov_base = (char *) &xcb_out; 9068 xcb_parts[2].iov_len = sizeof(xcb_out); 9069 xcb_parts[3].iov_base = 0; 9070 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9071 xcb_parts[4].iov_base = (char *) data; 9072 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 9073 xcb_parts[5].iov_base = 0; 9074 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9075 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9076 return xcb_ret; 9077 } 9078 9079 9080 /***************************************************************************** 9081 ** 9082 ** xcb_void_cookie_t xcb_put_image 9083 ** 9084 ** @param xcb_connection_t *c 9085 ** @param uint8_t format 9086 ** @param xcb_drawable_t drawable 9087 ** @param xcb_gcontext_t gc 9088 ** @param uint16_t width 9089 ** @param uint16_t height 9090 ** @param int16_t dst_x 9091 ** @param int16_t dst_y 9092 ** @param uint8_t left_pad 9093 ** @param uint8_t depth 9094 ** @param uint32_t data_len 9095 ** @param const uint8_t *data 9096 ** @returns xcb_void_cookie_t 9097 ** 9098 *****************************************************************************/ 9099 9100 xcb_void_cookie_t 9101 xcb_put_image (xcb_connection_t *c /**< */, 9102 uint8_t format /**< */, 9103 xcb_drawable_t drawable /**< */, 9104 xcb_gcontext_t gc /**< */, 9105 uint16_t width /**< */, 9106 uint16_t height /**< */, 9107 int16_t dst_x /**< */, 9108 int16_t dst_y /**< */, 9109 uint8_t left_pad /**< */, 9110 uint8_t depth /**< */, 9111 uint32_t data_len /**< */, 9112 const uint8_t *data /**< */) 9113 { 9114 static const xcb_protocol_request_t xcb_req = { 9115 /* count */ 4, 9116 /* ext */ 0, 9117 /* opcode */ XCB_PUT_IMAGE, 9118 /* isvoid */ 1 9119 }; 9120 9121 struct iovec xcb_parts[6]; 9122 xcb_void_cookie_t xcb_ret; 9123 xcb_put_image_request_t xcb_out; 9124 9125 xcb_out.format = format; 9126 xcb_out.drawable = drawable; 9127 xcb_out.gc = gc; 9128 xcb_out.width = width; 9129 xcb_out.height = height; 9130 xcb_out.dst_x = dst_x; 9131 xcb_out.dst_y = dst_y; 9132 xcb_out.left_pad = left_pad; 9133 xcb_out.depth = depth; 9134 memset(xcb_out.pad0, 0, 2); 9135 9136 xcb_parts[2].iov_base = (char *) &xcb_out; 9137 xcb_parts[2].iov_len = sizeof(xcb_out); 9138 xcb_parts[3].iov_base = 0; 9139 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9140 xcb_parts[4].iov_base = (char *) data; 9141 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 9142 xcb_parts[5].iov_base = 0; 9143 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9144 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9145 return xcb_ret; 9146 } 9147 9148 9149 /***************************************************************************** 9150 ** 9151 ** xcb_get_image_cookie_t xcb_get_image 9152 ** 9153 ** @param xcb_connection_t *c 9154 ** @param uint8_t format 9155 ** @param xcb_drawable_t drawable 9156 ** @param int16_t x 9157 ** @param int16_t y 9158 ** @param uint16_t width 9159 ** @param uint16_t height 9160 ** @param uint32_t plane_mask 9161 ** @returns xcb_get_image_cookie_t 9162 ** 9163 *****************************************************************************/ 9164 9165 xcb_get_image_cookie_t 9166 xcb_get_image (xcb_connection_t *c /**< */, 9167 uint8_t format /**< */, 9168 xcb_drawable_t drawable /**< */, 9169 int16_t x /**< */, 9170 int16_t y /**< */, 9171 uint16_t width /**< */, 9172 uint16_t height /**< */, 9173 uint32_t plane_mask /**< */) 9174 { 9175 static const xcb_protocol_request_t xcb_req = { 9176 /* count */ 2, 9177 /* ext */ 0, 9178 /* opcode */ XCB_GET_IMAGE, 9179 /* isvoid */ 0 9180 }; 9181 9182 struct iovec xcb_parts[4]; 9183 xcb_get_image_cookie_t xcb_ret; 9184 xcb_get_image_request_t xcb_out; 9185 9186 xcb_out.format = format; 9187 xcb_out.drawable = drawable; 9188 xcb_out.x = x; 9189 xcb_out.y = y; 9190 xcb_out.width = width; 9191 xcb_out.height = height; 9192 xcb_out.plane_mask = plane_mask; 9193 9194 xcb_parts[2].iov_base = (char *) &xcb_out; 9195 xcb_parts[2].iov_len = sizeof(xcb_out); 9196 xcb_parts[3].iov_base = 0; 9197 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9198 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9199 return xcb_ret; 9200 } 9201 9202 9203 /***************************************************************************** 9204 ** 9205 ** xcb_get_image_cookie_t xcb_get_image_unchecked 9206 ** 9207 ** @param xcb_connection_t *c 9208 ** @param uint8_t format 9209 ** @param xcb_drawable_t drawable 9210 ** @param int16_t x 9211 ** @param int16_t y 9212 ** @param uint16_t width 9213 ** @param uint16_t height 9214 ** @param uint32_t plane_mask 9215 ** @returns xcb_get_image_cookie_t 9216 ** 9217 *****************************************************************************/ 9218 9219 xcb_get_image_cookie_t 9220 xcb_get_image_unchecked (xcb_connection_t *c /**< */, 9221 uint8_t format /**< */, 9222 xcb_drawable_t drawable /**< */, 9223 int16_t x /**< */, 9224 int16_t y /**< */, 9225 uint16_t width /**< */, 9226 uint16_t height /**< */, 9227 uint32_t plane_mask /**< */) 9228 { 9229 static const xcb_protocol_request_t xcb_req = { 9230 /* count */ 2, 9231 /* ext */ 0, 9232 /* opcode */ XCB_GET_IMAGE, 9233 /* isvoid */ 0 9234 }; 9235 9236 struct iovec xcb_parts[4]; 9237 xcb_get_image_cookie_t xcb_ret; 9238 xcb_get_image_request_t xcb_out; 9239 9240 xcb_out.format = format; 9241 xcb_out.drawable = drawable; 9242 xcb_out.x = x; 9243 xcb_out.y = y; 9244 xcb_out.width = width; 9245 xcb_out.height = height; 9246 xcb_out.plane_mask = plane_mask; 9247 9248 xcb_parts[2].iov_base = (char *) &xcb_out; 9249 xcb_parts[2].iov_len = sizeof(xcb_out); 9250 xcb_parts[3].iov_base = 0; 9251 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9252 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9253 return xcb_ret; 9254 } 9255 9256 9257 /***************************************************************************** 9258 ** 9259 ** uint8_t * xcb_get_image_data 9260 ** 9261 ** @param const xcb_get_image_reply_t *R 9262 ** @returns uint8_t * 9263 ** 9264 *****************************************************************************/ 9265 9266 uint8_t * 9267 xcb_get_image_data (const xcb_get_image_reply_t *R /**< */) 9268 { 9269 return (uint8_t *) (R + 1); 9270 } 9271 9272 9273 /***************************************************************************** 9274 ** 9275 ** int xcb_get_image_data_length 9276 ** 9277 ** @param const xcb_get_image_reply_t *R 9278 ** @returns int 9279 ** 9280 *****************************************************************************/ 9281 9282 int 9283 xcb_get_image_data_length (const xcb_get_image_reply_t *R /**< */) 9284 { 9285 return (R->length * 4); 9286 } 9287 9288 9289 /***************************************************************************** 9290 ** 9291 ** xcb_generic_iterator_t xcb_get_image_data_end 9292 ** 9293 ** @param const xcb_get_image_reply_t *R 9294 ** @returns xcb_generic_iterator_t 9295 ** 9296 *****************************************************************************/ 9297 9298 xcb_generic_iterator_t 9299 xcb_get_image_data_end (const xcb_get_image_reply_t *R /**< */) 9300 { 9301 xcb_generic_iterator_t i; 9302 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 9303 i.rem = 0; 9304 i.index = (char *) i.data - (char *) R; 9305 return i; 9306 } 9307 9308 9309 /***************************************************************************** 9310 ** 9311 ** xcb_get_image_reply_t * xcb_get_image_reply 9312 ** 9313 ** @param xcb_connection_t *c 9314 ** @param xcb_get_image_cookie_t cookie 9315 ** @param xcb_generic_error_t **e 9316 ** @returns xcb_get_image_reply_t * 9317 ** 9318 *****************************************************************************/ 9319 9320 xcb_get_image_reply_t * 9321 xcb_get_image_reply (xcb_connection_t *c /**< */, 9322 xcb_get_image_cookie_t cookie /**< */, 9323 xcb_generic_error_t **e /**< */) 9324 { 9325 return (xcb_get_image_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9326 } 9327 9328 9329 /***************************************************************************** 9330 ** 9331 ** xcb_void_cookie_t xcb_poly_text_8_checked 9332 ** 9333 ** @param xcb_connection_t *c 9334 ** @param xcb_drawable_t drawable 9335 ** @param xcb_gcontext_t gc 9336 ** @param int16_t x 9337 ** @param int16_t y 9338 ** @param uint32_t items_len 9339 ** @param const uint8_t *items 9340 ** @returns xcb_void_cookie_t 9341 ** 9342 *****************************************************************************/ 9343 9344 xcb_void_cookie_t 9345 xcb_poly_text_8_checked (xcb_connection_t *c /**< */, 9346 xcb_drawable_t drawable /**< */, 9347 xcb_gcontext_t gc /**< */, 9348 int16_t x /**< */, 9349 int16_t y /**< */, 9350 uint32_t items_len /**< */, 9351 const uint8_t *items /**< */) 9352 { 9353 static const xcb_protocol_request_t xcb_req = { 9354 /* count */ 4, 9355 /* ext */ 0, 9356 /* opcode */ XCB_POLY_TEXT_8, 9357 /* isvoid */ 1 9358 }; 9359 9360 struct iovec xcb_parts[6]; 9361 xcb_void_cookie_t xcb_ret; 9362 xcb_poly_text_8_request_t xcb_out; 9363 9364 xcb_out.pad0 = 0; 9365 xcb_out.drawable = drawable; 9366 xcb_out.gc = gc; 9367 xcb_out.x = x; 9368 xcb_out.y = y; 9369 9370 xcb_parts[2].iov_base = (char *) &xcb_out; 9371 xcb_parts[2].iov_len = sizeof(xcb_out); 9372 xcb_parts[3].iov_base = 0; 9373 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9374 xcb_parts[4].iov_base = (char *) items; 9375 xcb_parts[4].iov_len = items_len * sizeof(uint8_t); 9376 xcb_parts[5].iov_base = 0; 9377 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9378 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9379 return xcb_ret; 9380 } 9381 9382 9383 /***************************************************************************** 9384 ** 9385 ** xcb_void_cookie_t xcb_poly_text_8 9386 ** 9387 ** @param xcb_connection_t *c 9388 ** @param xcb_drawable_t drawable 9389 ** @param xcb_gcontext_t gc 9390 ** @param int16_t x 9391 ** @param int16_t y 9392 ** @param uint32_t items_len 9393 ** @param const uint8_t *items 9394 ** @returns xcb_void_cookie_t 9395 ** 9396 *****************************************************************************/ 9397 9398 xcb_void_cookie_t 9399 xcb_poly_text_8 (xcb_connection_t *c /**< */, 9400 xcb_drawable_t drawable /**< */, 9401 xcb_gcontext_t gc /**< */, 9402 int16_t x /**< */, 9403 int16_t y /**< */, 9404 uint32_t items_len /**< */, 9405 const uint8_t *items /**< */) 9406 { 9407 static const xcb_protocol_request_t xcb_req = { 9408 /* count */ 4, 9409 /* ext */ 0, 9410 /* opcode */ XCB_POLY_TEXT_8, 9411 /* isvoid */ 1 9412 }; 9413 9414 struct iovec xcb_parts[6]; 9415 xcb_void_cookie_t xcb_ret; 9416 xcb_poly_text_8_request_t xcb_out; 9417 9418 xcb_out.pad0 = 0; 9419 xcb_out.drawable = drawable; 9420 xcb_out.gc = gc; 9421 xcb_out.x = x; 9422 xcb_out.y = y; 9423 9424 xcb_parts[2].iov_base = (char *) &xcb_out; 9425 xcb_parts[2].iov_len = sizeof(xcb_out); 9426 xcb_parts[3].iov_base = 0; 9427 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9428 xcb_parts[4].iov_base = (char *) items; 9429 xcb_parts[4].iov_len = items_len * sizeof(uint8_t); 9430 xcb_parts[5].iov_base = 0; 9431 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9432 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9433 return xcb_ret; 9434 } 9435 9436 9437 /***************************************************************************** 9438 ** 9439 ** xcb_void_cookie_t xcb_poly_text_16_checked 9440 ** 9441 ** @param xcb_connection_t *c 9442 ** @param xcb_drawable_t drawable 9443 ** @param xcb_gcontext_t gc 9444 ** @param int16_t x 9445 ** @param int16_t y 9446 ** @param uint32_t items_len 9447 ** @param const uint8_t *items 9448 ** @returns xcb_void_cookie_t 9449 ** 9450 *****************************************************************************/ 9451 9452 xcb_void_cookie_t 9453 xcb_poly_text_16_checked (xcb_connection_t *c /**< */, 9454 xcb_drawable_t drawable /**< */, 9455 xcb_gcontext_t gc /**< */, 9456 int16_t x /**< */, 9457 int16_t y /**< */, 9458 uint32_t items_len /**< */, 9459 const uint8_t *items /**< */) 9460 { 9461 static const xcb_protocol_request_t xcb_req = { 9462 /* count */ 4, 9463 /* ext */ 0, 9464 /* opcode */ XCB_POLY_TEXT_16, 9465 /* isvoid */ 1 9466 }; 9467 9468 struct iovec xcb_parts[6]; 9469 xcb_void_cookie_t xcb_ret; 9470 xcb_poly_text_16_request_t xcb_out; 9471 9472 xcb_out.pad0 = 0; 9473 xcb_out.drawable = drawable; 9474 xcb_out.gc = gc; 9475 xcb_out.x = x; 9476 xcb_out.y = y; 9477 9478 xcb_parts[2].iov_base = (char *) &xcb_out; 9479 xcb_parts[2].iov_len = sizeof(xcb_out); 9480 xcb_parts[3].iov_base = 0; 9481 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9482 xcb_parts[4].iov_base = (char *) items; 9483 xcb_parts[4].iov_len = items_len * sizeof(uint8_t); 9484 xcb_parts[5].iov_base = 0; 9485 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9486 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9487 return xcb_ret; 9488 } 9489 9490 9491 /***************************************************************************** 9492 ** 9493 ** xcb_void_cookie_t xcb_poly_text_16 9494 ** 9495 ** @param xcb_connection_t *c 9496 ** @param xcb_drawable_t drawable 9497 ** @param xcb_gcontext_t gc 9498 ** @param int16_t x 9499 ** @param int16_t y 9500 ** @param uint32_t items_len 9501 ** @param const uint8_t *items 9502 ** @returns xcb_void_cookie_t 9503 ** 9504 *****************************************************************************/ 9505 9506 xcb_void_cookie_t 9507 xcb_poly_text_16 (xcb_connection_t *c /**< */, 9508 xcb_drawable_t drawable /**< */, 9509 xcb_gcontext_t gc /**< */, 9510 int16_t x /**< */, 9511 int16_t y /**< */, 9512 uint32_t items_len /**< */, 9513 const uint8_t *items /**< */) 9514 { 9515 static const xcb_protocol_request_t xcb_req = { 9516 /* count */ 4, 9517 /* ext */ 0, 9518 /* opcode */ XCB_POLY_TEXT_16, 9519 /* isvoid */ 1 9520 }; 9521 9522 struct iovec xcb_parts[6]; 9523 xcb_void_cookie_t xcb_ret; 9524 xcb_poly_text_16_request_t xcb_out; 9525 9526 xcb_out.pad0 = 0; 9527 xcb_out.drawable = drawable; 9528 xcb_out.gc = gc; 9529 xcb_out.x = x; 9530 xcb_out.y = y; 9531 9532 xcb_parts[2].iov_base = (char *) &xcb_out; 9533 xcb_parts[2].iov_len = sizeof(xcb_out); 9534 xcb_parts[3].iov_base = 0; 9535 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9536 xcb_parts[4].iov_base = (char *) items; 9537 xcb_parts[4].iov_len = items_len * sizeof(uint8_t); 9538 xcb_parts[5].iov_base = 0; 9539 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9540 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9541 return xcb_ret; 9542 } 9543 9544 9545 /***************************************************************************** 9546 ** 9547 ** xcb_void_cookie_t xcb_image_text_8_checked 9548 ** 9549 ** @param xcb_connection_t *c 9550 ** @param uint8_t string_len 9551 ** @param xcb_drawable_t drawable 9552 ** @param xcb_gcontext_t gc 9553 ** @param int16_t x 9554 ** @param int16_t y 9555 ** @param const char *string 9556 ** @returns xcb_void_cookie_t 9557 ** 9558 *****************************************************************************/ 9559 9560 xcb_void_cookie_t 9561 xcb_image_text_8_checked (xcb_connection_t *c /**< */, 9562 uint8_t string_len /**< */, 9563 xcb_drawable_t drawable /**< */, 9564 xcb_gcontext_t gc /**< */, 9565 int16_t x /**< */, 9566 int16_t y /**< */, 9567 const char *string /**< */) 9568 { 9569 static const xcb_protocol_request_t xcb_req = { 9570 /* count */ 4, 9571 /* ext */ 0, 9572 /* opcode */ XCB_IMAGE_TEXT_8, 9573 /* isvoid */ 1 9574 }; 9575 9576 struct iovec xcb_parts[6]; 9577 xcb_void_cookie_t xcb_ret; 9578 xcb_image_text_8_request_t xcb_out; 9579 9580 xcb_out.string_len = string_len; 9581 xcb_out.drawable = drawable; 9582 xcb_out.gc = gc; 9583 xcb_out.x = x; 9584 xcb_out.y = y; 9585 9586 xcb_parts[2].iov_base = (char *) &xcb_out; 9587 xcb_parts[2].iov_len = sizeof(xcb_out); 9588 xcb_parts[3].iov_base = 0; 9589 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9590 xcb_parts[4].iov_base = (char *) string; 9591 xcb_parts[4].iov_len = string_len * sizeof(char); 9592 xcb_parts[5].iov_base = 0; 9593 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9594 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9595 return xcb_ret; 9596 } 9597 9598 9599 /***************************************************************************** 9600 ** 9601 ** xcb_void_cookie_t xcb_image_text_8 9602 ** 9603 ** @param xcb_connection_t *c 9604 ** @param uint8_t string_len 9605 ** @param xcb_drawable_t drawable 9606 ** @param xcb_gcontext_t gc 9607 ** @param int16_t x 9608 ** @param int16_t y 9609 ** @param const char *string 9610 ** @returns xcb_void_cookie_t 9611 ** 9612 *****************************************************************************/ 9613 9614 xcb_void_cookie_t 9615 xcb_image_text_8 (xcb_connection_t *c /**< */, 9616 uint8_t string_len /**< */, 9617 xcb_drawable_t drawable /**< */, 9618 xcb_gcontext_t gc /**< */, 9619 int16_t x /**< */, 9620 int16_t y /**< */, 9621 const char *string /**< */) 9622 { 9623 static const xcb_protocol_request_t xcb_req = { 9624 /* count */ 4, 9625 /* ext */ 0, 9626 /* opcode */ XCB_IMAGE_TEXT_8, 9627 /* isvoid */ 1 9628 }; 9629 9630 struct iovec xcb_parts[6]; 9631 xcb_void_cookie_t xcb_ret; 9632 xcb_image_text_8_request_t xcb_out; 9633 9634 xcb_out.string_len = string_len; 9635 xcb_out.drawable = drawable; 9636 xcb_out.gc = gc; 9637 xcb_out.x = x; 9638 xcb_out.y = y; 9639 9640 xcb_parts[2].iov_base = (char *) &xcb_out; 9641 xcb_parts[2].iov_len = sizeof(xcb_out); 9642 xcb_parts[3].iov_base = 0; 9643 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9644 xcb_parts[4].iov_base = (char *) string; 9645 xcb_parts[4].iov_len = string_len * sizeof(char); 9646 xcb_parts[5].iov_base = 0; 9647 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9648 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9649 return xcb_ret; 9650 } 9651 9652 9653 /***************************************************************************** 9654 ** 9655 ** xcb_void_cookie_t xcb_image_text_16_checked 9656 ** 9657 ** @param xcb_connection_t *c 9658 ** @param uint8_t string_len 9659 ** @param xcb_drawable_t drawable 9660 ** @param xcb_gcontext_t gc 9661 ** @param int16_t x 9662 ** @param int16_t y 9663 ** @param const xcb_char2b_t *string 9664 ** @returns xcb_void_cookie_t 9665 ** 9666 *****************************************************************************/ 9667 9668 xcb_void_cookie_t 9669 xcb_image_text_16_checked (xcb_connection_t *c /**< */, 9670 uint8_t string_len /**< */, 9671 xcb_drawable_t drawable /**< */, 9672 xcb_gcontext_t gc /**< */, 9673 int16_t x /**< */, 9674 int16_t y /**< */, 9675 const xcb_char2b_t *string /**< */) 9676 { 9677 static const xcb_protocol_request_t xcb_req = { 9678 /* count */ 4, 9679 /* ext */ 0, 9680 /* opcode */ XCB_IMAGE_TEXT_16, 9681 /* isvoid */ 1 9682 }; 9683 9684 struct iovec xcb_parts[6]; 9685 xcb_void_cookie_t xcb_ret; 9686 xcb_image_text_16_request_t xcb_out; 9687 9688 xcb_out.string_len = string_len; 9689 xcb_out.drawable = drawable; 9690 xcb_out.gc = gc; 9691 xcb_out.x = x; 9692 xcb_out.y = y; 9693 9694 xcb_parts[2].iov_base = (char *) &xcb_out; 9695 xcb_parts[2].iov_len = sizeof(xcb_out); 9696 xcb_parts[3].iov_base = 0; 9697 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9698 xcb_parts[4].iov_base = (char *) string; 9699 xcb_parts[4].iov_len = string_len * sizeof(xcb_char2b_t); 9700 xcb_parts[5].iov_base = 0; 9701 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9702 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9703 return xcb_ret; 9704 } 9705 9706 9707 /***************************************************************************** 9708 ** 9709 ** xcb_void_cookie_t xcb_image_text_16 9710 ** 9711 ** @param xcb_connection_t *c 9712 ** @param uint8_t string_len 9713 ** @param xcb_drawable_t drawable 9714 ** @param xcb_gcontext_t gc 9715 ** @param int16_t x 9716 ** @param int16_t y 9717 ** @param const xcb_char2b_t *string 9718 ** @returns xcb_void_cookie_t 9719 ** 9720 *****************************************************************************/ 9721 9722 xcb_void_cookie_t 9723 xcb_image_text_16 (xcb_connection_t *c /**< */, 9724 uint8_t string_len /**< */, 9725 xcb_drawable_t drawable /**< */, 9726 xcb_gcontext_t gc /**< */, 9727 int16_t x /**< */, 9728 int16_t y /**< */, 9729 const xcb_char2b_t *string /**< */) 9730 { 9731 static const xcb_protocol_request_t xcb_req = { 9732 /* count */ 4, 9733 /* ext */ 0, 9734 /* opcode */ XCB_IMAGE_TEXT_16, 9735 /* isvoid */ 1 9736 }; 9737 9738 struct iovec xcb_parts[6]; 9739 xcb_void_cookie_t xcb_ret; 9740 xcb_image_text_16_request_t xcb_out; 9741 9742 xcb_out.string_len = string_len; 9743 xcb_out.drawable = drawable; 9744 xcb_out.gc = gc; 9745 xcb_out.x = x; 9746 xcb_out.y = y; 9747 9748 xcb_parts[2].iov_base = (char *) &xcb_out; 9749 xcb_parts[2].iov_len = sizeof(xcb_out); 9750 xcb_parts[3].iov_base = 0; 9751 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9752 xcb_parts[4].iov_base = (char *) string; 9753 xcb_parts[4].iov_len = string_len * sizeof(xcb_char2b_t); 9754 xcb_parts[5].iov_base = 0; 9755 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 9756 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9757 return xcb_ret; 9758 } 9759 9760 9761 /***************************************************************************** 9762 ** 9763 ** xcb_void_cookie_t xcb_create_colormap_checked 9764 ** 9765 ** @param xcb_connection_t *c 9766 ** @param uint8_t alloc 9767 ** @param xcb_colormap_t mid 9768 ** @param xcb_window_t window 9769 ** @param xcb_visualid_t visual 9770 ** @returns xcb_void_cookie_t 9771 ** 9772 *****************************************************************************/ 9773 9774 xcb_void_cookie_t 9775 xcb_create_colormap_checked (xcb_connection_t *c /**< */, 9776 uint8_t alloc /**< */, 9777 xcb_colormap_t mid /**< */, 9778 xcb_window_t window /**< */, 9779 xcb_visualid_t visual /**< */) 9780 { 9781 static const xcb_protocol_request_t xcb_req = { 9782 /* count */ 2, 9783 /* ext */ 0, 9784 /* opcode */ XCB_CREATE_COLORMAP, 9785 /* isvoid */ 1 9786 }; 9787 9788 struct iovec xcb_parts[4]; 9789 xcb_void_cookie_t xcb_ret; 9790 xcb_create_colormap_request_t xcb_out; 9791 9792 xcb_out.alloc = alloc; 9793 xcb_out.mid = mid; 9794 xcb_out.window = window; 9795 xcb_out.visual = visual; 9796 9797 xcb_parts[2].iov_base = (char *) &xcb_out; 9798 xcb_parts[2].iov_len = sizeof(xcb_out); 9799 xcb_parts[3].iov_base = 0; 9800 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9801 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9802 return xcb_ret; 9803 } 9804 9805 9806 /***************************************************************************** 9807 ** 9808 ** xcb_void_cookie_t xcb_create_colormap 9809 ** 9810 ** @param xcb_connection_t *c 9811 ** @param uint8_t alloc 9812 ** @param xcb_colormap_t mid 9813 ** @param xcb_window_t window 9814 ** @param xcb_visualid_t visual 9815 ** @returns xcb_void_cookie_t 9816 ** 9817 *****************************************************************************/ 9818 9819 xcb_void_cookie_t 9820 xcb_create_colormap (xcb_connection_t *c /**< */, 9821 uint8_t alloc /**< */, 9822 xcb_colormap_t mid /**< */, 9823 xcb_window_t window /**< */, 9824 xcb_visualid_t visual /**< */) 9825 { 9826 static const xcb_protocol_request_t xcb_req = { 9827 /* count */ 2, 9828 /* ext */ 0, 9829 /* opcode */ XCB_CREATE_COLORMAP, 9830 /* isvoid */ 1 9831 }; 9832 9833 struct iovec xcb_parts[4]; 9834 xcb_void_cookie_t xcb_ret; 9835 xcb_create_colormap_request_t xcb_out; 9836 9837 xcb_out.alloc = alloc; 9838 xcb_out.mid = mid; 9839 xcb_out.window = window; 9840 xcb_out.visual = visual; 9841 9842 xcb_parts[2].iov_base = (char *) &xcb_out; 9843 xcb_parts[2].iov_len = sizeof(xcb_out); 9844 xcb_parts[3].iov_base = 0; 9845 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9846 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9847 return xcb_ret; 9848 } 9849 9850 9851 /***************************************************************************** 9852 ** 9853 ** xcb_void_cookie_t xcb_free_colormap_checked 9854 ** 9855 ** @param xcb_connection_t *c 9856 ** @param xcb_colormap_t cmap 9857 ** @returns xcb_void_cookie_t 9858 ** 9859 *****************************************************************************/ 9860 9861 xcb_void_cookie_t 9862 xcb_free_colormap_checked (xcb_connection_t *c /**< */, 9863 xcb_colormap_t cmap /**< */) 9864 { 9865 static const xcb_protocol_request_t xcb_req = { 9866 /* count */ 2, 9867 /* ext */ 0, 9868 /* opcode */ XCB_FREE_COLORMAP, 9869 /* isvoid */ 1 9870 }; 9871 9872 struct iovec xcb_parts[4]; 9873 xcb_void_cookie_t xcb_ret; 9874 xcb_free_colormap_request_t xcb_out; 9875 9876 xcb_out.pad0 = 0; 9877 xcb_out.cmap = cmap; 9878 9879 xcb_parts[2].iov_base = (char *) &xcb_out; 9880 xcb_parts[2].iov_len = sizeof(xcb_out); 9881 xcb_parts[3].iov_base = 0; 9882 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9883 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9884 return xcb_ret; 9885 } 9886 9887 9888 /***************************************************************************** 9889 ** 9890 ** xcb_void_cookie_t xcb_free_colormap 9891 ** 9892 ** @param xcb_connection_t *c 9893 ** @param xcb_colormap_t cmap 9894 ** @returns xcb_void_cookie_t 9895 ** 9896 *****************************************************************************/ 9897 9898 xcb_void_cookie_t 9899 xcb_free_colormap (xcb_connection_t *c /**< */, 9900 xcb_colormap_t cmap /**< */) 9901 { 9902 static const xcb_protocol_request_t xcb_req = { 9903 /* count */ 2, 9904 /* ext */ 0, 9905 /* opcode */ XCB_FREE_COLORMAP, 9906 /* isvoid */ 1 9907 }; 9908 9909 struct iovec xcb_parts[4]; 9910 xcb_void_cookie_t xcb_ret; 9911 xcb_free_colormap_request_t xcb_out; 9912 9913 xcb_out.pad0 = 0; 9914 xcb_out.cmap = cmap; 9915 9916 xcb_parts[2].iov_base = (char *) &xcb_out; 9917 xcb_parts[2].iov_len = sizeof(xcb_out); 9918 xcb_parts[3].iov_base = 0; 9919 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9920 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9921 return xcb_ret; 9922 } 9923 9924 9925 /***************************************************************************** 9926 ** 9927 ** xcb_void_cookie_t xcb_copy_colormap_and_free_checked 9928 ** 9929 ** @param xcb_connection_t *c 9930 ** @param xcb_colormap_t mid 9931 ** @param xcb_colormap_t src_cmap 9932 ** @returns xcb_void_cookie_t 9933 ** 9934 *****************************************************************************/ 9935 9936 xcb_void_cookie_t 9937 xcb_copy_colormap_and_free_checked (xcb_connection_t *c /**< */, 9938 xcb_colormap_t mid /**< */, 9939 xcb_colormap_t src_cmap /**< */) 9940 { 9941 static const xcb_protocol_request_t xcb_req = { 9942 /* count */ 2, 9943 /* ext */ 0, 9944 /* opcode */ XCB_COPY_COLORMAP_AND_FREE, 9945 /* isvoid */ 1 9946 }; 9947 9948 struct iovec xcb_parts[4]; 9949 xcb_void_cookie_t xcb_ret; 9950 xcb_copy_colormap_and_free_request_t xcb_out; 9951 9952 xcb_out.pad0 = 0; 9953 xcb_out.mid = mid; 9954 xcb_out.src_cmap = src_cmap; 9955 9956 xcb_parts[2].iov_base = (char *) &xcb_out; 9957 xcb_parts[2].iov_len = sizeof(xcb_out); 9958 xcb_parts[3].iov_base = 0; 9959 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9960 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9961 return xcb_ret; 9962 } 9963 9964 9965 /***************************************************************************** 9966 ** 9967 ** xcb_void_cookie_t xcb_copy_colormap_and_free 9968 ** 9969 ** @param xcb_connection_t *c 9970 ** @param xcb_colormap_t mid 9971 ** @param xcb_colormap_t src_cmap 9972 ** @returns xcb_void_cookie_t 9973 ** 9974 *****************************************************************************/ 9975 9976 xcb_void_cookie_t 9977 xcb_copy_colormap_and_free (xcb_connection_t *c /**< */, 9978 xcb_colormap_t mid /**< */, 9979 xcb_colormap_t src_cmap /**< */) 9980 { 9981 static const xcb_protocol_request_t xcb_req = { 9982 /* count */ 2, 9983 /* ext */ 0, 9984 /* opcode */ XCB_COPY_COLORMAP_AND_FREE, 9985 /* isvoid */ 1 9986 }; 9987 9988 struct iovec xcb_parts[4]; 9989 xcb_void_cookie_t xcb_ret; 9990 xcb_copy_colormap_and_free_request_t xcb_out; 9991 9992 xcb_out.pad0 = 0; 9993 xcb_out.mid = mid; 9994 xcb_out.src_cmap = src_cmap; 9995 9996 xcb_parts[2].iov_base = (char *) &xcb_out; 9997 xcb_parts[2].iov_len = sizeof(xcb_out); 9998 xcb_parts[3].iov_base = 0; 9999 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10000 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10001 return xcb_ret; 10002 } 10003 10004 10005 /***************************************************************************** 10006 ** 10007 ** xcb_void_cookie_t xcb_install_colormap_checked 10008 ** 10009 ** @param xcb_connection_t *c 10010 ** @param xcb_colormap_t cmap 10011 ** @returns xcb_void_cookie_t 10012 ** 10013 *****************************************************************************/ 10014 10015 xcb_void_cookie_t 10016 xcb_install_colormap_checked (xcb_connection_t *c /**< */, 10017 xcb_colormap_t cmap /**< */) 10018 { 10019 static const xcb_protocol_request_t xcb_req = { 10020 /* count */ 2, 10021 /* ext */ 0, 10022 /* opcode */ XCB_INSTALL_COLORMAP, 10023 /* isvoid */ 1 10024 }; 10025 10026 struct iovec xcb_parts[4]; 10027 xcb_void_cookie_t xcb_ret; 10028 xcb_install_colormap_request_t xcb_out; 10029 10030 xcb_out.pad0 = 0; 10031 xcb_out.cmap = cmap; 10032 10033 xcb_parts[2].iov_base = (char *) &xcb_out; 10034 xcb_parts[2].iov_len = sizeof(xcb_out); 10035 xcb_parts[3].iov_base = 0; 10036 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10037 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10038 return xcb_ret; 10039 } 10040 10041 10042 /***************************************************************************** 10043 ** 10044 ** xcb_void_cookie_t xcb_install_colormap 10045 ** 10046 ** @param xcb_connection_t *c 10047 ** @param xcb_colormap_t cmap 10048 ** @returns xcb_void_cookie_t 10049 ** 10050 *****************************************************************************/ 10051 10052 xcb_void_cookie_t 10053 xcb_install_colormap (xcb_connection_t *c /**< */, 10054 xcb_colormap_t cmap /**< */) 10055 { 10056 static const xcb_protocol_request_t xcb_req = { 10057 /* count */ 2, 10058 /* ext */ 0, 10059 /* opcode */ XCB_INSTALL_COLORMAP, 10060 /* isvoid */ 1 10061 }; 10062 10063 struct iovec xcb_parts[4]; 10064 xcb_void_cookie_t xcb_ret; 10065 xcb_install_colormap_request_t xcb_out; 10066 10067 xcb_out.pad0 = 0; 10068 xcb_out.cmap = cmap; 10069 10070 xcb_parts[2].iov_base = (char *) &xcb_out; 10071 xcb_parts[2].iov_len = sizeof(xcb_out); 10072 xcb_parts[3].iov_base = 0; 10073 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10074 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10075 return xcb_ret; 10076 } 10077 10078 10079 /***************************************************************************** 10080 ** 10081 ** xcb_void_cookie_t xcb_uninstall_colormap_checked 10082 ** 10083 ** @param xcb_connection_t *c 10084 ** @param xcb_colormap_t cmap 10085 ** @returns xcb_void_cookie_t 10086 ** 10087 *****************************************************************************/ 10088 10089 xcb_void_cookie_t 10090 xcb_uninstall_colormap_checked (xcb_connection_t *c /**< */, 10091 xcb_colormap_t cmap /**< */) 10092 { 10093 static const xcb_protocol_request_t xcb_req = { 10094 /* count */ 2, 10095 /* ext */ 0, 10096 /* opcode */ XCB_UNINSTALL_COLORMAP, 10097 /* isvoid */ 1 10098 }; 10099 10100 struct iovec xcb_parts[4]; 10101 xcb_void_cookie_t xcb_ret; 10102 xcb_uninstall_colormap_request_t xcb_out; 10103 10104 xcb_out.pad0 = 0; 10105 xcb_out.cmap = cmap; 10106 10107 xcb_parts[2].iov_base = (char *) &xcb_out; 10108 xcb_parts[2].iov_len = sizeof(xcb_out); 10109 xcb_parts[3].iov_base = 0; 10110 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10111 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10112 return xcb_ret; 10113 } 10114 10115 10116 /***************************************************************************** 10117 ** 10118 ** xcb_void_cookie_t xcb_uninstall_colormap 10119 ** 10120 ** @param xcb_connection_t *c 10121 ** @param xcb_colormap_t cmap 10122 ** @returns xcb_void_cookie_t 10123 ** 10124 *****************************************************************************/ 10125 10126 xcb_void_cookie_t 10127 xcb_uninstall_colormap (xcb_connection_t *c /**< */, 10128 xcb_colormap_t cmap /**< */) 10129 { 10130 static const xcb_protocol_request_t xcb_req = { 10131 /* count */ 2, 10132 /* ext */ 0, 10133 /* opcode */ XCB_UNINSTALL_COLORMAP, 10134 /* isvoid */ 1 10135 }; 10136 10137 struct iovec xcb_parts[4]; 10138 xcb_void_cookie_t xcb_ret; 10139 xcb_uninstall_colormap_request_t xcb_out; 10140 10141 xcb_out.pad0 = 0; 10142 xcb_out.cmap = cmap; 10143 10144 xcb_parts[2].iov_base = (char *) &xcb_out; 10145 xcb_parts[2].iov_len = sizeof(xcb_out); 10146 xcb_parts[3].iov_base = 0; 10147 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10148 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10149 return xcb_ret; 10150 } 10151 10152 10153 /***************************************************************************** 10154 ** 10155 ** xcb_list_installed_colormaps_cookie_t xcb_list_installed_colormaps 10156 ** 10157 ** @param xcb_connection_t *c 10158 ** @param xcb_window_t window 10159 ** @returns xcb_list_installed_colormaps_cookie_t 10160 ** 10161 *****************************************************************************/ 10162 10163 xcb_list_installed_colormaps_cookie_t 10164 xcb_list_installed_colormaps (xcb_connection_t *c /**< */, 10165 xcb_window_t window /**< */) 10166 { 10167 static const xcb_protocol_request_t xcb_req = { 10168 /* count */ 2, 10169 /* ext */ 0, 10170 /* opcode */ XCB_LIST_INSTALLED_COLORMAPS, 10171 /* isvoid */ 0 10172 }; 10173 10174 struct iovec xcb_parts[4]; 10175 xcb_list_installed_colormaps_cookie_t xcb_ret; 10176 xcb_list_installed_colormaps_request_t xcb_out; 10177 10178 xcb_out.pad0 = 0; 10179 xcb_out.window = window; 10180 10181 xcb_parts[2].iov_base = (char *) &xcb_out; 10182 xcb_parts[2].iov_len = sizeof(xcb_out); 10183 xcb_parts[3].iov_base = 0; 10184 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10185 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10186 return xcb_ret; 10187 } 10188 10189 10190 /***************************************************************************** 10191 ** 10192 ** xcb_list_installed_colormaps_cookie_t xcb_list_installed_colormaps_unchecked 10193 ** 10194 ** @param xcb_connection_t *c 10195 ** @param xcb_window_t window 10196 ** @returns xcb_list_installed_colormaps_cookie_t 10197 ** 10198 *****************************************************************************/ 10199 10200 xcb_list_installed_colormaps_cookie_t 10201 xcb_list_installed_colormaps_unchecked (xcb_connection_t *c /**< */, 10202 xcb_window_t window /**< */) 10203 { 10204 static const xcb_protocol_request_t xcb_req = { 10205 /* count */ 2, 10206 /* ext */ 0, 10207 /* opcode */ XCB_LIST_INSTALLED_COLORMAPS, 10208 /* isvoid */ 0 10209 }; 10210 10211 struct iovec xcb_parts[4]; 10212 xcb_list_installed_colormaps_cookie_t xcb_ret; 10213 xcb_list_installed_colormaps_request_t xcb_out; 10214 10215 xcb_out.pad0 = 0; 10216 xcb_out.window = window; 10217 10218 xcb_parts[2].iov_base = (char *) &xcb_out; 10219 xcb_parts[2].iov_len = sizeof(xcb_out); 10220 xcb_parts[3].iov_base = 0; 10221 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10222 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10223 return xcb_ret; 10224 } 10225 10226 10227 /***************************************************************************** 10228 ** 10229 ** xcb_colormap_t * xcb_list_installed_colormaps_cmaps 10230 ** 10231 ** @param const xcb_list_installed_colormaps_reply_t *R 10232 ** @returns xcb_colormap_t * 10233 ** 10234 *****************************************************************************/ 10235 10236 xcb_colormap_t * 10237 xcb_list_installed_colormaps_cmaps (const xcb_list_installed_colormaps_reply_t *R /**< */) 10238 { 10239 return (xcb_colormap_t *) (R + 1); 10240 } 10241 10242 10243 /***************************************************************************** 10244 ** 10245 ** int xcb_list_installed_colormaps_cmaps_length 10246 ** 10247 ** @param const xcb_list_installed_colormaps_reply_t *R 10248 ** @returns int 10249 ** 10250 *****************************************************************************/ 10251 10252 int 10253 xcb_list_installed_colormaps_cmaps_length (const xcb_list_installed_colormaps_reply_t *R /**< */) 10254 { 10255 return R->cmaps_len; 10256 } 10257 10258 10259 /***************************************************************************** 10260 ** 10261 ** xcb_generic_iterator_t xcb_list_installed_colormaps_cmaps_end 10262 ** 10263 ** @param const xcb_list_installed_colormaps_reply_t *R 10264 ** @returns xcb_generic_iterator_t 10265 ** 10266 *****************************************************************************/ 10267 10268 xcb_generic_iterator_t 10269 xcb_list_installed_colormaps_cmaps_end (const xcb_list_installed_colormaps_reply_t *R /**< */) 10270 { 10271 xcb_generic_iterator_t i; 10272 i.data = ((xcb_colormap_t *) (R + 1)) + (R->cmaps_len); 10273 i.rem = 0; 10274 i.index = (char *) i.data - (char *) R; 10275 return i; 10276 } 10277 10278 10279 /***************************************************************************** 10280 ** 10281 ** xcb_list_installed_colormaps_reply_t * xcb_list_installed_colormaps_reply 10282 ** 10283 ** @param xcb_connection_t *c 10284 ** @param xcb_list_installed_colormaps_cookie_t cookie 10285 ** @param xcb_generic_error_t **e 10286 ** @returns xcb_list_installed_colormaps_reply_t * 10287 ** 10288 *****************************************************************************/ 10289 10290 xcb_list_installed_colormaps_reply_t * 10291 xcb_list_installed_colormaps_reply (xcb_connection_t *c /**< */, 10292 xcb_list_installed_colormaps_cookie_t cookie /**< */, 10293 xcb_generic_error_t **e /**< */) 10294 { 10295 return (xcb_list_installed_colormaps_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10296 } 10297 10298 10299 /***************************************************************************** 10300 ** 10301 ** xcb_alloc_color_cookie_t xcb_alloc_color 10302 ** 10303 ** @param xcb_connection_t *c 10304 ** @param xcb_colormap_t cmap 10305 ** @param uint16_t red 10306 ** @param uint16_t green 10307 ** @param uint16_t blue 10308 ** @returns xcb_alloc_color_cookie_t 10309 ** 10310 *****************************************************************************/ 10311 10312 xcb_alloc_color_cookie_t 10313 xcb_alloc_color (xcb_connection_t *c /**< */, 10314 xcb_colormap_t cmap /**< */, 10315 uint16_t red /**< */, 10316 uint16_t green /**< */, 10317 uint16_t blue /**< */) 10318 { 10319 static const xcb_protocol_request_t xcb_req = { 10320 /* count */ 2, 10321 /* ext */ 0, 10322 /* opcode */ XCB_ALLOC_COLOR, 10323 /* isvoid */ 0 10324 }; 10325 10326 struct iovec xcb_parts[4]; 10327 xcb_alloc_color_cookie_t xcb_ret; 10328 xcb_alloc_color_request_t xcb_out; 10329 10330 xcb_out.pad0 = 0; 10331 xcb_out.cmap = cmap; 10332 xcb_out.red = red; 10333 xcb_out.green = green; 10334 xcb_out.blue = blue; 10335 memset(xcb_out.pad1, 0, 2); 10336 10337 xcb_parts[2].iov_base = (char *) &xcb_out; 10338 xcb_parts[2].iov_len = sizeof(xcb_out); 10339 xcb_parts[3].iov_base = 0; 10340 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10341 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10342 return xcb_ret; 10343 } 10344 10345 10346 /***************************************************************************** 10347 ** 10348 ** xcb_alloc_color_cookie_t xcb_alloc_color_unchecked 10349 ** 10350 ** @param xcb_connection_t *c 10351 ** @param xcb_colormap_t cmap 10352 ** @param uint16_t red 10353 ** @param uint16_t green 10354 ** @param uint16_t blue 10355 ** @returns xcb_alloc_color_cookie_t 10356 ** 10357 *****************************************************************************/ 10358 10359 xcb_alloc_color_cookie_t 10360 xcb_alloc_color_unchecked (xcb_connection_t *c /**< */, 10361 xcb_colormap_t cmap /**< */, 10362 uint16_t red /**< */, 10363 uint16_t green /**< */, 10364 uint16_t blue /**< */) 10365 { 10366 static const xcb_protocol_request_t xcb_req = { 10367 /* count */ 2, 10368 /* ext */ 0, 10369 /* opcode */ XCB_ALLOC_COLOR, 10370 /* isvoid */ 0 10371 }; 10372 10373 struct iovec xcb_parts[4]; 10374 xcb_alloc_color_cookie_t xcb_ret; 10375 xcb_alloc_color_request_t xcb_out; 10376 10377 xcb_out.pad0 = 0; 10378 xcb_out.cmap = cmap; 10379 xcb_out.red = red; 10380 xcb_out.green = green; 10381 xcb_out.blue = blue; 10382 memset(xcb_out.pad1, 0, 2); 10383 10384 xcb_parts[2].iov_base = (char *) &xcb_out; 10385 xcb_parts[2].iov_len = sizeof(xcb_out); 10386 xcb_parts[3].iov_base = 0; 10387 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10388 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10389 return xcb_ret; 10390 } 10391 10392 10393 /***************************************************************************** 10394 ** 10395 ** xcb_alloc_color_reply_t * xcb_alloc_color_reply 10396 ** 10397 ** @param xcb_connection_t *c 10398 ** @param xcb_alloc_color_cookie_t cookie 10399 ** @param xcb_generic_error_t **e 10400 ** @returns xcb_alloc_color_reply_t * 10401 ** 10402 *****************************************************************************/ 10403 10404 xcb_alloc_color_reply_t * 10405 xcb_alloc_color_reply (xcb_connection_t *c /**< */, 10406 xcb_alloc_color_cookie_t cookie /**< */, 10407 xcb_generic_error_t **e /**< */) 10408 { 10409 return (xcb_alloc_color_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10410 } 10411 10412 10413 /***************************************************************************** 10414 ** 10415 ** xcb_alloc_named_color_cookie_t xcb_alloc_named_color 10416 ** 10417 ** @param xcb_connection_t *c 10418 ** @param xcb_colormap_t cmap 10419 ** @param uint16_t name_len 10420 ** @param const char *name 10421 ** @returns xcb_alloc_named_color_cookie_t 10422 ** 10423 *****************************************************************************/ 10424 10425 xcb_alloc_named_color_cookie_t 10426 xcb_alloc_named_color (xcb_connection_t *c /**< */, 10427 xcb_colormap_t cmap /**< */, 10428 uint16_t name_len /**< */, 10429 const char *name /**< */) 10430 { 10431 static const xcb_protocol_request_t xcb_req = { 10432 /* count */ 4, 10433 /* ext */ 0, 10434 /* opcode */ XCB_ALLOC_NAMED_COLOR, 10435 /* isvoid */ 0 10436 }; 10437 10438 struct iovec xcb_parts[6]; 10439 xcb_alloc_named_color_cookie_t xcb_ret; 10440 xcb_alloc_named_color_request_t xcb_out; 10441 10442 xcb_out.pad0 = 0; 10443 xcb_out.cmap = cmap; 10444 xcb_out.name_len = name_len; 10445 memset(xcb_out.pad1, 0, 2); 10446 10447 xcb_parts[2].iov_base = (char *) &xcb_out; 10448 xcb_parts[2].iov_len = sizeof(xcb_out); 10449 xcb_parts[3].iov_base = 0; 10450 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10451 xcb_parts[4].iov_base = (char *) name; 10452 xcb_parts[4].iov_len = name_len * sizeof(char); 10453 xcb_parts[5].iov_base = 0; 10454 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10455 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10456 return xcb_ret; 10457 } 10458 10459 10460 /***************************************************************************** 10461 ** 10462 ** xcb_alloc_named_color_cookie_t xcb_alloc_named_color_unchecked 10463 ** 10464 ** @param xcb_connection_t *c 10465 ** @param xcb_colormap_t cmap 10466 ** @param uint16_t name_len 10467 ** @param const char *name 10468 ** @returns xcb_alloc_named_color_cookie_t 10469 ** 10470 *****************************************************************************/ 10471 10472 xcb_alloc_named_color_cookie_t 10473 xcb_alloc_named_color_unchecked (xcb_connection_t *c /**< */, 10474 xcb_colormap_t cmap /**< */, 10475 uint16_t name_len /**< */, 10476 const char *name /**< */) 10477 { 10478 static const xcb_protocol_request_t xcb_req = { 10479 /* count */ 4, 10480 /* ext */ 0, 10481 /* opcode */ XCB_ALLOC_NAMED_COLOR, 10482 /* isvoid */ 0 10483 }; 10484 10485 struct iovec xcb_parts[6]; 10486 xcb_alloc_named_color_cookie_t xcb_ret; 10487 xcb_alloc_named_color_request_t xcb_out; 10488 10489 xcb_out.pad0 = 0; 10490 xcb_out.cmap = cmap; 10491 xcb_out.name_len = name_len; 10492 memset(xcb_out.pad1, 0, 2); 10493 10494 xcb_parts[2].iov_base = (char *) &xcb_out; 10495 xcb_parts[2].iov_len = sizeof(xcb_out); 10496 xcb_parts[3].iov_base = 0; 10497 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10498 xcb_parts[4].iov_base = (char *) name; 10499 xcb_parts[4].iov_len = name_len * sizeof(char); 10500 xcb_parts[5].iov_base = 0; 10501 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10502 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10503 return xcb_ret; 10504 } 10505 10506 10507 /***************************************************************************** 10508 ** 10509 ** xcb_alloc_named_color_reply_t * xcb_alloc_named_color_reply 10510 ** 10511 ** @param xcb_connection_t *c 10512 ** @param xcb_alloc_named_color_cookie_t cookie 10513 ** @param xcb_generic_error_t **e 10514 ** @returns xcb_alloc_named_color_reply_t * 10515 ** 10516 *****************************************************************************/ 10517 10518 xcb_alloc_named_color_reply_t * 10519 xcb_alloc_named_color_reply (xcb_connection_t *c /**< */, 10520 xcb_alloc_named_color_cookie_t cookie /**< */, 10521 xcb_generic_error_t **e /**< */) 10522 { 10523 return (xcb_alloc_named_color_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10524 } 10525 10526 10527 /***************************************************************************** 10528 ** 10529 ** xcb_alloc_color_cells_cookie_t xcb_alloc_color_cells 10530 ** 10531 ** @param xcb_connection_t *c 10532 ** @param uint8_t contiguous 10533 ** @param xcb_colormap_t cmap 10534 ** @param uint16_t colors 10535 ** @param uint16_t planes 10536 ** @returns xcb_alloc_color_cells_cookie_t 10537 ** 10538 *****************************************************************************/ 10539 10540 xcb_alloc_color_cells_cookie_t 10541 xcb_alloc_color_cells (xcb_connection_t *c /**< */, 10542 uint8_t contiguous /**< */, 10543 xcb_colormap_t cmap /**< */, 10544 uint16_t colors /**< */, 10545 uint16_t planes /**< */) 10546 { 10547 static const xcb_protocol_request_t xcb_req = { 10548 /* count */ 2, 10549 /* ext */ 0, 10550 /* opcode */ XCB_ALLOC_COLOR_CELLS, 10551 /* isvoid */ 0 10552 }; 10553 10554 struct iovec xcb_parts[4]; 10555 xcb_alloc_color_cells_cookie_t xcb_ret; 10556 xcb_alloc_color_cells_request_t xcb_out; 10557 10558 xcb_out.contiguous = contiguous; 10559 xcb_out.cmap = cmap; 10560 xcb_out.colors = colors; 10561 xcb_out.planes = planes; 10562 10563 xcb_parts[2].iov_base = (char *) &xcb_out; 10564 xcb_parts[2].iov_len = sizeof(xcb_out); 10565 xcb_parts[3].iov_base = 0; 10566 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10567 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10568 return xcb_ret; 10569 } 10570 10571 10572 /***************************************************************************** 10573 ** 10574 ** xcb_alloc_color_cells_cookie_t xcb_alloc_color_cells_unchecked 10575 ** 10576 ** @param xcb_connection_t *c 10577 ** @param uint8_t contiguous 10578 ** @param xcb_colormap_t cmap 10579 ** @param uint16_t colors 10580 ** @param uint16_t planes 10581 ** @returns xcb_alloc_color_cells_cookie_t 10582 ** 10583 *****************************************************************************/ 10584 10585 xcb_alloc_color_cells_cookie_t 10586 xcb_alloc_color_cells_unchecked (xcb_connection_t *c /**< */, 10587 uint8_t contiguous /**< */, 10588 xcb_colormap_t cmap /**< */, 10589 uint16_t colors /**< */, 10590 uint16_t planes /**< */) 10591 { 10592 static const xcb_protocol_request_t xcb_req = { 10593 /* count */ 2, 10594 /* ext */ 0, 10595 /* opcode */ XCB_ALLOC_COLOR_CELLS, 10596 /* isvoid */ 0 10597 }; 10598 10599 struct iovec xcb_parts[4]; 10600 xcb_alloc_color_cells_cookie_t xcb_ret; 10601 xcb_alloc_color_cells_request_t xcb_out; 10602 10603 xcb_out.contiguous = contiguous; 10604 xcb_out.cmap = cmap; 10605 xcb_out.colors = colors; 10606 xcb_out.planes = planes; 10607 10608 xcb_parts[2].iov_base = (char *) &xcb_out; 10609 xcb_parts[2].iov_len = sizeof(xcb_out); 10610 xcb_parts[3].iov_base = 0; 10611 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10612 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10613 return xcb_ret; 10614 } 10615 10616 10617 /***************************************************************************** 10618 ** 10619 ** uint32_t * xcb_alloc_color_cells_pixels 10620 ** 10621 ** @param const xcb_alloc_color_cells_reply_t *R 10622 ** @returns uint32_t * 10623 ** 10624 *****************************************************************************/ 10625 10626 uint32_t * 10627 xcb_alloc_color_cells_pixels (const xcb_alloc_color_cells_reply_t *R /**< */) 10628 { 10629 return (uint32_t *) (R + 1); 10630 } 10631 10632 10633 /***************************************************************************** 10634 ** 10635 ** int xcb_alloc_color_cells_pixels_length 10636 ** 10637 ** @param const xcb_alloc_color_cells_reply_t *R 10638 ** @returns int 10639 ** 10640 *****************************************************************************/ 10641 10642 int 10643 xcb_alloc_color_cells_pixels_length (const xcb_alloc_color_cells_reply_t *R /**< */) 10644 { 10645 return R->pixels_len; 10646 } 10647 10648 10649 /***************************************************************************** 10650 ** 10651 ** xcb_generic_iterator_t xcb_alloc_color_cells_pixels_end 10652 ** 10653 ** @param const xcb_alloc_color_cells_reply_t *R 10654 ** @returns xcb_generic_iterator_t 10655 ** 10656 *****************************************************************************/ 10657 10658 xcb_generic_iterator_t 10659 xcb_alloc_color_cells_pixels_end (const xcb_alloc_color_cells_reply_t *R /**< */) 10660 { 10661 xcb_generic_iterator_t i; 10662 i.data = ((uint32_t *) (R + 1)) + (R->pixels_len); 10663 i.rem = 0; 10664 i.index = (char *) i.data - (char *) R; 10665 return i; 10666 } 10667 10668 10669 /***************************************************************************** 10670 ** 10671 ** uint32_t * xcb_alloc_color_cells_masks 10672 ** 10673 ** @param const xcb_alloc_color_cells_reply_t *R 10674 ** @returns uint32_t * 10675 ** 10676 *****************************************************************************/ 10677 10678 uint32_t * 10679 xcb_alloc_color_cells_masks (const xcb_alloc_color_cells_reply_t *R /**< */) 10680 { 10681 xcb_generic_iterator_t prev = xcb_alloc_color_cells_pixels_end(R); 10682 return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0); 10683 } 10684 10685 10686 /***************************************************************************** 10687 ** 10688 ** int xcb_alloc_color_cells_masks_length 10689 ** 10690 ** @param const xcb_alloc_color_cells_reply_t *R 10691 ** @returns int 10692 ** 10693 *****************************************************************************/ 10694 10695 int 10696 xcb_alloc_color_cells_masks_length (const xcb_alloc_color_cells_reply_t *R /**< */) 10697 { 10698 return R->masks_len; 10699 } 10700 10701 10702 /***************************************************************************** 10703 ** 10704 ** xcb_generic_iterator_t xcb_alloc_color_cells_masks_end 10705 ** 10706 ** @param const xcb_alloc_color_cells_reply_t *R 10707 ** @returns xcb_generic_iterator_t 10708 ** 10709 *****************************************************************************/ 10710 10711 xcb_generic_iterator_t 10712 xcb_alloc_color_cells_masks_end (const xcb_alloc_color_cells_reply_t *R /**< */) 10713 { 10714 xcb_generic_iterator_t i; 10715 xcb_generic_iterator_t child = xcb_alloc_color_cells_pixels_end(R); 10716 i.data = ((uint32_t *) child.data) + (R->masks_len); 10717 i.rem = 0; 10718 i.index = (char *) i.data - (char *) R; 10719 return i; 10720 } 10721 10722 10723 /***************************************************************************** 10724 ** 10725 ** xcb_alloc_color_cells_reply_t * xcb_alloc_color_cells_reply 10726 ** 10727 ** @param xcb_connection_t *c 10728 ** @param xcb_alloc_color_cells_cookie_t cookie 10729 ** @param xcb_generic_error_t **e 10730 ** @returns xcb_alloc_color_cells_reply_t * 10731 ** 10732 *****************************************************************************/ 10733 10734 xcb_alloc_color_cells_reply_t * 10735 xcb_alloc_color_cells_reply (xcb_connection_t *c /**< */, 10736 xcb_alloc_color_cells_cookie_t cookie /**< */, 10737 xcb_generic_error_t **e /**< */) 10738 { 10739 return (xcb_alloc_color_cells_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10740 } 10741 10742 10743 /***************************************************************************** 10744 ** 10745 ** xcb_alloc_color_planes_cookie_t xcb_alloc_color_planes 10746 ** 10747 ** @param xcb_connection_t *c 10748 ** @param uint8_t contiguous 10749 ** @param xcb_colormap_t cmap 10750 ** @param uint16_t colors 10751 ** @param uint16_t reds 10752 ** @param uint16_t greens 10753 ** @param uint16_t blues 10754 ** @returns xcb_alloc_color_planes_cookie_t 10755 ** 10756 *****************************************************************************/ 10757 10758 xcb_alloc_color_planes_cookie_t 10759 xcb_alloc_color_planes (xcb_connection_t *c /**< */, 10760 uint8_t contiguous /**< */, 10761 xcb_colormap_t cmap /**< */, 10762 uint16_t colors /**< */, 10763 uint16_t reds /**< */, 10764 uint16_t greens /**< */, 10765 uint16_t blues /**< */) 10766 { 10767 static const xcb_protocol_request_t xcb_req = { 10768 /* count */ 2, 10769 /* ext */ 0, 10770 /* opcode */ XCB_ALLOC_COLOR_PLANES, 10771 /* isvoid */ 0 10772 }; 10773 10774 struct iovec xcb_parts[4]; 10775 xcb_alloc_color_planes_cookie_t xcb_ret; 10776 xcb_alloc_color_planes_request_t xcb_out; 10777 10778 xcb_out.contiguous = contiguous; 10779 xcb_out.cmap = cmap; 10780 xcb_out.colors = colors; 10781 xcb_out.reds = reds; 10782 xcb_out.greens = greens; 10783 xcb_out.blues = blues; 10784 10785 xcb_parts[2].iov_base = (char *) &xcb_out; 10786 xcb_parts[2].iov_len = sizeof(xcb_out); 10787 xcb_parts[3].iov_base = 0; 10788 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10789 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10790 return xcb_ret; 10791 } 10792 10793 10794 /***************************************************************************** 10795 ** 10796 ** xcb_alloc_color_planes_cookie_t xcb_alloc_color_planes_unchecked 10797 ** 10798 ** @param xcb_connection_t *c 10799 ** @param uint8_t contiguous 10800 ** @param xcb_colormap_t cmap 10801 ** @param uint16_t colors 10802 ** @param uint16_t reds 10803 ** @param uint16_t greens 10804 ** @param uint16_t blues 10805 ** @returns xcb_alloc_color_planes_cookie_t 10806 ** 10807 *****************************************************************************/ 10808 10809 xcb_alloc_color_planes_cookie_t 10810 xcb_alloc_color_planes_unchecked (xcb_connection_t *c /**< */, 10811 uint8_t contiguous /**< */, 10812 xcb_colormap_t cmap /**< */, 10813 uint16_t colors /**< */, 10814 uint16_t reds /**< */, 10815 uint16_t greens /**< */, 10816 uint16_t blues /**< */) 10817 { 10818 static const xcb_protocol_request_t xcb_req = { 10819 /* count */ 2, 10820 /* ext */ 0, 10821 /* opcode */ XCB_ALLOC_COLOR_PLANES, 10822 /* isvoid */ 0 10823 }; 10824 10825 struct iovec xcb_parts[4]; 10826 xcb_alloc_color_planes_cookie_t xcb_ret; 10827 xcb_alloc_color_planes_request_t xcb_out; 10828 10829 xcb_out.contiguous = contiguous; 10830 xcb_out.cmap = cmap; 10831 xcb_out.colors = colors; 10832 xcb_out.reds = reds; 10833 xcb_out.greens = greens; 10834 xcb_out.blues = blues; 10835 10836 xcb_parts[2].iov_base = (char *) &xcb_out; 10837 xcb_parts[2].iov_len = sizeof(xcb_out); 10838 xcb_parts[3].iov_base = 0; 10839 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10840 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10841 return xcb_ret; 10842 } 10843 10844 10845 /***************************************************************************** 10846 ** 10847 ** uint32_t * xcb_alloc_color_planes_pixels 10848 ** 10849 ** @param const xcb_alloc_color_planes_reply_t *R 10850 ** @returns uint32_t * 10851 ** 10852 *****************************************************************************/ 10853 10854 uint32_t * 10855 xcb_alloc_color_planes_pixels (const xcb_alloc_color_planes_reply_t *R /**< */) 10856 { 10857 return (uint32_t *) (R + 1); 10858 } 10859 10860 10861 /***************************************************************************** 10862 ** 10863 ** int xcb_alloc_color_planes_pixels_length 10864 ** 10865 ** @param const xcb_alloc_color_planes_reply_t *R 10866 ** @returns int 10867 ** 10868 *****************************************************************************/ 10869 10870 int 10871 xcb_alloc_color_planes_pixels_length (const xcb_alloc_color_planes_reply_t *R /**< */) 10872 { 10873 return R->pixels_len; 10874 } 10875 10876 10877 /***************************************************************************** 10878 ** 10879 ** xcb_generic_iterator_t xcb_alloc_color_planes_pixels_end 10880 ** 10881 ** @param const xcb_alloc_color_planes_reply_t *R 10882 ** @returns xcb_generic_iterator_t 10883 ** 10884 *****************************************************************************/ 10885 10886 xcb_generic_iterator_t 10887 xcb_alloc_color_planes_pixels_end (const xcb_alloc_color_planes_reply_t *R /**< */) 10888 { 10889 xcb_generic_iterator_t i; 10890 i.data = ((uint32_t *) (R + 1)) + (R->pixels_len); 10891 i.rem = 0; 10892 i.index = (char *) i.data - (char *) R; 10893 return i; 10894 } 10895 10896 10897 /***************************************************************************** 10898 ** 10899 ** xcb_alloc_color_planes_reply_t * xcb_alloc_color_planes_reply 10900 ** 10901 ** @param xcb_connection_t *c 10902 ** @param xcb_alloc_color_planes_cookie_t cookie 10903 ** @param xcb_generic_error_t **e 10904 ** @returns xcb_alloc_color_planes_reply_t * 10905 ** 10906 *****************************************************************************/ 10907 10908 xcb_alloc_color_planes_reply_t * 10909 xcb_alloc_color_planes_reply (xcb_connection_t *c /**< */, 10910 xcb_alloc_color_planes_cookie_t cookie /**< */, 10911 xcb_generic_error_t **e /**< */) 10912 { 10913 return (xcb_alloc_color_planes_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10914 } 10915 10916 10917 /***************************************************************************** 10918 ** 10919 ** xcb_void_cookie_t xcb_free_colors_checked 10920 ** 10921 ** @param xcb_connection_t *c 10922 ** @param xcb_colormap_t cmap 10923 ** @param uint32_t plane_mask 10924 ** @param uint32_t pixels_len 10925 ** @param const uint32_t *pixels 10926 ** @returns xcb_void_cookie_t 10927 ** 10928 *****************************************************************************/ 10929 10930 xcb_void_cookie_t 10931 xcb_free_colors_checked (xcb_connection_t *c /**< */, 10932 xcb_colormap_t cmap /**< */, 10933 uint32_t plane_mask /**< */, 10934 uint32_t pixels_len /**< */, 10935 const uint32_t *pixels /**< */) 10936 { 10937 static const xcb_protocol_request_t xcb_req = { 10938 /* count */ 4, 10939 /* ext */ 0, 10940 /* opcode */ XCB_FREE_COLORS, 10941 /* isvoid */ 1 10942 }; 10943 10944 struct iovec xcb_parts[6]; 10945 xcb_void_cookie_t xcb_ret; 10946 xcb_free_colors_request_t xcb_out; 10947 10948 xcb_out.pad0 = 0; 10949 xcb_out.cmap = cmap; 10950 xcb_out.plane_mask = plane_mask; 10951 10952 xcb_parts[2].iov_base = (char *) &xcb_out; 10953 xcb_parts[2].iov_len = sizeof(xcb_out); 10954 xcb_parts[3].iov_base = 0; 10955 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10956 xcb_parts[4].iov_base = (char *) pixels; 10957 xcb_parts[4].iov_len = pixels_len * sizeof(uint32_t); 10958 xcb_parts[5].iov_base = 0; 10959 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10960 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10961 return xcb_ret; 10962 } 10963 10964 10965 /***************************************************************************** 10966 ** 10967 ** xcb_void_cookie_t xcb_free_colors 10968 ** 10969 ** @param xcb_connection_t *c 10970 ** @param xcb_colormap_t cmap 10971 ** @param uint32_t plane_mask 10972 ** @param uint32_t pixels_len 10973 ** @param const uint32_t *pixels 10974 ** @returns xcb_void_cookie_t 10975 ** 10976 *****************************************************************************/ 10977 10978 xcb_void_cookie_t 10979 xcb_free_colors (xcb_connection_t *c /**< */, 10980 xcb_colormap_t cmap /**< */, 10981 uint32_t plane_mask /**< */, 10982 uint32_t pixels_len /**< */, 10983 const uint32_t *pixels /**< */) 10984 { 10985 static const xcb_protocol_request_t xcb_req = { 10986 /* count */ 4, 10987 /* ext */ 0, 10988 /* opcode */ XCB_FREE_COLORS, 10989 /* isvoid */ 1 10990 }; 10991 10992 struct iovec xcb_parts[6]; 10993 xcb_void_cookie_t xcb_ret; 10994 xcb_free_colors_request_t xcb_out; 10995 10996 xcb_out.pad0 = 0; 10997 xcb_out.cmap = cmap; 10998 xcb_out.plane_mask = plane_mask; 10999 11000 xcb_parts[2].iov_base = (char *) &xcb_out; 11001 xcb_parts[2].iov_len = sizeof(xcb_out); 11002 xcb_parts[3].iov_base = 0; 11003 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11004 xcb_parts[4].iov_base = (char *) pixels; 11005 xcb_parts[4].iov_len = pixels_len * sizeof(uint32_t); 11006 xcb_parts[5].iov_base = 0; 11007 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11008 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11009 return xcb_ret; 11010 } 11011 11012 11013 /***************************************************************************** 11014 ** 11015 ** void xcb_coloritem_next 11016 ** 11017 ** @param xcb_coloritem_iterator_t *i 11018 ** @returns void 11019 ** 11020 *****************************************************************************/ 11021 11022 void 11023 xcb_coloritem_next (xcb_coloritem_iterator_t *i /**< */) 11024 { 11025 --i->rem; 11026 ++i->data; 11027 i->index += sizeof(xcb_coloritem_t); 11028 } 11029 11030 11031 /***************************************************************************** 11032 ** 11033 ** xcb_generic_iterator_t xcb_coloritem_end 11034 ** 11035 ** @param xcb_coloritem_iterator_t i 11036 ** @returns xcb_generic_iterator_t 11037 ** 11038 *****************************************************************************/ 11039 11040 xcb_generic_iterator_t 11041 xcb_coloritem_end (xcb_coloritem_iterator_t i /**< */) 11042 { 11043 xcb_generic_iterator_t ret; 11044 ret.data = i.data + i.rem; 11045 ret.index = i.index + ((char *) ret.data - (char *) i.data); 11046 ret.rem = 0; 11047 return ret; 11048 } 11049 11050 11051 /***************************************************************************** 11052 ** 11053 ** xcb_void_cookie_t xcb_store_colors_checked 11054 ** 11055 ** @param xcb_connection_t *c 11056 ** @param xcb_colormap_t cmap 11057 ** @param uint32_t items_len 11058 ** @param const xcb_coloritem_t *items 11059 ** @returns xcb_void_cookie_t 11060 ** 11061 *****************************************************************************/ 11062 11063 xcb_void_cookie_t 11064 xcb_store_colors_checked (xcb_connection_t *c /**< */, 11065 xcb_colormap_t cmap /**< */, 11066 uint32_t items_len /**< */, 11067 const xcb_coloritem_t *items /**< */) 11068 { 11069 static const xcb_protocol_request_t xcb_req = { 11070 /* count */ 4, 11071 /* ext */ 0, 11072 /* opcode */ XCB_STORE_COLORS, 11073 /* isvoid */ 1 11074 }; 11075 11076 struct iovec xcb_parts[6]; 11077 xcb_void_cookie_t xcb_ret; 11078 xcb_store_colors_request_t xcb_out; 11079 11080 xcb_out.pad0 = 0; 11081 xcb_out.cmap = cmap; 11082 11083 xcb_parts[2].iov_base = (char *) &xcb_out; 11084 xcb_parts[2].iov_len = sizeof(xcb_out); 11085 xcb_parts[3].iov_base = 0; 11086 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11087 xcb_parts[4].iov_base = (char *) items; 11088 xcb_parts[4].iov_len = items_len * sizeof(xcb_coloritem_t); 11089 xcb_parts[5].iov_base = 0; 11090 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11091 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11092 return xcb_ret; 11093 } 11094 11095 11096 /***************************************************************************** 11097 ** 11098 ** xcb_void_cookie_t xcb_store_colors 11099 ** 11100 ** @param xcb_connection_t *c 11101 ** @param xcb_colormap_t cmap 11102 ** @param uint32_t items_len 11103 ** @param const xcb_coloritem_t *items 11104 ** @returns xcb_void_cookie_t 11105 ** 11106 *****************************************************************************/ 11107 11108 xcb_void_cookie_t 11109 xcb_store_colors (xcb_connection_t *c /**< */, 11110 xcb_colormap_t cmap /**< */, 11111 uint32_t items_len /**< */, 11112 const xcb_coloritem_t *items /**< */) 11113 { 11114 static const xcb_protocol_request_t xcb_req = { 11115 /* count */ 4, 11116 /* ext */ 0, 11117 /* opcode */ XCB_STORE_COLORS, 11118 /* isvoid */ 1 11119 }; 11120 11121 struct iovec xcb_parts[6]; 11122 xcb_void_cookie_t xcb_ret; 11123 xcb_store_colors_request_t xcb_out; 11124 11125 xcb_out.pad0 = 0; 11126 xcb_out.cmap = cmap; 11127 11128 xcb_parts[2].iov_base = (char *) &xcb_out; 11129 xcb_parts[2].iov_len = sizeof(xcb_out); 11130 xcb_parts[3].iov_base = 0; 11131 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11132 xcb_parts[4].iov_base = (char *) items; 11133 xcb_parts[4].iov_len = items_len * sizeof(xcb_coloritem_t); 11134 xcb_parts[5].iov_base = 0; 11135 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11136 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11137 return xcb_ret; 11138 } 11139 11140 11141 /***************************************************************************** 11142 ** 11143 ** xcb_void_cookie_t xcb_store_named_color_checked 11144 ** 11145 ** @param xcb_connection_t *c 11146 ** @param uint8_t flags 11147 ** @param xcb_colormap_t cmap 11148 ** @param uint32_t pixel 11149 ** @param uint16_t name_len 11150 ** @param const char *name 11151 ** @returns xcb_void_cookie_t 11152 ** 11153 *****************************************************************************/ 11154 11155 xcb_void_cookie_t 11156 xcb_store_named_color_checked (xcb_connection_t *c /**< */, 11157 uint8_t flags /**< */, 11158 xcb_colormap_t cmap /**< */, 11159 uint32_t pixel /**< */, 11160 uint16_t name_len /**< */, 11161 const char *name /**< */) 11162 { 11163 static const xcb_protocol_request_t xcb_req = { 11164 /* count */ 4, 11165 /* ext */ 0, 11166 /* opcode */ XCB_STORE_NAMED_COLOR, 11167 /* isvoid */ 1 11168 }; 11169 11170 struct iovec xcb_parts[6]; 11171 xcb_void_cookie_t xcb_ret; 11172 xcb_store_named_color_request_t xcb_out; 11173 11174 xcb_out.flags = flags; 11175 xcb_out.cmap = cmap; 11176 xcb_out.pixel = pixel; 11177 xcb_out.name_len = name_len; 11178 memset(xcb_out.pad0, 0, 2); 11179 11180 xcb_parts[2].iov_base = (char *) &xcb_out; 11181 xcb_parts[2].iov_len = sizeof(xcb_out); 11182 xcb_parts[3].iov_base = 0; 11183 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11184 xcb_parts[4].iov_base = (char *) name; 11185 xcb_parts[4].iov_len = name_len * sizeof(char); 11186 xcb_parts[5].iov_base = 0; 11187 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11188 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11189 return xcb_ret; 11190 } 11191 11192 11193 /***************************************************************************** 11194 ** 11195 ** xcb_void_cookie_t xcb_store_named_color 11196 ** 11197 ** @param xcb_connection_t *c 11198 ** @param uint8_t flags 11199 ** @param xcb_colormap_t cmap 11200 ** @param uint32_t pixel 11201 ** @param uint16_t name_len 11202 ** @param const char *name 11203 ** @returns xcb_void_cookie_t 11204 ** 11205 *****************************************************************************/ 11206 11207 xcb_void_cookie_t 11208 xcb_store_named_color (xcb_connection_t *c /**< */, 11209 uint8_t flags /**< */, 11210 xcb_colormap_t cmap /**< */, 11211 uint32_t pixel /**< */, 11212 uint16_t name_len /**< */, 11213 const char *name /**< */) 11214 { 11215 static const xcb_protocol_request_t xcb_req = { 11216 /* count */ 4, 11217 /* ext */ 0, 11218 /* opcode */ XCB_STORE_NAMED_COLOR, 11219 /* isvoid */ 1 11220 }; 11221 11222 struct iovec xcb_parts[6]; 11223 xcb_void_cookie_t xcb_ret; 11224 xcb_store_named_color_request_t xcb_out; 11225 11226 xcb_out.flags = flags; 11227 xcb_out.cmap = cmap; 11228 xcb_out.pixel = pixel; 11229 xcb_out.name_len = name_len; 11230 memset(xcb_out.pad0, 0, 2); 11231 11232 xcb_parts[2].iov_base = (char *) &xcb_out; 11233 xcb_parts[2].iov_len = sizeof(xcb_out); 11234 xcb_parts[3].iov_base = 0; 11235 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11236 xcb_parts[4].iov_base = (char *) name; 11237 xcb_parts[4].iov_len = name_len * sizeof(char); 11238 xcb_parts[5].iov_base = 0; 11239 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11240 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11241 return xcb_ret; 11242 } 11243 11244 11245 /***************************************************************************** 11246 ** 11247 ** void xcb_rgb_next 11248 ** 11249 ** @param xcb_rgb_iterator_t *i 11250 ** @returns void 11251 ** 11252 *****************************************************************************/ 11253 11254 void 11255 xcb_rgb_next (xcb_rgb_iterator_t *i /**< */) 11256 { 11257 --i->rem; 11258 ++i->data; 11259 i->index += sizeof(xcb_rgb_t); 11260 } 11261 11262 11263 /***************************************************************************** 11264 ** 11265 ** xcb_generic_iterator_t xcb_rgb_end 11266 ** 11267 ** @param xcb_rgb_iterator_t i 11268 ** @returns xcb_generic_iterator_t 11269 ** 11270 *****************************************************************************/ 11271 11272 xcb_generic_iterator_t 11273 xcb_rgb_end (xcb_rgb_iterator_t i /**< */) 11274 { 11275 xcb_generic_iterator_t ret; 11276 ret.data = i.data + i.rem; 11277 ret.index = i.index + ((char *) ret.data - (char *) i.data); 11278 ret.rem = 0; 11279 return ret; 11280 } 11281 11282 11283 /***************************************************************************** 11284 ** 11285 ** xcb_query_colors_cookie_t xcb_query_colors 11286 ** 11287 ** @param xcb_connection_t *c 11288 ** @param xcb_colormap_t cmap 11289 ** @param uint32_t pixels_len 11290 ** @param const uint32_t *pixels 11291 ** @returns xcb_query_colors_cookie_t 11292 ** 11293 *****************************************************************************/ 11294 11295 xcb_query_colors_cookie_t 11296 xcb_query_colors (xcb_connection_t *c /**< */, 11297 xcb_colormap_t cmap /**< */, 11298 uint32_t pixels_len /**< */, 11299 const uint32_t *pixels /**< */) 11300 { 11301 static const xcb_protocol_request_t xcb_req = { 11302 /* count */ 4, 11303 /* ext */ 0, 11304 /* opcode */ XCB_QUERY_COLORS, 11305 /* isvoid */ 0 11306 }; 11307 11308 struct iovec xcb_parts[6]; 11309 xcb_query_colors_cookie_t xcb_ret; 11310 xcb_query_colors_request_t xcb_out; 11311 11312 xcb_out.pad0 = 0; 11313 xcb_out.cmap = cmap; 11314 11315 xcb_parts[2].iov_base = (char *) &xcb_out; 11316 xcb_parts[2].iov_len = sizeof(xcb_out); 11317 xcb_parts[3].iov_base = 0; 11318 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11319 xcb_parts[4].iov_base = (char *) pixels; 11320 xcb_parts[4].iov_len = pixels_len * sizeof(uint32_t); 11321 xcb_parts[5].iov_base = 0; 11322 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11323 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11324 return xcb_ret; 11325 } 11326 11327 11328 /***************************************************************************** 11329 ** 11330 ** xcb_query_colors_cookie_t xcb_query_colors_unchecked 11331 ** 11332 ** @param xcb_connection_t *c 11333 ** @param xcb_colormap_t cmap 11334 ** @param uint32_t pixels_len 11335 ** @param const uint32_t *pixels 11336 ** @returns xcb_query_colors_cookie_t 11337 ** 11338 *****************************************************************************/ 11339 11340 xcb_query_colors_cookie_t 11341 xcb_query_colors_unchecked (xcb_connection_t *c /**< */, 11342 xcb_colormap_t cmap /**< */, 11343 uint32_t pixels_len /**< */, 11344 const uint32_t *pixels /**< */) 11345 { 11346 static const xcb_protocol_request_t xcb_req = { 11347 /* count */ 4, 11348 /* ext */ 0, 11349 /* opcode */ XCB_QUERY_COLORS, 11350 /* isvoid */ 0 11351 }; 11352 11353 struct iovec xcb_parts[6]; 11354 xcb_query_colors_cookie_t xcb_ret; 11355 xcb_query_colors_request_t xcb_out; 11356 11357 xcb_out.pad0 = 0; 11358 xcb_out.cmap = cmap; 11359 11360 xcb_parts[2].iov_base = (char *) &xcb_out; 11361 xcb_parts[2].iov_len = sizeof(xcb_out); 11362 xcb_parts[3].iov_base = 0; 11363 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11364 xcb_parts[4].iov_base = (char *) pixels; 11365 xcb_parts[4].iov_len = pixels_len * sizeof(uint32_t); 11366 xcb_parts[5].iov_base = 0; 11367 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11368 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11369 return xcb_ret; 11370 } 11371 11372 11373 /***************************************************************************** 11374 ** 11375 ** xcb_rgb_t * xcb_query_colors_colors 11376 ** 11377 ** @param const xcb_query_colors_reply_t *R 11378 ** @returns xcb_rgb_t * 11379 ** 11380 *****************************************************************************/ 11381 11382 xcb_rgb_t * 11383 xcb_query_colors_colors (const xcb_query_colors_reply_t *R /**< */) 11384 { 11385 return (xcb_rgb_t *) (R + 1); 11386 } 11387 11388 11389 /***************************************************************************** 11390 ** 11391 ** int xcb_query_colors_colors_length 11392 ** 11393 ** @param const xcb_query_colors_reply_t *R 11394 ** @returns int 11395 ** 11396 *****************************************************************************/ 11397 11398 int 11399 xcb_query_colors_colors_length (const xcb_query_colors_reply_t *R /**< */) 11400 { 11401 return R->colors_len; 11402 } 11403 11404 11405 /***************************************************************************** 11406 ** 11407 ** xcb_rgb_iterator_t xcb_query_colors_colors_iterator 11408 ** 11409 ** @param const xcb_query_colors_reply_t *R 11410 ** @returns xcb_rgb_iterator_t 11411 ** 11412 *****************************************************************************/ 11413 11414 xcb_rgb_iterator_t 11415 xcb_query_colors_colors_iterator (const xcb_query_colors_reply_t *R /**< */) 11416 { 11417 xcb_rgb_iterator_t i; 11418 i.data = (xcb_rgb_t *) (R + 1); 11419 i.rem = R->colors_len; 11420 i.index = (char *) i.data - (char *) R; 11421 return i; 11422 } 11423 11424 11425 /***************************************************************************** 11426 ** 11427 ** xcb_query_colors_reply_t * xcb_query_colors_reply 11428 ** 11429 ** @param xcb_connection_t *c 11430 ** @param xcb_query_colors_cookie_t cookie 11431 ** @param xcb_generic_error_t **e 11432 ** @returns xcb_query_colors_reply_t * 11433 ** 11434 *****************************************************************************/ 11435 11436 xcb_query_colors_reply_t * 11437 xcb_query_colors_reply (xcb_connection_t *c /**< */, 11438 xcb_query_colors_cookie_t cookie /**< */, 11439 xcb_generic_error_t **e /**< */) 11440 { 11441 return (xcb_query_colors_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 11442 } 11443 11444 11445 /***************************************************************************** 11446 ** 11447 ** xcb_lookup_color_cookie_t xcb_lookup_color 11448 ** 11449 ** @param xcb_connection_t *c 11450 ** @param xcb_colormap_t cmap 11451 ** @param uint16_t name_len 11452 ** @param const char *name 11453 ** @returns xcb_lookup_color_cookie_t 11454 ** 11455 *****************************************************************************/ 11456 11457 xcb_lookup_color_cookie_t 11458 xcb_lookup_color (xcb_connection_t *c /**< */, 11459 xcb_colormap_t cmap /**< */, 11460 uint16_t name_len /**< */, 11461 const char *name /**< */) 11462 { 11463 static const xcb_protocol_request_t xcb_req = { 11464 /* count */ 4, 11465 /* ext */ 0, 11466 /* opcode */ XCB_LOOKUP_COLOR, 11467 /* isvoid */ 0 11468 }; 11469 11470 struct iovec xcb_parts[6]; 11471 xcb_lookup_color_cookie_t xcb_ret; 11472 xcb_lookup_color_request_t xcb_out; 11473 11474 xcb_out.pad0 = 0; 11475 xcb_out.cmap = cmap; 11476 xcb_out.name_len = name_len; 11477 memset(xcb_out.pad1, 0, 2); 11478 11479 xcb_parts[2].iov_base = (char *) &xcb_out; 11480 xcb_parts[2].iov_len = sizeof(xcb_out); 11481 xcb_parts[3].iov_base = 0; 11482 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11483 xcb_parts[4].iov_base = (char *) name; 11484 xcb_parts[4].iov_len = name_len * sizeof(char); 11485 xcb_parts[5].iov_base = 0; 11486 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11487 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11488 return xcb_ret; 11489 } 11490 11491 11492 /***************************************************************************** 11493 ** 11494 ** xcb_lookup_color_cookie_t xcb_lookup_color_unchecked 11495 ** 11496 ** @param xcb_connection_t *c 11497 ** @param xcb_colormap_t cmap 11498 ** @param uint16_t name_len 11499 ** @param const char *name 11500 ** @returns xcb_lookup_color_cookie_t 11501 ** 11502 *****************************************************************************/ 11503 11504 xcb_lookup_color_cookie_t 11505 xcb_lookup_color_unchecked (xcb_connection_t *c /**< */, 11506 xcb_colormap_t cmap /**< */, 11507 uint16_t name_len /**< */, 11508 const char *name /**< */) 11509 { 11510 static const xcb_protocol_request_t xcb_req = { 11511 /* count */ 4, 11512 /* ext */ 0, 11513 /* opcode */ XCB_LOOKUP_COLOR, 11514 /* isvoid */ 0 11515 }; 11516 11517 struct iovec xcb_parts[6]; 11518 xcb_lookup_color_cookie_t xcb_ret; 11519 xcb_lookup_color_request_t xcb_out; 11520 11521 xcb_out.pad0 = 0; 11522 xcb_out.cmap = cmap; 11523 xcb_out.name_len = name_len; 11524 memset(xcb_out.pad1, 0, 2); 11525 11526 xcb_parts[2].iov_base = (char *) &xcb_out; 11527 xcb_parts[2].iov_len = sizeof(xcb_out); 11528 xcb_parts[3].iov_base = 0; 11529 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11530 xcb_parts[4].iov_base = (char *) name; 11531 xcb_parts[4].iov_len = name_len * sizeof(char); 11532 xcb_parts[5].iov_base = 0; 11533 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 11534 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11535 return xcb_ret; 11536 } 11537 11538 11539 /***************************************************************************** 11540 ** 11541 ** xcb_lookup_color_reply_t * xcb_lookup_color_reply 11542 ** 11543 ** @param xcb_connection_t *c 11544 ** @param xcb_lookup_color_cookie_t cookie 11545 ** @param xcb_generic_error_t **e 11546 ** @returns xcb_lookup_color_reply_t * 11547 ** 11548 *****************************************************************************/ 11549 11550 xcb_lookup_color_reply_t * 11551 xcb_lookup_color_reply (xcb_connection_t *c /**< */, 11552 xcb_lookup_color_cookie_t cookie /**< */, 11553 xcb_generic_error_t **e /**< */) 11554 { 11555 return (xcb_lookup_color_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 11556 } 11557 11558 11559 /***************************************************************************** 11560 ** 11561 ** xcb_void_cookie_t xcb_create_cursor_checked 11562 ** 11563 ** @param xcb_connection_t *c 11564 ** @param xcb_cursor_t cid 11565 ** @param xcb_pixmap_t source 11566 ** @param xcb_pixmap_t mask 11567 ** @param uint16_t fore_red 11568 ** @param uint16_t fore_green 11569 ** @param uint16_t fore_blue 11570 ** @param uint16_t back_red 11571 ** @param uint16_t back_green 11572 ** @param uint16_t back_blue 11573 ** @param uint16_t x 11574 ** @param uint16_t y 11575 ** @returns xcb_void_cookie_t 11576 ** 11577 *****************************************************************************/ 11578 11579 xcb_void_cookie_t 11580 xcb_create_cursor_checked (xcb_connection_t *c /**< */, 11581 xcb_cursor_t cid /**< */, 11582 xcb_pixmap_t source /**< */, 11583 xcb_pixmap_t mask /**< */, 11584 uint16_t fore_red /**< */, 11585 uint16_t fore_green /**< */, 11586 uint16_t fore_blue /**< */, 11587 uint16_t back_red /**< */, 11588 uint16_t back_green /**< */, 11589 uint16_t back_blue /**< */, 11590 uint16_t x /**< */, 11591 uint16_t y /**< */) 11592 { 11593 static const xcb_protocol_request_t xcb_req = { 11594 /* count */ 2, 11595 /* ext */ 0, 11596 /* opcode */ XCB_CREATE_CURSOR, 11597 /* isvoid */ 1 11598 }; 11599 11600 struct iovec xcb_parts[4]; 11601 xcb_void_cookie_t xcb_ret; 11602 xcb_create_cursor_request_t xcb_out; 11603 11604 xcb_out.pad0 = 0; 11605 xcb_out.cid = cid; 11606 xcb_out.source = source; 11607 xcb_out.mask = mask; 11608 xcb_out.fore_red = fore_red; 11609 xcb_out.fore_green = fore_green; 11610 xcb_out.fore_blue = fore_blue; 11611 xcb_out.back_red = back_red; 11612 xcb_out.back_green = back_green; 11613 xcb_out.back_blue = back_blue; 11614 xcb_out.x = x; 11615 xcb_out.y = y; 11616 11617 xcb_parts[2].iov_base = (char *) &xcb_out; 11618 xcb_parts[2].iov_len = sizeof(xcb_out); 11619 xcb_parts[3].iov_base = 0; 11620 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11621 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11622 return xcb_ret; 11623 } 11624 11625 11626 /***************************************************************************** 11627 ** 11628 ** xcb_void_cookie_t xcb_create_cursor 11629 ** 11630 ** @param xcb_connection_t *c 11631 ** @param xcb_cursor_t cid 11632 ** @param xcb_pixmap_t source 11633 ** @param xcb_pixmap_t mask 11634 ** @param uint16_t fore_red 11635 ** @param uint16_t fore_green 11636 ** @param uint16_t fore_blue 11637 ** @param uint16_t back_red 11638 ** @param uint16_t back_green 11639 ** @param uint16_t back_blue 11640 ** @param uint16_t x 11641 ** @param uint16_t y 11642 ** @returns xcb_void_cookie_t 11643 ** 11644 *****************************************************************************/ 11645 11646 xcb_void_cookie_t 11647 xcb_create_cursor (xcb_connection_t *c /**< */, 11648 xcb_cursor_t cid /**< */, 11649 xcb_pixmap_t source /**< */, 11650 xcb_pixmap_t mask /**< */, 11651 uint16_t fore_red /**< */, 11652 uint16_t fore_green /**< */, 11653 uint16_t fore_blue /**< */, 11654 uint16_t back_red /**< */, 11655 uint16_t back_green /**< */, 11656 uint16_t back_blue /**< */, 11657 uint16_t x /**< */, 11658 uint16_t y /**< */) 11659 { 11660 static const xcb_protocol_request_t xcb_req = { 11661 /* count */ 2, 11662 /* ext */ 0, 11663 /* opcode */ XCB_CREATE_CURSOR, 11664 /* isvoid */ 1 11665 }; 11666 11667 struct iovec xcb_parts[4]; 11668 xcb_void_cookie_t xcb_ret; 11669 xcb_create_cursor_request_t xcb_out; 11670 11671 xcb_out.pad0 = 0; 11672 xcb_out.cid = cid; 11673 xcb_out.source = source; 11674 xcb_out.mask = mask; 11675 xcb_out.fore_red = fore_red; 11676 xcb_out.fore_green = fore_green; 11677 xcb_out.fore_blue = fore_blue; 11678 xcb_out.back_red = back_red; 11679 xcb_out.back_green = back_green; 11680 xcb_out.back_blue = back_blue; 11681 xcb_out.x = x; 11682 xcb_out.y = y; 11683 11684 xcb_parts[2].iov_base = (char *) &xcb_out; 11685 xcb_parts[2].iov_len = sizeof(xcb_out); 11686 xcb_parts[3].iov_base = 0; 11687 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11688 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11689 return xcb_ret; 11690 } 11691 11692 11693 /***************************************************************************** 11694 ** 11695 ** xcb_void_cookie_t xcb_create_glyph_cursor_checked 11696 ** 11697 ** @param xcb_connection_t *c 11698 ** @param xcb_cursor_t cid 11699 ** @param xcb_font_t source_font 11700 ** @param xcb_font_t mask_font 11701 ** @param uint16_t source_char 11702 ** @param uint16_t mask_char 11703 ** @param uint16_t fore_red 11704 ** @param uint16_t fore_green 11705 ** @param uint16_t fore_blue 11706 ** @param uint16_t back_red 11707 ** @param uint16_t back_green 11708 ** @param uint16_t back_blue 11709 ** @returns xcb_void_cookie_t 11710 ** 11711 *****************************************************************************/ 11712 11713 xcb_void_cookie_t 11714 xcb_create_glyph_cursor_checked (xcb_connection_t *c /**< */, 11715 xcb_cursor_t cid /**< */, 11716 xcb_font_t source_font /**< */, 11717 xcb_font_t mask_font /**< */, 11718 uint16_t source_char /**< */, 11719 uint16_t mask_char /**< */, 11720 uint16_t fore_red /**< */, 11721 uint16_t fore_green /**< */, 11722 uint16_t fore_blue /**< */, 11723 uint16_t back_red /**< */, 11724 uint16_t back_green /**< */, 11725 uint16_t back_blue /**< */) 11726 { 11727 static const xcb_protocol_request_t xcb_req = { 11728 /* count */ 2, 11729 /* ext */ 0, 11730 /* opcode */ XCB_CREATE_GLYPH_CURSOR, 11731 /* isvoid */ 1 11732 }; 11733 11734 struct iovec xcb_parts[4]; 11735 xcb_void_cookie_t xcb_ret; 11736 xcb_create_glyph_cursor_request_t xcb_out; 11737 11738 xcb_out.pad0 = 0; 11739 xcb_out.cid = cid; 11740 xcb_out.source_font = source_font; 11741 xcb_out.mask_font = mask_font; 11742 xcb_out.source_char = source_char; 11743 xcb_out.mask_char = mask_char; 11744 xcb_out.fore_red = fore_red; 11745 xcb_out.fore_green = fore_green; 11746 xcb_out.fore_blue = fore_blue; 11747 xcb_out.back_red = back_red; 11748 xcb_out.back_green = back_green; 11749 xcb_out.back_blue = back_blue; 11750 11751 xcb_parts[2].iov_base = (char *) &xcb_out; 11752 xcb_parts[2].iov_len = sizeof(xcb_out); 11753 xcb_parts[3].iov_base = 0; 11754 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11755 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11756 return xcb_ret; 11757 } 11758 11759 11760 /***************************************************************************** 11761 ** 11762 ** xcb_void_cookie_t xcb_create_glyph_cursor 11763 ** 11764 ** @param xcb_connection_t *c 11765 ** @param xcb_cursor_t cid 11766 ** @param xcb_font_t source_font 11767 ** @param xcb_font_t mask_font 11768 ** @param uint16_t source_char 11769 ** @param uint16_t mask_char 11770 ** @param uint16_t fore_red 11771 ** @param uint16_t fore_green 11772 ** @param uint16_t fore_blue 11773 ** @param uint16_t back_red 11774 ** @param uint16_t back_green 11775 ** @param uint16_t back_blue 11776 ** @returns xcb_void_cookie_t 11777 ** 11778 *****************************************************************************/ 11779 11780 xcb_void_cookie_t 11781 xcb_create_glyph_cursor (xcb_connection_t *c /**< */, 11782 xcb_cursor_t cid /**< */, 11783 xcb_font_t source_font /**< */, 11784 xcb_font_t mask_font /**< */, 11785 uint16_t source_char /**< */, 11786 uint16_t mask_char /**< */, 11787 uint16_t fore_red /**< */, 11788 uint16_t fore_green /**< */, 11789 uint16_t fore_blue /**< */, 11790 uint16_t back_red /**< */, 11791 uint16_t back_green /**< */, 11792 uint16_t back_blue /**< */) 11793 { 11794 static const xcb_protocol_request_t xcb_req = { 11795 /* count */ 2, 11796 /* ext */ 0, 11797 /* opcode */ XCB_CREATE_GLYPH_CURSOR, 11798 /* isvoid */ 1 11799 }; 11800 11801 struct iovec xcb_parts[4]; 11802 xcb_void_cookie_t xcb_ret; 11803 xcb_create_glyph_cursor_request_t xcb_out; 11804 11805 xcb_out.pad0 = 0; 11806 xcb_out.cid = cid; 11807 xcb_out.source_font = source_font; 11808 xcb_out.mask_font = mask_font; 11809 xcb_out.source_char = source_char; 11810 xcb_out.mask_char = mask_char; 11811 xcb_out.fore_red = fore_red; 11812 xcb_out.fore_green = fore_green; 11813 xcb_out.fore_blue = fore_blue; 11814 xcb_out.back_red = back_red; 11815 xcb_out.back_green = back_green; 11816 xcb_out.back_blue = back_blue; 11817 11818 xcb_parts[2].iov_base = (char *) &xcb_out; 11819 xcb_parts[2].iov_len = sizeof(xcb_out); 11820 xcb_parts[3].iov_base = 0; 11821 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11822 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11823 return xcb_ret; 11824 } 11825 11826 11827 /***************************************************************************** 11828 ** 11829 ** xcb_void_cookie_t xcb_free_cursor_checked 11830 ** 11831 ** @param xcb_connection_t *c 11832 ** @param xcb_cursor_t cursor 11833 ** @returns xcb_void_cookie_t 11834 ** 11835 *****************************************************************************/ 11836 11837 xcb_void_cookie_t 11838 xcb_free_cursor_checked (xcb_connection_t *c /**< */, 11839 xcb_cursor_t cursor /**< */) 11840 { 11841 static const xcb_protocol_request_t xcb_req = { 11842 /* count */ 2, 11843 /* ext */ 0, 11844 /* opcode */ XCB_FREE_CURSOR, 11845 /* isvoid */ 1 11846 }; 11847 11848 struct iovec xcb_parts[4]; 11849 xcb_void_cookie_t xcb_ret; 11850 xcb_free_cursor_request_t xcb_out; 11851 11852 xcb_out.pad0 = 0; 11853 xcb_out.cursor = cursor; 11854 11855 xcb_parts[2].iov_base = (char *) &xcb_out; 11856 xcb_parts[2].iov_len = sizeof(xcb_out); 11857 xcb_parts[3].iov_base = 0; 11858 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11859 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11860 return xcb_ret; 11861 } 11862 11863 11864 /***************************************************************************** 11865 ** 11866 ** xcb_void_cookie_t xcb_free_cursor 11867 ** 11868 ** @param xcb_connection_t *c 11869 ** @param xcb_cursor_t cursor 11870 ** @returns xcb_void_cookie_t 11871 ** 11872 *****************************************************************************/ 11873 11874 xcb_void_cookie_t 11875 xcb_free_cursor (xcb_connection_t *c /**< */, 11876 xcb_cursor_t cursor /**< */) 11877 { 11878 static const xcb_protocol_request_t xcb_req = { 11879 /* count */ 2, 11880 /* ext */ 0, 11881 /* opcode */ XCB_FREE_CURSOR, 11882 /* isvoid */ 1 11883 }; 11884 11885 struct iovec xcb_parts[4]; 11886 xcb_void_cookie_t xcb_ret; 11887 xcb_free_cursor_request_t xcb_out; 11888 11889 xcb_out.pad0 = 0; 11890 xcb_out.cursor = cursor; 11891 11892 xcb_parts[2].iov_base = (char *) &xcb_out; 11893 xcb_parts[2].iov_len = sizeof(xcb_out); 11894 xcb_parts[3].iov_base = 0; 11895 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11896 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11897 return xcb_ret; 11898 } 11899 11900 11901 /***************************************************************************** 11902 ** 11903 ** xcb_void_cookie_t xcb_recolor_cursor_checked 11904 ** 11905 ** @param xcb_connection_t *c 11906 ** @param xcb_cursor_t cursor 11907 ** @param uint16_t fore_red 11908 ** @param uint16_t fore_green 11909 ** @param uint16_t fore_blue 11910 ** @param uint16_t back_red 11911 ** @param uint16_t back_green 11912 ** @param uint16_t back_blue 11913 ** @returns xcb_void_cookie_t 11914 ** 11915 *****************************************************************************/ 11916 11917 xcb_void_cookie_t 11918 xcb_recolor_cursor_checked (xcb_connection_t *c /**< */, 11919 xcb_cursor_t cursor /**< */, 11920 uint16_t fore_red /**< */, 11921 uint16_t fore_green /**< */, 11922 uint16_t fore_blue /**< */, 11923 uint16_t back_red /**< */, 11924 uint16_t back_green /**< */, 11925 uint16_t back_blue /**< */) 11926 { 11927 static const xcb_protocol_request_t xcb_req = { 11928 /* count */ 2, 11929 /* ext */ 0, 11930 /* opcode */ XCB_RECOLOR_CURSOR, 11931 /* isvoid */ 1 11932 }; 11933 11934 struct iovec xcb_parts[4]; 11935 xcb_void_cookie_t xcb_ret; 11936 xcb_recolor_cursor_request_t xcb_out; 11937 11938 xcb_out.pad0 = 0; 11939 xcb_out.cursor = cursor; 11940 xcb_out.fore_red = fore_red; 11941 xcb_out.fore_green = fore_green; 11942 xcb_out.fore_blue = fore_blue; 11943 xcb_out.back_red = back_red; 11944 xcb_out.back_green = back_green; 11945 xcb_out.back_blue = back_blue; 11946 11947 xcb_parts[2].iov_base = (char *) &xcb_out; 11948 xcb_parts[2].iov_len = sizeof(xcb_out); 11949 xcb_parts[3].iov_base = 0; 11950 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11951 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11952 return xcb_ret; 11953 } 11954 11955 11956 /***************************************************************************** 11957 ** 11958 ** xcb_void_cookie_t xcb_recolor_cursor 11959 ** 11960 ** @param xcb_connection_t *c 11961 ** @param xcb_cursor_t cursor 11962 ** @param uint16_t fore_red 11963 ** @param uint16_t fore_green 11964 ** @param uint16_t fore_blue 11965 ** @param uint16_t back_red 11966 ** @param uint16_t back_green 11967 ** @param uint16_t back_blue 11968 ** @returns xcb_void_cookie_t 11969 ** 11970 *****************************************************************************/ 11971 11972 xcb_void_cookie_t 11973 xcb_recolor_cursor (xcb_connection_t *c /**< */, 11974 xcb_cursor_t cursor /**< */, 11975 uint16_t fore_red /**< */, 11976 uint16_t fore_green /**< */, 11977 uint16_t fore_blue /**< */, 11978 uint16_t back_red /**< */, 11979 uint16_t back_green /**< */, 11980 uint16_t back_blue /**< */) 11981 { 11982 static const xcb_protocol_request_t xcb_req = { 11983 /* count */ 2, 11984 /* ext */ 0, 11985 /* opcode */ XCB_RECOLOR_CURSOR, 11986 /* isvoid */ 1 11987 }; 11988 11989 struct iovec xcb_parts[4]; 11990 xcb_void_cookie_t xcb_ret; 11991 xcb_recolor_cursor_request_t xcb_out; 11992 11993 xcb_out.pad0 = 0; 11994 xcb_out.cursor = cursor; 11995 xcb_out.fore_red = fore_red; 11996 xcb_out.fore_green = fore_green; 11997 xcb_out.fore_blue = fore_blue; 11998 xcb_out.back_red = back_red; 11999 xcb_out.back_green = back_green; 12000 xcb_out.back_blue = back_blue; 12001 12002 xcb_parts[2].iov_base = (char *) &xcb_out; 12003 xcb_parts[2].iov_len = sizeof(xcb_out); 12004 xcb_parts[3].iov_base = 0; 12005 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12006 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12007 return xcb_ret; 12008 } 12009 12010 12011 /***************************************************************************** 12012 ** 12013 ** xcb_query_best_size_cookie_t xcb_query_best_size 12014 ** 12015 ** @param xcb_connection_t *c 12016 ** @param uint8_t _class 12017 ** @param xcb_drawable_t drawable 12018 ** @param uint16_t width 12019 ** @param uint16_t height 12020 ** @returns xcb_query_best_size_cookie_t 12021 ** 12022 *****************************************************************************/ 12023 12024 xcb_query_best_size_cookie_t 12025 xcb_query_best_size (xcb_connection_t *c /**< */, 12026 uint8_t _class /**< */, 12027 xcb_drawable_t drawable /**< */, 12028 uint16_t width /**< */, 12029 uint16_t height /**< */) 12030 { 12031 static const xcb_protocol_request_t xcb_req = { 12032 /* count */ 2, 12033 /* ext */ 0, 12034 /* opcode */ XCB_QUERY_BEST_SIZE, 12035 /* isvoid */ 0 12036 }; 12037 12038 struct iovec xcb_parts[4]; 12039 xcb_query_best_size_cookie_t xcb_ret; 12040 xcb_query_best_size_request_t xcb_out; 12041 12042 xcb_out._class = _class; 12043 xcb_out.drawable = drawable; 12044 xcb_out.width = width; 12045 xcb_out.height = height; 12046 12047 xcb_parts[2].iov_base = (char *) &xcb_out; 12048 xcb_parts[2].iov_len = sizeof(xcb_out); 12049 xcb_parts[3].iov_base = 0; 12050 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12051 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12052 return xcb_ret; 12053 } 12054 12055 12056 /***************************************************************************** 12057 ** 12058 ** xcb_query_best_size_cookie_t xcb_query_best_size_unchecked 12059 ** 12060 ** @param xcb_connection_t *c 12061 ** @param uint8_t _class 12062 ** @param xcb_drawable_t drawable 12063 ** @param uint16_t width 12064 ** @param uint16_t height 12065 ** @returns xcb_query_best_size_cookie_t 12066 ** 12067 *****************************************************************************/ 12068 12069 xcb_query_best_size_cookie_t 12070 xcb_query_best_size_unchecked (xcb_connection_t *c /**< */, 12071 uint8_t _class /**< */, 12072 xcb_drawable_t drawable /**< */, 12073 uint16_t width /**< */, 12074 uint16_t height /**< */) 12075 { 12076 static const xcb_protocol_request_t xcb_req = { 12077 /* count */ 2, 12078 /* ext */ 0, 12079 /* opcode */ XCB_QUERY_BEST_SIZE, 12080 /* isvoid */ 0 12081 }; 12082 12083 struct iovec xcb_parts[4]; 12084 xcb_query_best_size_cookie_t xcb_ret; 12085 xcb_query_best_size_request_t xcb_out; 12086 12087 xcb_out._class = _class; 12088 xcb_out.drawable = drawable; 12089 xcb_out.width = width; 12090 xcb_out.height = height; 12091 12092 xcb_parts[2].iov_base = (char *) &xcb_out; 12093 xcb_parts[2].iov_len = sizeof(xcb_out); 12094 xcb_parts[3].iov_base = 0; 12095 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12096 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12097 return xcb_ret; 12098 } 12099 12100 12101 /***************************************************************************** 12102 ** 12103 ** xcb_query_best_size_reply_t * xcb_query_best_size_reply 12104 ** 12105 ** @param xcb_connection_t *c 12106 ** @param xcb_query_best_size_cookie_t cookie 12107 ** @param xcb_generic_error_t **e 12108 ** @returns xcb_query_best_size_reply_t * 12109 ** 12110 *****************************************************************************/ 12111 12112 xcb_query_best_size_reply_t * 12113 xcb_query_best_size_reply (xcb_connection_t *c /**< */, 12114 xcb_query_best_size_cookie_t cookie /**< */, 12115 xcb_generic_error_t **e /**< */) 12116 { 12117 return (xcb_query_best_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 12118 } 12119 12120 12121 /***************************************************************************** 12122 ** 12123 ** xcb_query_extension_cookie_t xcb_query_extension 12124 ** 12125 ** @param xcb_connection_t *c 12126 ** @param uint16_t name_len 12127 ** @param const char *name 12128 ** @returns xcb_query_extension_cookie_t 12129 ** 12130 *****************************************************************************/ 12131 12132 xcb_query_extension_cookie_t 12133 xcb_query_extension (xcb_connection_t *c /**< */, 12134 uint16_t name_len /**< */, 12135 const char *name /**< */) 12136 { 12137 static const xcb_protocol_request_t xcb_req = { 12138 /* count */ 4, 12139 /* ext */ 0, 12140 /* opcode */ XCB_QUERY_EXTENSION, 12141 /* isvoid */ 0 12142 }; 12143 12144 struct iovec xcb_parts[6]; 12145 xcb_query_extension_cookie_t xcb_ret; 12146 xcb_query_extension_request_t xcb_out; 12147 12148 xcb_out.pad0 = 0; 12149 xcb_out.name_len = name_len; 12150 memset(xcb_out.pad1, 0, 2); 12151 12152 xcb_parts[2].iov_base = (char *) &xcb_out; 12153 xcb_parts[2].iov_len = sizeof(xcb_out); 12154 xcb_parts[3].iov_base = 0; 12155 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12156 xcb_parts[4].iov_base = (char *) name; 12157 xcb_parts[4].iov_len = name_len * sizeof(char); 12158 xcb_parts[5].iov_base = 0; 12159 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 12160 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12161 return xcb_ret; 12162 } 12163 12164 12165 /***************************************************************************** 12166 ** 12167 ** xcb_query_extension_cookie_t xcb_query_extension_unchecked 12168 ** 12169 ** @param xcb_connection_t *c 12170 ** @param uint16_t name_len 12171 ** @param const char *name 12172 ** @returns xcb_query_extension_cookie_t 12173 ** 12174 *****************************************************************************/ 12175 12176 xcb_query_extension_cookie_t 12177 xcb_query_extension_unchecked (xcb_connection_t *c /**< */, 12178 uint16_t name_len /**< */, 12179 const char *name /**< */) 12180 { 12181 static const xcb_protocol_request_t xcb_req = { 12182 /* count */ 4, 12183 /* ext */ 0, 12184 /* opcode */ XCB_QUERY_EXTENSION, 12185 /* isvoid */ 0 12186 }; 12187 12188 struct iovec xcb_parts[6]; 12189 xcb_query_extension_cookie_t xcb_ret; 12190 xcb_query_extension_request_t xcb_out; 12191 12192 xcb_out.pad0 = 0; 12193 xcb_out.name_len = name_len; 12194 memset(xcb_out.pad1, 0, 2); 12195 12196 xcb_parts[2].iov_base = (char *) &xcb_out; 12197 xcb_parts[2].iov_len = sizeof(xcb_out); 12198 xcb_parts[3].iov_base = 0; 12199 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12200 xcb_parts[4].iov_base = (char *) name; 12201 xcb_parts[4].iov_len = name_len * sizeof(char); 12202 xcb_parts[5].iov_base = 0; 12203 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 12204 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12205 return xcb_ret; 12206 } 12207 12208 12209 /***************************************************************************** 12210 ** 12211 ** xcb_query_extension_reply_t * xcb_query_extension_reply 12212 ** 12213 ** @param xcb_connection_t *c 12214 ** @param xcb_query_extension_cookie_t cookie 12215 ** @param xcb_generic_error_t **e 12216 ** @returns xcb_query_extension_reply_t * 12217 ** 12218 *****************************************************************************/ 12219 12220 xcb_query_extension_reply_t * 12221 xcb_query_extension_reply (xcb_connection_t *c /**< */, 12222 xcb_query_extension_cookie_t cookie /**< */, 12223 xcb_generic_error_t **e /**< */) 12224 { 12225 return (xcb_query_extension_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 12226 } 12227 12228 12229 /***************************************************************************** 12230 ** 12231 ** xcb_list_extensions_cookie_t xcb_list_extensions 12232 ** 12233 ** @param xcb_connection_t *c 12234 ** @returns xcb_list_extensions_cookie_t 12235 ** 12236 *****************************************************************************/ 12237 12238 xcb_list_extensions_cookie_t 12239 xcb_list_extensions (xcb_connection_t *c /**< */) 12240 { 12241 static const xcb_protocol_request_t xcb_req = { 12242 /* count */ 2, 12243 /* ext */ 0, 12244 /* opcode */ XCB_LIST_EXTENSIONS, 12245 /* isvoid */ 0 12246 }; 12247 12248 struct iovec xcb_parts[4]; 12249 xcb_list_extensions_cookie_t xcb_ret; 12250 xcb_list_extensions_request_t xcb_out; 12251 12252 xcb_out.pad0 = 0; 12253 12254 xcb_parts[2].iov_base = (char *) &xcb_out; 12255 xcb_parts[2].iov_len = sizeof(xcb_out); 12256 xcb_parts[3].iov_base = 0; 12257 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12258 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12259 return xcb_ret; 12260 } 12261 12262 12263 /***************************************************************************** 12264 ** 12265 ** xcb_list_extensions_cookie_t xcb_list_extensions_unchecked 12266 ** 12267 ** @param xcb_connection_t *c 12268 ** @returns xcb_list_extensions_cookie_t 12269 ** 12270 *****************************************************************************/ 12271 12272 xcb_list_extensions_cookie_t 12273 xcb_list_extensions_unchecked (xcb_connection_t *c /**< */) 12274 { 12275 static const xcb_protocol_request_t xcb_req = { 12276 /* count */ 2, 12277 /* ext */ 0, 12278 /* opcode */ XCB_LIST_EXTENSIONS, 12279 /* isvoid */ 0 12280 }; 12281 12282 struct iovec xcb_parts[4]; 12283 xcb_list_extensions_cookie_t xcb_ret; 12284 xcb_list_extensions_request_t xcb_out; 12285 12286 xcb_out.pad0 = 0; 12287 12288 xcb_parts[2].iov_base = (char *) &xcb_out; 12289 xcb_parts[2].iov_len = sizeof(xcb_out); 12290 xcb_parts[3].iov_base = 0; 12291 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12292 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12293 return xcb_ret; 12294 } 12295 12296 12297 /***************************************************************************** 12298 ** 12299 ** int xcb_list_extensions_names_length 12300 ** 12301 ** @param const xcb_list_extensions_reply_t *R 12302 ** @returns int 12303 ** 12304 *****************************************************************************/ 12305 12306 int 12307 xcb_list_extensions_names_length (const xcb_list_extensions_reply_t *R /**< */) 12308 { 12309 return R->names_len; 12310 } 12311 12312 12313 /***************************************************************************** 12314 ** 12315 ** xcb_str_iterator_t xcb_list_extensions_names_iterator 12316 ** 12317 ** @param const xcb_list_extensions_reply_t *R 12318 ** @returns xcb_str_iterator_t 12319 ** 12320 *****************************************************************************/ 12321 12322 xcb_str_iterator_t 12323 xcb_list_extensions_names_iterator (const xcb_list_extensions_reply_t *R /**< */) 12324 { 12325 xcb_str_iterator_t i; 12326 i.data = (xcb_str_t *) (R + 1); 12327 i.rem = R->names_len; 12328 i.index = (char *) i.data - (char *) R; 12329 return i; 12330 } 12331 12332 12333 /***************************************************************************** 12334 ** 12335 ** xcb_list_extensions_reply_t * xcb_list_extensions_reply 12336 ** 12337 ** @param xcb_connection_t *c 12338 ** @param xcb_list_extensions_cookie_t cookie 12339 ** @param xcb_generic_error_t **e 12340 ** @returns xcb_list_extensions_reply_t * 12341 ** 12342 *****************************************************************************/ 12343 12344 xcb_list_extensions_reply_t * 12345 xcb_list_extensions_reply (xcb_connection_t *c /**< */, 12346 xcb_list_extensions_cookie_t cookie /**< */, 12347 xcb_generic_error_t **e /**< */) 12348 { 12349 return (xcb_list_extensions_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 12350 } 12351 12352 12353 /***************************************************************************** 12354 ** 12355 ** xcb_void_cookie_t xcb_change_keyboard_mapping_checked 12356 ** 12357 ** @param xcb_connection_t *c 12358 ** @param uint8_t keycode_count 12359 ** @param xcb_keycode_t first_keycode 12360 ** @param uint8_t keysyms_per_keycode 12361 ** @param const xcb_keysym_t *keysyms 12362 ** @returns xcb_void_cookie_t 12363 ** 12364 *****************************************************************************/ 12365 12366 xcb_void_cookie_t 12367 xcb_change_keyboard_mapping_checked (xcb_connection_t *c /**< */, 12368 uint8_t keycode_count /**< */, 12369 xcb_keycode_t first_keycode /**< */, 12370 uint8_t keysyms_per_keycode /**< */, 12371 const xcb_keysym_t *keysyms /**< */) 12372 { 12373 static const xcb_protocol_request_t xcb_req = { 12374 /* count */ 4, 12375 /* ext */ 0, 12376 /* opcode */ XCB_CHANGE_KEYBOARD_MAPPING, 12377 /* isvoid */ 1 12378 }; 12379 12380 struct iovec xcb_parts[6]; 12381 xcb_void_cookie_t xcb_ret; 12382 xcb_change_keyboard_mapping_request_t xcb_out; 12383 12384 xcb_out.keycode_count = keycode_count; 12385 xcb_out.first_keycode = first_keycode; 12386 xcb_out.keysyms_per_keycode = keysyms_per_keycode; 12387 12388 xcb_parts[2].iov_base = (char *) &xcb_out; 12389 xcb_parts[2].iov_len = sizeof(xcb_out); 12390 xcb_parts[3].iov_base = 0; 12391 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12392 xcb_parts[4].iov_base = (char *) keysyms; 12393 xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t); 12394 xcb_parts[5].iov_base = 0; 12395 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 12396 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12397 return xcb_ret; 12398 } 12399 12400 12401 /***************************************************************************** 12402 ** 12403 ** xcb_void_cookie_t xcb_change_keyboard_mapping 12404 ** 12405 ** @param xcb_connection_t *c 12406 ** @param uint8_t keycode_count 12407 ** @param xcb_keycode_t first_keycode 12408 ** @param uint8_t keysyms_per_keycode 12409 ** @param const xcb_keysym_t *keysyms 12410 ** @returns xcb_void_cookie_t 12411 ** 12412 *****************************************************************************/ 12413 12414 xcb_void_cookie_t 12415 xcb_change_keyboard_mapping (xcb_connection_t *c /**< */, 12416 uint8_t keycode_count /**< */, 12417 xcb_keycode_t first_keycode /**< */, 12418 uint8_t keysyms_per_keycode /**< */, 12419 const xcb_keysym_t *keysyms /**< */) 12420 { 12421 static const xcb_protocol_request_t xcb_req = { 12422 /* count */ 4, 12423 /* ext */ 0, 12424 /* opcode */ XCB_CHANGE_KEYBOARD_MAPPING, 12425 /* isvoid */ 1 12426 }; 12427 12428 struct iovec xcb_parts[6]; 12429 xcb_void_cookie_t xcb_ret; 12430 xcb_change_keyboard_mapping_request_t xcb_out; 12431 12432 xcb_out.keycode_count = keycode_count; 12433 xcb_out.first_keycode = first_keycode; 12434 xcb_out.keysyms_per_keycode = keysyms_per_keycode; 12435 12436 xcb_parts[2].iov_base = (char *) &xcb_out; 12437 xcb_parts[2].iov_len = sizeof(xcb_out); 12438 xcb_parts[3].iov_base = 0; 12439 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12440 xcb_parts[4].iov_base = (char *) keysyms; 12441 xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t); 12442 xcb_parts[5].iov_base = 0; 12443 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 12444 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12445 return xcb_ret; 12446 } 12447 12448 12449 /***************************************************************************** 12450 ** 12451 ** xcb_get_keyboard_mapping_cookie_t xcb_get_keyboard_mapping 12452 ** 12453 ** @param xcb_connection_t *c 12454 ** @param xcb_keycode_t first_keycode 12455 ** @param uint8_t count 12456 ** @returns xcb_get_keyboard_mapping_cookie_t 12457 ** 12458 *****************************************************************************/ 12459 12460 xcb_get_keyboard_mapping_cookie_t 12461 xcb_get_keyboard_mapping (xcb_connection_t *c /**< */, 12462 xcb_keycode_t first_keycode /**< */, 12463 uint8_t count /**< */) 12464 { 12465 static const xcb_protocol_request_t xcb_req = { 12466 /* count */ 2, 12467 /* ext */ 0, 12468 /* opcode */ XCB_GET_KEYBOARD_MAPPING, 12469 /* isvoid */ 0 12470 }; 12471 12472 struct iovec xcb_parts[4]; 12473 xcb_get_keyboard_mapping_cookie_t xcb_ret; 12474 xcb_get_keyboard_mapping_request_t xcb_out; 12475 12476 xcb_out.pad0 = 0; 12477 xcb_out.first_keycode = first_keycode; 12478 xcb_out.count = count; 12479 12480 xcb_parts[2].iov_base = (char *) &xcb_out; 12481 xcb_parts[2].iov_len = sizeof(xcb_out); 12482 xcb_parts[3].iov_base = 0; 12483 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12484 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12485 return xcb_ret; 12486 } 12487 12488 12489 /***************************************************************************** 12490 ** 12491 ** xcb_get_keyboard_mapping_cookie_t xcb_get_keyboard_mapping_unchecked 12492 ** 12493 ** @param xcb_connection_t *c 12494 ** @param xcb_keycode_t first_keycode 12495 ** @param uint8_t count 12496 ** @returns xcb_get_keyboard_mapping_cookie_t 12497 ** 12498 *****************************************************************************/ 12499 12500 xcb_get_keyboard_mapping_cookie_t 12501 xcb_get_keyboard_mapping_unchecked (xcb_connection_t *c /**< */, 12502 xcb_keycode_t first_keycode /**< */, 12503 uint8_t count /**< */) 12504 { 12505 static const xcb_protocol_request_t xcb_req = { 12506 /* count */ 2, 12507 /* ext */ 0, 12508 /* opcode */ XCB_GET_KEYBOARD_MAPPING, 12509 /* isvoid */ 0 12510 }; 12511 12512 struct iovec xcb_parts[4]; 12513 xcb_get_keyboard_mapping_cookie_t xcb_ret; 12514 xcb_get_keyboard_mapping_request_t xcb_out; 12515 12516 xcb_out.pad0 = 0; 12517 xcb_out.first_keycode = first_keycode; 12518 xcb_out.count = count; 12519 12520 xcb_parts[2].iov_base = (char *) &xcb_out; 12521 xcb_parts[2].iov_len = sizeof(xcb_out); 12522 xcb_parts[3].iov_base = 0; 12523 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12524 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12525 return xcb_ret; 12526 } 12527 12528 12529 /***************************************************************************** 12530 ** 12531 ** xcb_keysym_t * xcb_get_keyboard_mapping_keysyms 12532 ** 12533 ** @param const xcb_get_keyboard_mapping_reply_t *R 12534 ** @returns xcb_keysym_t * 12535 ** 12536 *****************************************************************************/ 12537 12538 xcb_keysym_t * 12539 xcb_get_keyboard_mapping_keysyms (const xcb_get_keyboard_mapping_reply_t *R /**< */) 12540 { 12541 return (xcb_keysym_t *) (R + 1); 12542 } 12543 12544 12545 /***************************************************************************** 12546 ** 12547 ** int xcb_get_keyboard_mapping_keysyms_length 12548 ** 12549 ** @param const xcb_get_keyboard_mapping_reply_t *R 12550 ** @returns int 12551 ** 12552 *****************************************************************************/ 12553 12554 int 12555 xcb_get_keyboard_mapping_keysyms_length (const xcb_get_keyboard_mapping_reply_t *R /**< */) 12556 { 12557 return R->length; 12558 } 12559 12560 12561 /***************************************************************************** 12562 ** 12563 ** xcb_generic_iterator_t xcb_get_keyboard_mapping_keysyms_end 12564 ** 12565 ** @param const xcb_get_keyboard_mapping_reply_t *R 12566 ** @returns xcb_generic_iterator_t 12567 ** 12568 *****************************************************************************/ 12569 12570 xcb_generic_iterator_t 12571 xcb_get_keyboard_mapping_keysyms_end (const xcb_get_keyboard_mapping_reply_t *R /**< */) 12572 { 12573 xcb_generic_iterator_t i; 12574 i.data = ((xcb_keysym_t *) (R + 1)) + (R->length); 12575 i.rem = 0; 12576 i.index = (char *) i.data - (char *) R; 12577 return i; 12578 } 12579 12580 12581 /***************************************************************************** 12582 ** 12583 ** xcb_get_keyboard_mapping_reply_t * xcb_get_keyboard_mapping_reply 12584 ** 12585 ** @param xcb_connection_t *c 12586 ** @param xcb_get_keyboard_mapping_cookie_t cookie 12587 ** @param xcb_generic_error_t **e 12588 ** @returns xcb_get_keyboard_mapping_reply_t * 12589 ** 12590 *****************************************************************************/ 12591 12592 xcb_get_keyboard_mapping_reply_t * 12593 xcb_get_keyboard_mapping_reply (xcb_connection_t *c /**< */, 12594 xcb_get_keyboard_mapping_cookie_t cookie /**< */, 12595 xcb_generic_error_t **e /**< */) 12596 { 12597 return (xcb_get_keyboard_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 12598 } 12599 12600 12601 /***************************************************************************** 12602 ** 12603 ** xcb_void_cookie_t xcb_change_keyboard_control_checked 12604 ** 12605 ** @param xcb_connection_t *c 12606 ** @param uint32_t value_mask 12607 ** @param const uint32_t *value_list 12608 ** @returns xcb_void_cookie_t 12609 ** 12610 *****************************************************************************/ 12611 12612 xcb_void_cookie_t 12613 xcb_change_keyboard_control_checked (xcb_connection_t *c /**< */, 12614 uint32_t value_mask /**< */, 12615 const uint32_t *value_list /**< */) 12616 { 12617 static const xcb_protocol_request_t xcb_req = { 12618 /* count */ 4, 12619 /* ext */ 0, 12620 /* opcode */ XCB_CHANGE_KEYBOARD_CONTROL, 12621 /* isvoid */ 1 12622 }; 12623 12624 struct iovec xcb_parts[6]; 12625 xcb_void_cookie_t xcb_ret; 12626 xcb_change_keyboard_control_request_t xcb_out; 12627 12628 xcb_out.pad0 = 0; 12629 xcb_out.value_mask = value_mask; 12630 12631 xcb_parts[2].iov_base = (char *) &xcb_out; 12632 xcb_parts[2].iov_len = sizeof(xcb_out); 12633 xcb_parts[3].iov_base = 0; 12634 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12635 xcb_parts[4].iov_base = (char *) value_list; 12636 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 12637 xcb_parts[5].iov_base = 0; 12638 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 12639 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12640 return xcb_ret; 12641 } 12642 12643 12644 /***************************************************************************** 12645 ** 12646 ** xcb_void_cookie_t xcb_change_keyboard_control 12647 ** 12648 ** @param xcb_connection_t *c 12649 ** @param uint32_t value_mask 12650 ** @param const uint32_t *value_list 12651 ** @returns xcb_void_cookie_t 12652 ** 12653 *****************************************************************************/ 12654 12655 xcb_void_cookie_t 12656 xcb_change_keyboard_control (xcb_connection_t *c /**< */, 12657 uint32_t value_mask /**< */, 12658 const uint32_t *value_list /**< */) 12659 { 12660 static const xcb_protocol_request_t xcb_req = { 12661 /* count */ 4, 12662 /* ext */ 0, 12663 /* opcode */ XCB_CHANGE_KEYBOARD_CONTROL, 12664 /* isvoid */ 1 12665 }; 12666 12667 struct iovec xcb_parts[6]; 12668 xcb_void_cookie_t xcb_ret; 12669 xcb_change_keyboard_control_request_t xcb_out; 12670 12671 xcb_out.pad0 = 0; 12672 xcb_out.value_mask = value_mask; 12673 12674 xcb_parts[2].iov_base = (char *) &xcb_out; 12675 xcb_parts[2].iov_len = sizeof(xcb_out); 12676 xcb_parts[3].iov_base = 0; 12677 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12678 xcb_parts[4].iov_base = (char *) value_list; 12679 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 12680 xcb_parts[5].iov_base = 0; 12681 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 12682 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12683 return xcb_ret; 12684 } 12685 12686 12687 /***************************************************************************** 12688 ** 12689 ** xcb_get_keyboard_control_cookie_t xcb_get_keyboard_control 12690 ** 12691 ** @param xcb_connection_t *c 12692 ** @returns xcb_get_keyboard_control_cookie_t 12693 ** 12694 *****************************************************************************/ 12695 12696 xcb_get_keyboard_control_cookie_t 12697 xcb_get_keyboard_control (xcb_connection_t *c /**< */) 12698 { 12699 static const xcb_protocol_request_t xcb_req = { 12700 /* count */ 2, 12701 /* ext */ 0, 12702 /* opcode */ XCB_GET_KEYBOARD_CONTROL, 12703 /* isvoid */ 0 12704 }; 12705 12706 struct iovec xcb_parts[4]; 12707 xcb_get_keyboard_control_cookie_t xcb_ret; 12708 xcb_get_keyboard_control_request_t xcb_out; 12709 12710 xcb_out.pad0 = 0; 12711 12712 xcb_parts[2].iov_base = (char *) &xcb_out; 12713 xcb_parts[2].iov_len = sizeof(xcb_out); 12714 xcb_parts[3].iov_base = 0; 12715 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12716 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12717 return xcb_ret; 12718 } 12719 12720 12721 /***************************************************************************** 12722 ** 12723 ** xcb_get_keyboard_control_cookie_t xcb_get_keyboard_control_unchecked 12724 ** 12725 ** @param xcb_connection_t *c 12726 ** @returns xcb_get_keyboard_control_cookie_t 12727 ** 12728 *****************************************************************************/ 12729 12730 xcb_get_keyboard_control_cookie_t 12731 xcb_get_keyboard_control_unchecked (xcb_connection_t *c /**< */) 12732 { 12733 static const xcb_protocol_request_t xcb_req = { 12734 /* count */ 2, 12735 /* ext */ 0, 12736 /* opcode */ XCB_GET_KEYBOARD_CONTROL, 12737 /* isvoid */ 0 12738 }; 12739 12740 struct iovec xcb_parts[4]; 12741 xcb_get_keyboard_control_cookie_t xcb_ret; 12742 xcb_get_keyboard_control_request_t xcb_out; 12743 12744 xcb_out.pad0 = 0; 12745 12746 xcb_parts[2].iov_base = (char *) &xcb_out; 12747 xcb_parts[2].iov_len = sizeof(xcb_out); 12748 xcb_parts[3].iov_base = 0; 12749 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12750 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12751 return xcb_ret; 12752 } 12753 12754 12755 /***************************************************************************** 12756 ** 12757 ** xcb_get_keyboard_control_reply_t * xcb_get_keyboard_control_reply 12758 ** 12759 ** @param xcb_connection_t *c 12760 ** @param xcb_get_keyboard_control_cookie_t cookie 12761 ** @param xcb_generic_error_t **e 12762 ** @returns xcb_get_keyboard_control_reply_t * 12763 ** 12764 *****************************************************************************/ 12765 12766 xcb_get_keyboard_control_reply_t * 12767 xcb_get_keyboard_control_reply (xcb_connection_t *c /**< */, 12768 xcb_get_keyboard_control_cookie_t cookie /**< */, 12769 xcb_generic_error_t **e /**< */) 12770 { 12771 return (xcb_get_keyboard_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 12772 } 12773 12774 12775 /***************************************************************************** 12776 ** 12777 ** xcb_void_cookie_t xcb_bell_checked 12778 ** 12779 ** @param xcb_connection_t *c 12780 ** @param int8_t percent 12781 ** @returns xcb_void_cookie_t 12782 ** 12783 *****************************************************************************/ 12784 12785 xcb_void_cookie_t 12786 xcb_bell_checked (xcb_connection_t *c /**< */, 12787 int8_t percent /**< */) 12788 { 12789 static const xcb_protocol_request_t xcb_req = { 12790 /* count */ 2, 12791 /* ext */ 0, 12792 /* opcode */ XCB_BELL, 12793 /* isvoid */ 1 12794 }; 12795 12796 struct iovec xcb_parts[4]; 12797 xcb_void_cookie_t xcb_ret; 12798 xcb_bell_request_t xcb_out; 12799 12800 xcb_out.percent = percent; 12801 12802 xcb_parts[2].iov_base = (char *) &xcb_out; 12803 xcb_parts[2].iov_len = sizeof(xcb_out); 12804 xcb_parts[3].iov_base = 0; 12805 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12806 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12807 return xcb_ret; 12808 } 12809 12810 12811 /***************************************************************************** 12812 ** 12813 ** xcb_void_cookie_t xcb_bell 12814 ** 12815 ** @param xcb_connection_t *c 12816 ** @param int8_t percent 12817 ** @returns xcb_void_cookie_t 12818 ** 12819 *****************************************************************************/ 12820 12821 xcb_void_cookie_t 12822 xcb_bell (xcb_connection_t *c /**< */, 12823 int8_t percent /**< */) 12824 { 12825 static const xcb_protocol_request_t xcb_req = { 12826 /* count */ 2, 12827 /* ext */ 0, 12828 /* opcode */ XCB_BELL, 12829 /* isvoid */ 1 12830 }; 12831 12832 struct iovec xcb_parts[4]; 12833 xcb_void_cookie_t xcb_ret; 12834 xcb_bell_request_t xcb_out; 12835 12836 xcb_out.percent = percent; 12837 12838 xcb_parts[2].iov_base = (char *) &xcb_out; 12839 xcb_parts[2].iov_len = sizeof(xcb_out); 12840 xcb_parts[3].iov_base = 0; 12841 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12842 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12843 return xcb_ret; 12844 } 12845 12846 12847 /***************************************************************************** 12848 ** 12849 ** xcb_void_cookie_t xcb_change_pointer_control_checked 12850 ** 12851 ** @param xcb_connection_t *c 12852 ** @param int16_t acceleration_numerator 12853 ** @param int16_t acceleration_denominator 12854 ** @param int16_t threshold 12855 ** @param uint8_t do_acceleration 12856 ** @param uint8_t do_threshold 12857 ** @returns xcb_void_cookie_t 12858 ** 12859 *****************************************************************************/ 12860 12861 xcb_void_cookie_t 12862 xcb_change_pointer_control_checked (xcb_connection_t *c /**< */, 12863 int16_t acceleration_numerator /**< */, 12864 int16_t acceleration_denominator /**< */, 12865 int16_t threshold /**< */, 12866 uint8_t do_acceleration /**< */, 12867 uint8_t do_threshold /**< */) 12868 { 12869 static const xcb_protocol_request_t xcb_req = { 12870 /* count */ 2, 12871 /* ext */ 0, 12872 /* opcode */ XCB_CHANGE_POINTER_CONTROL, 12873 /* isvoid */ 1 12874 }; 12875 12876 struct iovec xcb_parts[4]; 12877 xcb_void_cookie_t xcb_ret; 12878 xcb_change_pointer_control_request_t xcb_out; 12879 12880 xcb_out.pad0 = 0; 12881 xcb_out.acceleration_numerator = acceleration_numerator; 12882 xcb_out.acceleration_denominator = acceleration_denominator; 12883 xcb_out.threshold = threshold; 12884 xcb_out.do_acceleration = do_acceleration; 12885 xcb_out.do_threshold = do_threshold; 12886 12887 xcb_parts[2].iov_base = (char *) &xcb_out; 12888 xcb_parts[2].iov_len = sizeof(xcb_out); 12889 xcb_parts[3].iov_base = 0; 12890 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12891 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12892 return xcb_ret; 12893 } 12894 12895 12896 /***************************************************************************** 12897 ** 12898 ** xcb_void_cookie_t xcb_change_pointer_control 12899 ** 12900 ** @param xcb_connection_t *c 12901 ** @param int16_t acceleration_numerator 12902 ** @param int16_t acceleration_denominator 12903 ** @param int16_t threshold 12904 ** @param uint8_t do_acceleration 12905 ** @param uint8_t do_threshold 12906 ** @returns xcb_void_cookie_t 12907 ** 12908 *****************************************************************************/ 12909 12910 xcb_void_cookie_t 12911 xcb_change_pointer_control (xcb_connection_t *c /**< */, 12912 int16_t acceleration_numerator /**< */, 12913 int16_t acceleration_denominator /**< */, 12914 int16_t threshold /**< */, 12915 uint8_t do_acceleration /**< */, 12916 uint8_t do_threshold /**< */) 12917 { 12918 static const xcb_protocol_request_t xcb_req = { 12919 /* count */ 2, 12920 /* ext */ 0, 12921 /* opcode */ XCB_CHANGE_POINTER_CONTROL, 12922 /* isvoid */ 1 12923 }; 12924 12925 struct iovec xcb_parts[4]; 12926 xcb_void_cookie_t xcb_ret; 12927 xcb_change_pointer_control_request_t xcb_out; 12928 12929 xcb_out.pad0 = 0; 12930 xcb_out.acceleration_numerator = acceleration_numerator; 12931 xcb_out.acceleration_denominator = acceleration_denominator; 12932 xcb_out.threshold = threshold; 12933 xcb_out.do_acceleration = do_acceleration; 12934 xcb_out.do_threshold = do_threshold; 12935 12936 xcb_parts[2].iov_base = (char *) &xcb_out; 12937 xcb_parts[2].iov_len = sizeof(xcb_out); 12938 xcb_parts[3].iov_base = 0; 12939 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12940 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12941 return xcb_ret; 12942 } 12943 12944 12945 /***************************************************************************** 12946 ** 12947 ** xcb_get_pointer_control_cookie_t xcb_get_pointer_control 12948 ** 12949 ** @param xcb_connection_t *c 12950 ** @returns xcb_get_pointer_control_cookie_t 12951 ** 12952 *****************************************************************************/ 12953 12954 xcb_get_pointer_control_cookie_t 12955 xcb_get_pointer_control (xcb_connection_t *c /**< */) 12956 { 12957 static const xcb_protocol_request_t xcb_req = { 12958 /* count */ 2, 12959 /* ext */ 0, 12960 /* opcode */ XCB_GET_POINTER_CONTROL, 12961 /* isvoid */ 0 12962 }; 12963 12964 struct iovec xcb_parts[4]; 12965 xcb_get_pointer_control_cookie_t xcb_ret; 12966 xcb_get_pointer_control_request_t xcb_out; 12967 12968 xcb_out.pad0 = 0; 12969 12970 xcb_parts[2].iov_base = (char *) &xcb_out; 12971 xcb_parts[2].iov_len = sizeof(xcb_out); 12972 xcb_parts[3].iov_base = 0; 12973 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 12974 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12975 return xcb_ret; 12976 } 12977 12978 12979 /***************************************************************************** 12980 ** 12981 ** xcb_get_pointer_control_cookie_t xcb_get_pointer_control_unchecked 12982 ** 12983 ** @param xcb_connection_t *c 12984 ** @returns xcb_get_pointer_control_cookie_t 12985 ** 12986 *****************************************************************************/ 12987 12988 xcb_get_pointer_control_cookie_t 12989 xcb_get_pointer_control_unchecked (xcb_connection_t *c /**< */) 12990 { 12991 static const xcb_protocol_request_t xcb_req = { 12992 /* count */ 2, 12993 /* ext */ 0, 12994 /* opcode */ XCB_GET_POINTER_CONTROL, 12995 /* isvoid */ 0 12996 }; 12997 12998 struct iovec xcb_parts[4]; 12999 xcb_get_pointer_control_cookie_t xcb_ret; 13000 xcb_get_pointer_control_request_t xcb_out; 13001 13002 xcb_out.pad0 = 0; 13003 13004 xcb_parts[2].iov_base = (char *) &xcb_out; 13005 xcb_parts[2].iov_len = sizeof(xcb_out); 13006 xcb_parts[3].iov_base = 0; 13007 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13008 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13009 return xcb_ret; 13010 } 13011 13012 13013 /***************************************************************************** 13014 ** 13015 ** xcb_get_pointer_control_reply_t * xcb_get_pointer_control_reply 13016 ** 13017 ** @param xcb_connection_t *c 13018 ** @param xcb_get_pointer_control_cookie_t cookie 13019 ** @param xcb_generic_error_t **e 13020 ** @returns xcb_get_pointer_control_reply_t * 13021 ** 13022 *****************************************************************************/ 13023 13024 xcb_get_pointer_control_reply_t * 13025 xcb_get_pointer_control_reply (xcb_connection_t *c /**< */, 13026 xcb_get_pointer_control_cookie_t cookie /**< */, 13027 xcb_generic_error_t **e /**< */) 13028 { 13029 return (xcb_get_pointer_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 13030 } 13031 13032 13033 /***************************************************************************** 13034 ** 13035 ** xcb_void_cookie_t xcb_set_screen_saver_checked 13036 ** 13037 ** @param xcb_connection_t *c 13038 ** @param int16_t timeout 13039 ** @param int16_t interval 13040 ** @param uint8_t prefer_blanking 13041 ** @param uint8_t allow_exposures 13042 ** @returns xcb_void_cookie_t 13043 ** 13044 *****************************************************************************/ 13045 13046 xcb_void_cookie_t 13047 xcb_set_screen_saver_checked (xcb_connection_t *c /**< */, 13048 int16_t timeout /**< */, 13049 int16_t interval /**< */, 13050 uint8_t prefer_blanking /**< */, 13051 uint8_t allow_exposures /**< */) 13052 { 13053 static const xcb_protocol_request_t xcb_req = { 13054 /* count */ 2, 13055 /* ext */ 0, 13056 /* opcode */ XCB_SET_SCREEN_SAVER, 13057 /* isvoid */ 1 13058 }; 13059 13060 struct iovec xcb_parts[4]; 13061 xcb_void_cookie_t xcb_ret; 13062 xcb_set_screen_saver_request_t xcb_out; 13063 13064 xcb_out.pad0 = 0; 13065 xcb_out.timeout = timeout; 13066 xcb_out.interval = interval; 13067 xcb_out.prefer_blanking = prefer_blanking; 13068 xcb_out.allow_exposures = allow_exposures; 13069 13070 xcb_parts[2].iov_base = (char *) &xcb_out; 13071 xcb_parts[2].iov_len = sizeof(xcb_out); 13072 xcb_parts[3].iov_base = 0; 13073 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13074 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13075 return xcb_ret; 13076 } 13077 13078 13079 /***************************************************************************** 13080 ** 13081 ** xcb_void_cookie_t xcb_set_screen_saver 13082 ** 13083 ** @param xcb_connection_t *c 13084 ** @param int16_t timeout 13085 ** @param int16_t interval 13086 ** @param uint8_t prefer_blanking 13087 ** @param uint8_t allow_exposures 13088 ** @returns xcb_void_cookie_t 13089 ** 13090 *****************************************************************************/ 13091 13092 xcb_void_cookie_t 13093 xcb_set_screen_saver (xcb_connection_t *c /**< */, 13094 int16_t timeout /**< */, 13095 int16_t interval /**< */, 13096 uint8_t prefer_blanking /**< */, 13097 uint8_t allow_exposures /**< */) 13098 { 13099 static const xcb_protocol_request_t xcb_req = { 13100 /* count */ 2, 13101 /* ext */ 0, 13102 /* opcode */ XCB_SET_SCREEN_SAVER, 13103 /* isvoid */ 1 13104 }; 13105 13106 struct iovec xcb_parts[4]; 13107 xcb_void_cookie_t xcb_ret; 13108 xcb_set_screen_saver_request_t xcb_out; 13109 13110 xcb_out.pad0 = 0; 13111 xcb_out.timeout = timeout; 13112 xcb_out.interval = interval; 13113 xcb_out.prefer_blanking = prefer_blanking; 13114 xcb_out.allow_exposures = allow_exposures; 13115 13116 xcb_parts[2].iov_base = (char *) &xcb_out; 13117 xcb_parts[2].iov_len = sizeof(xcb_out); 13118 xcb_parts[3].iov_base = 0; 13119 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13120 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13121 return xcb_ret; 13122 } 13123 13124 13125 /***************************************************************************** 13126 ** 13127 ** xcb_get_screen_saver_cookie_t xcb_get_screen_saver 13128 ** 13129 ** @param xcb_connection_t *c 13130 ** @returns xcb_get_screen_saver_cookie_t 13131 ** 13132 *****************************************************************************/ 13133 13134 xcb_get_screen_saver_cookie_t 13135 xcb_get_screen_saver (xcb_connection_t *c /**< */) 13136 { 13137 static const xcb_protocol_request_t xcb_req = { 13138 /* count */ 2, 13139 /* ext */ 0, 13140 /* opcode */ XCB_GET_SCREEN_SAVER, 13141 /* isvoid */ 0 13142 }; 13143 13144 struct iovec xcb_parts[4]; 13145 xcb_get_screen_saver_cookie_t xcb_ret; 13146 xcb_get_screen_saver_request_t xcb_out; 13147 13148 xcb_out.pad0 = 0; 13149 13150 xcb_parts[2].iov_base = (char *) &xcb_out; 13151 xcb_parts[2].iov_len = sizeof(xcb_out); 13152 xcb_parts[3].iov_base = 0; 13153 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13154 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13155 return xcb_ret; 13156 } 13157 13158 13159 /***************************************************************************** 13160 ** 13161 ** xcb_get_screen_saver_cookie_t xcb_get_screen_saver_unchecked 13162 ** 13163 ** @param xcb_connection_t *c 13164 ** @returns xcb_get_screen_saver_cookie_t 13165 ** 13166 *****************************************************************************/ 13167 13168 xcb_get_screen_saver_cookie_t 13169 xcb_get_screen_saver_unchecked (xcb_connection_t *c /**< */) 13170 { 13171 static const xcb_protocol_request_t xcb_req = { 13172 /* count */ 2, 13173 /* ext */ 0, 13174 /* opcode */ XCB_GET_SCREEN_SAVER, 13175 /* isvoid */ 0 13176 }; 13177 13178 struct iovec xcb_parts[4]; 13179 xcb_get_screen_saver_cookie_t xcb_ret; 13180 xcb_get_screen_saver_request_t xcb_out; 13181 13182 xcb_out.pad0 = 0; 13183 13184 xcb_parts[2].iov_base = (char *) &xcb_out; 13185 xcb_parts[2].iov_len = sizeof(xcb_out); 13186 xcb_parts[3].iov_base = 0; 13187 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13188 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13189 return xcb_ret; 13190 } 13191 13192 13193 /***************************************************************************** 13194 ** 13195 ** xcb_get_screen_saver_reply_t * xcb_get_screen_saver_reply 13196 ** 13197 ** @param xcb_connection_t *c 13198 ** @param xcb_get_screen_saver_cookie_t cookie 13199 ** @param xcb_generic_error_t **e 13200 ** @returns xcb_get_screen_saver_reply_t * 13201 ** 13202 *****************************************************************************/ 13203 13204 xcb_get_screen_saver_reply_t * 13205 xcb_get_screen_saver_reply (xcb_connection_t *c /**< */, 13206 xcb_get_screen_saver_cookie_t cookie /**< */, 13207 xcb_generic_error_t **e /**< */) 13208 { 13209 return (xcb_get_screen_saver_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 13210 } 13211 13212 13213 /***************************************************************************** 13214 ** 13215 ** xcb_void_cookie_t xcb_change_hosts_checked 13216 ** 13217 ** @param xcb_connection_t *c 13218 ** @param uint8_t mode 13219 ** @param uint8_t family 13220 ** @param uint16_t address_len 13221 ** @param const char *address 13222 ** @returns xcb_void_cookie_t 13223 ** 13224 *****************************************************************************/ 13225 13226 xcb_void_cookie_t 13227 xcb_change_hosts_checked (xcb_connection_t *c /**< */, 13228 uint8_t mode /**< */, 13229 uint8_t family /**< */, 13230 uint16_t address_len /**< */, 13231 const char *address /**< */) 13232 { 13233 static const xcb_protocol_request_t xcb_req = { 13234 /* count */ 4, 13235 /* ext */ 0, 13236 /* opcode */ XCB_CHANGE_HOSTS, 13237 /* isvoid */ 1 13238 }; 13239 13240 struct iovec xcb_parts[6]; 13241 xcb_void_cookie_t xcb_ret; 13242 xcb_change_hosts_request_t xcb_out; 13243 13244 xcb_out.mode = mode; 13245 xcb_out.family = family; 13246 xcb_out.pad0 = 0; 13247 xcb_out.address_len = address_len; 13248 13249 xcb_parts[2].iov_base = (char *) &xcb_out; 13250 xcb_parts[2].iov_len = sizeof(xcb_out); 13251 xcb_parts[3].iov_base = 0; 13252 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13253 xcb_parts[4].iov_base = (char *) address; 13254 xcb_parts[4].iov_len = address_len * sizeof(char); 13255 xcb_parts[5].iov_base = 0; 13256 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 13257 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13258 return xcb_ret; 13259 } 13260 13261 13262 /***************************************************************************** 13263 ** 13264 ** xcb_void_cookie_t xcb_change_hosts 13265 ** 13266 ** @param xcb_connection_t *c 13267 ** @param uint8_t mode 13268 ** @param uint8_t family 13269 ** @param uint16_t address_len 13270 ** @param const char *address 13271 ** @returns xcb_void_cookie_t 13272 ** 13273 *****************************************************************************/ 13274 13275 xcb_void_cookie_t 13276 xcb_change_hosts (xcb_connection_t *c /**< */, 13277 uint8_t mode /**< */, 13278 uint8_t family /**< */, 13279 uint16_t address_len /**< */, 13280 const char *address /**< */) 13281 { 13282 static const xcb_protocol_request_t xcb_req = { 13283 /* count */ 4, 13284 /* ext */ 0, 13285 /* opcode */ XCB_CHANGE_HOSTS, 13286 /* isvoid */ 1 13287 }; 13288 13289 struct iovec xcb_parts[6]; 13290 xcb_void_cookie_t xcb_ret; 13291 xcb_change_hosts_request_t xcb_out; 13292 13293 xcb_out.mode = mode; 13294 xcb_out.family = family; 13295 xcb_out.pad0 = 0; 13296 xcb_out.address_len = address_len; 13297 13298 xcb_parts[2].iov_base = (char *) &xcb_out; 13299 xcb_parts[2].iov_len = sizeof(xcb_out); 13300 xcb_parts[3].iov_base = 0; 13301 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13302 xcb_parts[4].iov_base = (char *) address; 13303 xcb_parts[4].iov_len = address_len * sizeof(char); 13304 xcb_parts[5].iov_base = 0; 13305 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 13306 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13307 return xcb_ret; 13308 } 13309 13310 13311 /***************************************************************************** 13312 ** 13313 ** uint8_t * xcb_host_address 13314 ** 13315 ** @param const xcb_host_t *R 13316 ** @returns uint8_t * 13317 ** 13318 *****************************************************************************/ 13319 13320 uint8_t * 13321 xcb_host_address (const xcb_host_t *R /**< */) 13322 { 13323 return (uint8_t *) (R + 1); 13324 } 13325 13326 13327 /***************************************************************************** 13328 ** 13329 ** int xcb_host_address_length 13330 ** 13331 ** @param const xcb_host_t *R 13332 ** @returns int 13333 ** 13334 *****************************************************************************/ 13335 13336 int 13337 xcb_host_address_length (const xcb_host_t *R /**< */) 13338 { 13339 return R->address_len; 13340 } 13341 13342 13343 /***************************************************************************** 13344 ** 13345 ** xcb_generic_iterator_t xcb_host_address_end 13346 ** 13347 ** @param const xcb_host_t *R 13348 ** @returns xcb_generic_iterator_t 13349 ** 13350 *****************************************************************************/ 13351 13352 xcb_generic_iterator_t 13353 xcb_host_address_end (const xcb_host_t *R /**< */) 13354 { 13355 xcb_generic_iterator_t i; 13356 i.data = ((uint8_t *) (R + 1)) + (R->address_len); 13357 i.rem = 0; 13358 i.index = (char *) i.data - (char *) R; 13359 return i; 13360 } 13361 13362 13363 /***************************************************************************** 13364 ** 13365 ** void xcb_host_next 13366 ** 13367 ** @param xcb_host_iterator_t *i 13368 ** @returns void 13369 ** 13370 *****************************************************************************/ 13371 13372 void 13373 xcb_host_next (xcb_host_iterator_t *i /**< */) 13374 { 13375 xcb_host_t *R = i->data; 13376 xcb_generic_iterator_t child = xcb_host_address_end(R); 13377 --i->rem; 13378 i->data = (xcb_host_t *) child.data; 13379 i->index = child.index; 13380 } 13381 13382 13383 /***************************************************************************** 13384 ** 13385 ** xcb_generic_iterator_t xcb_host_end 13386 ** 13387 ** @param xcb_host_iterator_t i 13388 ** @returns xcb_generic_iterator_t 13389 ** 13390 *****************************************************************************/ 13391 13392 xcb_generic_iterator_t 13393 xcb_host_end (xcb_host_iterator_t i /**< */) 13394 { 13395 xcb_generic_iterator_t ret; 13396 while(i.rem > 0) 13397 xcb_host_next(&i); 13398 ret.data = i.data; 13399 ret.rem = i.rem; 13400 ret.index = i.index; 13401 return ret; 13402 } 13403 13404 13405 /***************************************************************************** 13406 ** 13407 ** xcb_list_hosts_cookie_t xcb_list_hosts 13408 ** 13409 ** @param xcb_connection_t *c 13410 ** @returns xcb_list_hosts_cookie_t 13411 ** 13412 *****************************************************************************/ 13413 13414 xcb_list_hosts_cookie_t 13415 xcb_list_hosts (xcb_connection_t *c /**< */) 13416 { 13417 static const xcb_protocol_request_t xcb_req = { 13418 /* count */ 2, 13419 /* ext */ 0, 13420 /* opcode */ XCB_LIST_HOSTS, 13421 /* isvoid */ 0 13422 }; 13423 13424 struct iovec xcb_parts[4]; 13425 xcb_list_hosts_cookie_t xcb_ret; 13426 xcb_list_hosts_request_t xcb_out; 13427 13428 xcb_out.pad0 = 0; 13429 13430 xcb_parts[2].iov_base = (char *) &xcb_out; 13431 xcb_parts[2].iov_len = sizeof(xcb_out); 13432 xcb_parts[3].iov_base = 0; 13433 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13434 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13435 return xcb_ret; 13436 } 13437 13438 13439 /***************************************************************************** 13440 ** 13441 ** xcb_list_hosts_cookie_t xcb_list_hosts_unchecked 13442 ** 13443 ** @param xcb_connection_t *c 13444 ** @returns xcb_list_hosts_cookie_t 13445 ** 13446 *****************************************************************************/ 13447 13448 xcb_list_hosts_cookie_t 13449 xcb_list_hosts_unchecked (xcb_connection_t *c /**< */) 13450 { 13451 static const xcb_protocol_request_t xcb_req = { 13452 /* count */ 2, 13453 /* ext */ 0, 13454 /* opcode */ XCB_LIST_HOSTS, 13455 /* isvoid */ 0 13456 }; 13457 13458 struct iovec xcb_parts[4]; 13459 xcb_list_hosts_cookie_t xcb_ret; 13460 xcb_list_hosts_request_t xcb_out; 13461 13462 xcb_out.pad0 = 0; 13463 13464 xcb_parts[2].iov_base = (char *) &xcb_out; 13465 xcb_parts[2].iov_len = sizeof(xcb_out); 13466 xcb_parts[3].iov_base = 0; 13467 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13468 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13469 return xcb_ret; 13470 } 13471 13472 13473 /***************************************************************************** 13474 ** 13475 ** int xcb_list_hosts_hosts_length 13476 ** 13477 ** @param const xcb_list_hosts_reply_t *R 13478 ** @returns int 13479 ** 13480 *****************************************************************************/ 13481 13482 int 13483 xcb_list_hosts_hosts_length (const xcb_list_hosts_reply_t *R /**< */) 13484 { 13485 return R->hosts_len; 13486 } 13487 13488 13489 /***************************************************************************** 13490 ** 13491 ** xcb_host_iterator_t xcb_list_hosts_hosts_iterator 13492 ** 13493 ** @param const xcb_list_hosts_reply_t *R 13494 ** @returns xcb_host_iterator_t 13495 ** 13496 *****************************************************************************/ 13497 13498 xcb_host_iterator_t 13499 xcb_list_hosts_hosts_iterator (const xcb_list_hosts_reply_t *R /**< */) 13500 { 13501 xcb_host_iterator_t i; 13502 i.data = (xcb_host_t *) (R + 1); 13503 i.rem = R->hosts_len; 13504 i.index = (char *) i.data - (char *) R; 13505 return i; 13506 } 13507 13508 13509 /***************************************************************************** 13510 ** 13511 ** xcb_list_hosts_reply_t * xcb_list_hosts_reply 13512 ** 13513 ** @param xcb_connection_t *c 13514 ** @param xcb_list_hosts_cookie_t cookie 13515 ** @param xcb_generic_error_t **e 13516 ** @returns xcb_list_hosts_reply_t * 13517 ** 13518 *****************************************************************************/ 13519 13520 xcb_list_hosts_reply_t * 13521 xcb_list_hosts_reply (xcb_connection_t *c /**< */, 13522 xcb_list_hosts_cookie_t cookie /**< */, 13523 xcb_generic_error_t **e /**< */) 13524 { 13525 return (xcb_list_hosts_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 13526 } 13527 13528 13529 /***************************************************************************** 13530 ** 13531 ** xcb_void_cookie_t xcb_set_access_control_checked 13532 ** 13533 ** @param xcb_connection_t *c 13534 ** @param uint8_t mode 13535 ** @returns xcb_void_cookie_t 13536 ** 13537 *****************************************************************************/ 13538 13539 xcb_void_cookie_t 13540 xcb_set_access_control_checked (xcb_connection_t *c /**< */, 13541 uint8_t mode /**< */) 13542 { 13543 static const xcb_protocol_request_t xcb_req = { 13544 /* count */ 2, 13545 /* ext */ 0, 13546 /* opcode */ XCB_SET_ACCESS_CONTROL, 13547 /* isvoid */ 1 13548 }; 13549 13550 struct iovec xcb_parts[4]; 13551 xcb_void_cookie_t xcb_ret; 13552 xcb_set_access_control_request_t xcb_out; 13553 13554 xcb_out.mode = mode; 13555 13556 xcb_parts[2].iov_base = (char *) &xcb_out; 13557 xcb_parts[2].iov_len = sizeof(xcb_out); 13558 xcb_parts[3].iov_base = 0; 13559 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13560 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13561 return xcb_ret; 13562 } 13563 13564 13565 /***************************************************************************** 13566 ** 13567 ** xcb_void_cookie_t xcb_set_access_control 13568 ** 13569 ** @param xcb_connection_t *c 13570 ** @param uint8_t mode 13571 ** @returns xcb_void_cookie_t 13572 ** 13573 *****************************************************************************/ 13574 13575 xcb_void_cookie_t 13576 xcb_set_access_control (xcb_connection_t *c /**< */, 13577 uint8_t mode /**< */) 13578 { 13579 static const xcb_protocol_request_t xcb_req = { 13580 /* count */ 2, 13581 /* ext */ 0, 13582 /* opcode */ XCB_SET_ACCESS_CONTROL, 13583 /* isvoid */ 1 13584 }; 13585 13586 struct iovec xcb_parts[4]; 13587 xcb_void_cookie_t xcb_ret; 13588 xcb_set_access_control_request_t xcb_out; 13589 13590 xcb_out.mode = mode; 13591 13592 xcb_parts[2].iov_base = (char *) &xcb_out; 13593 xcb_parts[2].iov_len = sizeof(xcb_out); 13594 xcb_parts[3].iov_base = 0; 13595 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13596 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13597 return xcb_ret; 13598 } 13599 13600 13601 /***************************************************************************** 13602 ** 13603 ** xcb_void_cookie_t xcb_set_close_down_mode_checked 13604 ** 13605 ** @param xcb_connection_t *c 13606 ** @param uint8_t mode 13607 ** @returns xcb_void_cookie_t 13608 ** 13609 *****************************************************************************/ 13610 13611 xcb_void_cookie_t 13612 xcb_set_close_down_mode_checked (xcb_connection_t *c /**< */, 13613 uint8_t mode /**< */) 13614 { 13615 static const xcb_protocol_request_t xcb_req = { 13616 /* count */ 2, 13617 /* ext */ 0, 13618 /* opcode */ XCB_SET_CLOSE_DOWN_MODE, 13619 /* isvoid */ 1 13620 }; 13621 13622 struct iovec xcb_parts[4]; 13623 xcb_void_cookie_t xcb_ret; 13624 xcb_set_close_down_mode_request_t xcb_out; 13625 13626 xcb_out.mode = mode; 13627 13628 xcb_parts[2].iov_base = (char *) &xcb_out; 13629 xcb_parts[2].iov_len = sizeof(xcb_out); 13630 xcb_parts[3].iov_base = 0; 13631 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13632 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13633 return xcb_ret; 13634 } 13635 13636 13637 /***************************************************************************** 13638 ** 13639 ** xcb_void_cookie_t xcb_set_close_down_mode 13640 ** 13641 ** @param xcb_connection_t *c 13642 ** @param uint8_t mode 13643 ** @returns xcb_void_cookie_t 13644 ** 13645 *****************************************************************************/ 13646 13647 xcb_void_cookie_t 13648 xcb_set_close_down_mode (xcb_connection_t *c /**< */, 13649 uint8_t mode /**< */) 13650 { 13651 static const xcb_protocol_request_t xcb_req = { 13652 /* count */ 2, 13653 /* ext */ 0, 13654 /* opcode */ XCB_SET_CLOSE_DOWN_MODE, 13655 /* isvoid */ 1 13656 }; 13657 13658 struct iovec xcb_parts[4]; 13659 xcb_void_cookie_t xcb_ret; 13660 xcb_set_close_down_mode_request_t xcb_out; 13661 13662 xcb_out.mode = mode; 13663 13664 xcb_parts[2].iov_base = (char *) &xcb_out; 13665 xcb_parts[2].iov_len = sizeof(xcb_out); 13666 xcb_parts[3].iov_base = 0; 13667 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13668 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13669 return xcb_ret; 13670 } 13671 13672 13673 /***************************************************************************** 13674 ** 13675 ** xcb_void_cookie_t xcb_kill_client_checked 13676 ** 13677 ** @param xcb_connection_t *c 13678 ** @param uint32_t resource 13679 ** @returns xcb_void_cookie_t 13680 ** 13681 *****************************************************************************/ 13682 13683 xcb_void_cookie_t 13684 xcb_kill_client_checked (xcb_connection_t *c /**< */, 13685 uint32_t resource /**< */) 13686 { 13687 static const xcb_protocol_request_t xcb_req = { 13688 /* count */ 2, 13689 /* ext */ 0, 13690 /* opcode */ XCB_KILL_CLIENT, 13691 /* isvoid */ 1 13692 }; 13693 13694 struct iovec xcb_parts[4]; 13695 xcb_void_cookie_t xcb_ret; 13696 xcb_kill_client_request_t xcb_out; 13697 13698 xcb_out.pad0 = 0; 13699 xcb_out.resource = resource; 13700 13701 xcb_parts[2].iov_base = (char *) &xcb_out; 13702 xcb_parts[2].iov_len = sizeof(xcb_out); 13703 xcb_parts[3].iov_base = 0; 13704 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13705 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13706 return xcb_ret; 13707 } 13708 13709 13710 /***************************************************************************** 13711 ** 13712 ** xcb_void_cookie_t xcb_kill_client 13713 ** 13714 ** @param xcb_connection_t *c 13715 ** @param uint32_t resource 13716 ** @returns xcb_void_cookie_t 13717 ** 13718 *****************************************************************************/ 13719 13720 xcb_void_cookie_t 13721 xcb_kill_client (xcb_connection_t *c /**< */, 13722 uint32_t resource /**< */) 13723 { 13724 static const xcb_protocol_request_t xcb_req = { 13725 /* count */ 2, 13726 /* ext */ 0, 13727 /* opcode */ XCB_KILL_CLIENT, 13728 /* isvoid */ 1 13729 }; 13730 13731 struct iovec xcb_parts[4]; 13732 xcb_void_cookie_t xcb_ret; 13733 xcb_kill_client_request_t xcb_out; 13734 13735 xcb_out.pad0 = 0; 13736 xcb_out.resource = resource; 13737 13738 xcb_parts[2].iov_base = (char *) &xcb_out; 13739 xcb_parts[2].iov_len = sizeof(xcb_out); 13740 xcb_parts[3].iov_base = 0; 13741 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13742 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13743 return xcb_ret; 13744 } 13745 13746 13747 /***************************************************************************** 13748 ** 13749 ** xcb_void_cookie_t xcb_rotate_properties_checked 13750 ** 13751 ** @param xcb_connection_t *c 13752 ** @param xcb_window_t window 13753 ** @param uint16_t atoms_len 13754 ** @param int16_t delta 13755 ** @param const xcb_atom_t *atoms 13756 ** @returns xcb_void_cookie_t 13757 ** 13758 *****************************************************************************/ 13759 13760 xcb_void_cookie_t 13761 xcb_rotate_properties_checked (xcb_connection_t *c /**< */, 13762 xcb_window_t window /**< */, 13763 uint16_t atoms_len /**< */, 13764 int16_t delta /**< */, 13765 const xcb_atom_t *atoms /**< */) 13766 { 13767 static const xcb_protocol_request_t xcb_req = { 13768 /* count */ 4, 13769 /* ext */ 0, 13770 /* opcode */ XCB_ROTATE_PROPERTIES, 13771 /* isvoid */ 1 13772 }; 13773 13774 struct iovec xcb_parts[6]; 13775 xcb_void_cookie_t xcb_ret; 13776 xcb_rotate_properties_request_t xcb_out; 13777 13778 xcb_out.pad0 = 0; 13779 xcb_out.window = window; 13780 xcb_out.atoms_len = atoms_len; 13781 xcb_out.delta = delta; 13782 13783 xcb_parts[2].iov_base = (char *) &xcb_out; 13784 xcb_parts[2].iov_len = sizeof(xcb_out); 13785 xcb_parts[3].iov_base = 0; 13786 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13787 xcb_parts[4].iov_base = (char *) atoms; 13788 xcb_parts[4].iov_len = atoms_len * sizeof(xcb_atom_t); 13789 xcb_parts[5].iov_base = 0; 13790 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 13791 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13792 return xcb_ret; 13793 } 13794 13795 13796 /***************************************************************************** 13797 ** 13798 ** xcb_void_cookie_t xcb_rotate_properties 13799 ** 13800 ** @param xcb_connection_t *c 13801 ** @param xcb_window_t window 13802 ** @param uint16_t atoms_len 13803 ** @param int16_t delta 13804 ** @param const xcb_atom_t *atoms 13805 ** @returns xcb_void_cookie_t 13806 ** 13807 *****************************************************************************/ 13808 13809 xcb_void_cookie_t 13810 xcb_rotate_properties (xcb_connection_t *c /**< */, 13811 xcb_window_t window /**< */, 13812 uint16_t atoms_len /**< */, 13813 int16_t delta /**< */, 13814 const xcb_atom_t *atoms /**< */) 13815 { 13816 static const xcb_protocol_request_t xcb_req = { 13817 /* count */ 4, 13818 /* ext */ 0, 13819 /* opcode */ XCB_ROTATE_PROPERTIES, 13820 /* isvoid */ 1 13821 }; 13822 13823 struct iovec xcb_parts[6]; 13824 xcb_void_cookie_t xcb_ret; 13825 xcb_rotate_properties_request_t xcb_out; 13826 13827 xcb_out.pad0 = 0; 13828 xcb_out.window = window; 13829 xcb_out.atoms_len = atoms_len; 13830 xcb_out.delta = delta; 13831 13832 xcb_parts[2].iov_base = (char *) &xcb_out; 13833 xcb_parts[2].iov_len = sizeof(xcb_out); 13834 xcb_parts[3].iov_base = 0; 13835 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13836 xcb_parts[4].iov_base = (char *) atoms; 13837 xcb_parts[4].iov_len = atoms_len * sizeof(xcb_atom_t); 13838 xcb_parts[5].iov_base = 0; 13839 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 13840 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13841 return xcb_ret; 13842 } 13843 13844 13845 /***************************************************************************** 13846 ** 13847 ** xcb_void_cookie_t xcb_force_screen_saver_checked 13848 ** 13849 ** @param xcb_connection_t *c 13850 ** @param uint8_t mode 13851 ** @returns xcb_void_cookie_t 13852 ** 13853 *****************************************************************************/ 13854 13855 xcb_void_cookie_t 13856 xcb_force_screen_saver_checked (xcb_connection_t *c /**< */, 13857 uint8_t mode /**< */) 13858 { 13859 static const xcb_protocol_request_t xcb_req = { 13860 /* count */ 2, 13861 /* ext */ 0, 13862 /* opcode */ XCB_FORCE_SCREEN_SAVER, 13863 /* isvoid */ 1 13864 }; 13865 13866 struct iovec xcb_parts[4]; 13867 xcb_void_cookie_t xcb_ret; 13868 xcb_force_screen_saver_request_t xcb_out; 13869 13870 xcb_out.mode = mode; 13871 13872 xcb_parts[2].iov_base = (char *) &xcb_out; 13873 xcb_parts[2].iov_len = sizeof(xcb_out); 13874 xcb_parts[3].iov_base = 0; 13875 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13876 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13877 return xcb_ret; 13878 } 13879 13880 13881 /***************************************************************************** 13882 ** 13883 ** xcb_void_cookie_t xcb_force_screen_saver 13884 ** 13885 ** @param xcb_connection_t *c 13886 ** @param uint8_t mode 13887 ** @returns xcb_void_cookie_t 13888 ** 13889 *****************************************************************************/ 13890 13891 xcb_void_cookie_t 13892 xcb_force_screen_saver (xcb_connection_t *c /**< */, 13893 uint8_t mode /**< */) 13894 { 13895 static const xcb_protocol_request_t xcb_req = { 13896 /* count */ 2, 13897 /* ext */ 0, 13898 /* opcode */ XCB_FORCE_SCREEN_SAVER, 13899 /* isvoid */ 1 13900 }; 13901 13902 struct iovec xcb_parts[4]; 13903 xcb_void_cookie_t xcb_ret; 13904 xcb_force_screen_saver_request_t xcb_out; 13905 13906 xcb_out.mode = mode; 13907 13908 xcb_parts[2].iov_base = (char *) &xcb_out; 13909 xcb_parts[2].iov_len = sizeof(xcb_out); 13910 xcb_parts[3].iov_base = 0; 13911 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13912 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13913 return xcb_ret; 13914 } 13915 13916 13917 /***************************************************************************** 13918 ** 13919 ** xcb_set_pointer_mapping_cookie_t xcb_set_pointer_mapping 13920 ** 13921 ** @param xcb_connection_t *c 13922 ** @param uint8_t map_len 13923 ** @param const uint8_t *map 13924 ** @returns xcb_set_pointer_mapping_cookie_t 13925 ** 13926 *****************************************************************************/ 13927 13928 xcb_set_pointer_mapping_cookie_t 13929 xcb_set_pointer_mapping (xcb_connection_t *c /**< */, 13930 uint8_t map_len /**< */, 13931 const uint8_t *map /**< */) 13932 { 13933 static const xcb_protocol_request_t xcb_req = { 13934 /* count */ 4, 13935 /* ext */ 0, 13936 /* opcode */ XCB_SET_POINTER_MAPPING, 13937 /* isvoid */ 0 13938 }; 13939 13940 struct iovec xcb_parts[6]; 13941 xcb_set_pointer_mapping_cookie_t xcb_ret; 13942 xcb_set_pointer_mapping_request_t xcb_out; 13943 13944 xcb_out.map_len = map_len; 13945 13946 xcb_parts[2].iov_base = (char *) &xcb_out; 13947 xcb_parts[2].iov_len = sizeof(xcb_out); 13948 xcb_parts[3].iov_base = 0; 13949 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13950 xcb_parts[4].iov_base = (char *) map; 13951 xcb_parts[4].iov_len = map_len * sizeof(uint8_t); 13952 xcb_parts[5].iov_base = 0; 13953 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 13954 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13955 return xcb_ret; 13956 } 13957 13958 13959 /***************************************************************************** 13960 ** 13961 ** xcb_set_pointer_mapping_cookie_t xcb_set_pointer_mapping_unchecked 13962 ** 13963 ** @param xcb_connection_t *c 13964 ** @param uint8_t map_len 13965 ** @param const uint8_t *map 13966 ** @returns xcb_set_pointer_mapping_cookie_t 13967 ** 13968 *****************************************************************************/ 13969 13970 xcb_set_pointer_mapping_cookie_t 13971 xcb_set_pointer_mapping_unchecked (xcb_connection_t *c /**< */, 13972 uint8_t map_len /**< */, 13973 const uint8_t *map /**< */) 13974 { 13975 static const xcb_protocol_request_t xcb_req = { 13976 /* count */ 4, 13977 /* ext */ 0, 13978 /* opcode */ XCB_SET_POINTER_MAPPING, 13979 /* isvoid */ 0 13980 }; 13981 13982 struct iovec xcb_parts[6]; 13983 xcb_set_pointer_mapping_cookie_t xcb_ret; 13984 xcb_set_pointer_mapping_request_t xcb_out; 13985 13986 xcb_out.map_len = map_len; 13987 13988 xcb_parts[2].iov_base = (char *) &xcb_out; 13989 xcb_parts[2].iov_len = sizeof(xcb_out); 13990 xcb_parts[3].iov_base = 0; 13991 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 13992 xcb_parts[4].iov_base = (char *) map; 13993 xcb_parts[4].iov_len = map_len * sizeof(uint8_t); 13994 xcb_parts[5].iov_base = 0; 13995 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 13996 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13997 return xcb_ret; 13998 } 13999 14000 14001 /***************************************************************************** 14002 ** 14003 ** xcb_set_pointer_mapping_reply_t * xcb_set_pointer_mapping_reply 14004 ** 14005 ** @param xcb_connection_t *c 14006 ** @param xcb_set_pointer_mapping_cookie_t cookie 14007 ** @param xcb_generic_error_t **e 14008 ** @returns xcb_set_pointer_mapping_reply_t * 14009 ** 14010 *****************************************************************************/ 14011 14012 xcb_set_pointer_mapping_reply_t * 14013 xcb_set_pointer_mapping_reply (xcb_connection_t *c /**< */, 14014 xcb_set_pointer_mapping_cookie_t cookie /**< */, 14015 xcb_generic_error_t **e /**< */) 14016 { 14017 return (xcb_set_pointer_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 14018 } 14019 14020 14021 /***************************************************************************** 14022 ** 14023 ** xcb_get_pointer_mapping_cookie_t xcb_get_pointer_mapping 14024 ** 14025 ** @param xcb_connection_t *c 14026 ** @returns xcb_get_pointer_mapping_cookie_t 14027 ** 14028 *****************************************************************************/ 14029 14030 xcb_get_pointer_mapping_cookie_t 14031 xcb_get_pointer_mapping (xcb_connection_t *c /**< */) 14032 { 14033 static const xcb_protocol_request_t xcb_req = { 14034 /* count */ 2, 14035 /* ext */ 0, 14036 /* opcode */ XCB_GET_POINTER_MAPPING, 14037 /* isvoid */ 0 14038 }; 14039 14040 struct iovec xcb_parts[4]; 14041 xcb_get_pointer_mapping_cookie_t xcb_ret; 14042 xcb_get_pointer_mapping_request_t xcb_out; 14043 14044 xcb_out.pad0 = 0; 14045 14046 xcb_parts[2].iov_base = (char *) &xcb_out; 14047 xcb_parts[2].iov_len = sizeof(xcb_out); 14048 xcb_parts[3].iov_base = 0; 14049 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14050 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 14051 return xcb_ret; 14052 } 14053 14054 14055 /***************************************************************************** 14056 ** 14057 ** xcb_get_pointer_mapping_cookie_t xcb_get_pointer_mapping_unchecked 14058 ** 14059 ** @param xcb_connection_t *c 14060 ** @returns xcb_get_pointer_mapping_cookie_t 14061 ** 14062 *****************************************************************************/ 14063 14064 xcb_get_pointer_mapping_cookie_t 14065 xcb_get_pointer_mapping_unchecked (xcb_connection_t *c /**< */) 14066 { 14067 static const xcb_protocol_request_t xcb_req = { 14068 /* count */ 2, 14069 /* ext */ 0, 14070 /* opcode */ XCB_GET_POINTER_MAPPING, 14071 /* isvoid */ 0 14072 }; 14073 14074 struct iovec xcb_parts[4]; 14075 xcb_get_pointer_mapping_cookie_t xcb_ret; 14076 xcb_get_pointer_mapping_request_t xcb_out; 14077 14078 xcb_out.pad0 = 0; 14079 14080 xcb_parts[2].iov_base = (char *) &xcb_out; 14081 xcb_parts[2].iov_len = sizeof(xcb_out); 14082 xcb_parts[3].iov_base = 0; 14083 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14084 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 14085 return xcb_ret; 14086 } 14087 14088 14089 /***************************************************************************** 14090 ** 14091 ** uint8_t * xcb_get_pointer_mapping_map 14092 ** 14093 ** @param const xcb_get_pointer_mapping_reply_t *R 14094 ** @returns uint8_t * 14095 ** 14096 *****************************************************************************/ 14097 14098 uint8_t * 14099 xcb_get_pointer_mapping_map (const xcb_get_pointer_mapping_reply_t *R /**< */) 14100 { 14101 return (uint8_t *) (R + 1); 14102 } 14103 14104 14105 /***************************************************************************** 14106 ** 14107 ** int xcb_get_pointer_mapping_map_length 14108 ** 14109 ** @param const xcb_get_pointer_mapping_reply_t *R 14110 ** @returns int 14111 ** 14112 *****************************************************************************/ 14113 14114 int 14115 xcb_get_pointer_mapping_map_length (const xcb_get_pointer_mapping_reply_t *R /**< */) 14116 { 14117 return R->map_len; 14118 } 14119 14120 14121 /***************************************************************************** 14122 ** 14123 ** xcb_generic_iterator_t xcb_get_pointer_mapping_map_end 14124 ** 14125 ** @param const xcb_get_pointer_mapping_reply_t *R 14126 ** @returns xcb_generic_iterator_t 14127 ** 14128 *****************************************************************************/ 14129 14130 xcb_generic_iterator_t 14131 xcb_get_pointer_mapping_map_end (const xcb_get_pointer_mapping_reply_t *R /**< */) 14132 { 14133 xcb_generic_iterator_t i; 14134 i.data = ((uint8_t *) (R + 1)) + (R->map_len); 14135 i.rem = 0; 14136 i.index = (char *) i.data - (char *) R; 14137 return i; 14138 } 14139 14140 14141 /***************************************************************************** 14142 ** 14143 ** xcb_get_pointer_mapping_reply_t * xcb_get_pointer_mapping_reply 14144 ** 14145 ** @param xcb_connection_t *c 14146 ** @param xcb_get_pointer_mapping_cookie_t cookie 14147 ** @param xcb_generic_error_t **e 14148 ** @returns xcb_get_pointer_mapping_reply_t * 14149 ** 14150 *****************************************************************************/ 14151 14152 xcb_get_pointer_mapping_reply_t * 14153 xcb_get_pointer_mapping_reply (xcb_connection_t *c /**< */, 14154 xcb_get_pointer_mapping_cookie_t cookie /**< */, 14155 xcb_generic_error_t **e /**< */) 14156 { 14157 return (xcb_get_pointer_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 14158 } 14159 14160 14161 /***************************************************************************** 14162 ** 14163 ** xcb_set_modifier_mapping_cookie_t xcb_set_modifier_mapping 14164 ** 14165 ** @param xcb_connection_t *c 14166 ** @param uint8_t keycodes_per_modifier 14167 ** @param const xcb_keycode_t *keycodes 14168 ** @returns xcb_set_modifier_mapping_cookie_t 14169 ** 14170 *****************************************************************************/ 14171 14172 xcb_set_modifier_mapping_cookie_t 14173 xcb_set_modifier_mapping (xcb_connection_t *c /**< */, 14174 uint8_t keycodes_per_modifier /**< */, 14175 const xcb_keycode_t *keycodes /**< */) 14176 { 14177 static const xcb_protocol_request_t xcb_req = { 14178 /* count */ 4, 14179 /* ext */ 0, 14180 /* opcode */ XCB_SET_MODIFIER_MAPPING, 14181 /* isvoid */ 0 14182 }; 14183 14184 struct iovec xcb_parts[6]; 14185 xcb_set_modifier_mapping_cookie_t xcb_ret; 14186 xcb_set_modifier_mapping_request_t xcb_out; 14187 14188 xcb_out.keycodes_per_modifier = keycodes_per_modifier; 14189 14190 xcb_parts[2].iov_base = (char *) &xcb_out; 14191 xcb_parts[2].iov_len = sizeof(xcb_out); 14192 xcb_parts[3].iov_base = 0; 14193 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14194 xcb_parts[4].iov_base = (char *) keycodes; 14195 xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t); 14196 xcb_parts[5].iov_base = 0; 14197 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 14198 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 14199 return xcb_ret; 14200 } 14201 14202 14203 /***************************************************************************** 14204 ** 14205 ** xcb_set_modifier_mapping_cookie_t xcb_set_modifier_mapping_unchecked 14206 ** 14207 ** @param xcb_connection_t *c 14208 ** @param uint8_t keycodes_per_modifier 14209 ** @param const xcb_keycode_t *keycodes 14210 ** @returns xcb_set_modifier_mapping_cookie_t 14211 ** 14212 *****************************************************************************/ 14213 14214 xcb_set_modifier_mapping_cookie_t 14215 xcb_set_modifier_mapping_unchecked (xcb_connection_t *c /**< */, 14216 uint8_t keycodes_per_modifier /**< */, 14217 const xcb_keycode_t *keycodes /**< */) 14218 { 14219 static const xcb_protocol_request_t xcb_req = { 14220 /* count */ 4, 14221 /* ext */ 0, 14222 /* opcode */ XCB_SET_MODIFIER_MAPPING, 14223 /* isvoid */ 0 14224 }; 14225 14226 struct iovec xcb_parts[6]; 14227 xcb_set_modifier_mapping_cookie_t xcb_ret; 14228 xcb_set_modifier_mapping_request_t xcb_out; 14229 14230 xcb_out.keycodes_per_modifier = keycodes_per_modifier; 14231 14232 xcb_parts[2].iov_base = (char *) &xcb_out; 14233 xcb_parts[2].iov_len = sizeof(xcb_out); 14234 xcb_parts[3].iov_base = 0; 14235 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14236 xcb_parts[4].iov_base = (char *) keycodes; 14237 xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t); 14238 xcb_parts[5].iov_base = 0; 14239 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 14240 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 14241 return xcb_ret; 14242 } 14243 14244 14245 /***************************************************************************** 14246 ** 14247 ** xcb_set_modifier_mapping_reply_t * xcb_set_modifier_mapping_reply 14248 ** 14249 ** @param xcb_connection_t *c 14250 ** @param xcb_set_modifier_mapping_cookie_t cookie 14251 ** @param xcb_generic_error_t **e 14252 ** @returns xcb_set_modifier_mapping_reply_t * 14253 ** 14254 *****************************************************************************/ 14255 14256 xcb_set_modifier_mapping_reply_t * 14257 xcb_set_modifier_mapping_reply (xcb_connection_t *c /**< */, 14258 xcb_set_modifier_mapping_cookie_t cookie /**< */, 14259 xcb_generic_error_t **e /**< */) 14260 { 14261 return (xcb_set_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 14262 } 14263 14264 14265 /***************************************************************************** 14266 ** 14267 ** xcb_get_modifier_mapping_cookie_t xcb_get_modifier_mapping 14268 ** 14269 ** @param xcb_connection_t *c 14270 ** @returns xcb_get_modifier_mapping_cookie_t 14271 ** 14272 *****************************************************************************/ 14273 14274 xcb_get_modifier_mapping_cookie_t 14275 xcb_get_modifier_mapping (xcb_connection_t *c /**< */) 14276 { 14277 static const xcb_protocol_request_t xcb_req = { 14278 /* count */ 2, 14279 /* ext */ 0, 14280 /* opcode */ XCB_GET_MODIFIER_MAPPING, 14281 /* isvoid */ 0 14282 }; 14283 14284 struct iovec xcb_parts[4]; 14285 xcb_get_modifier_mapping_cookie_t xcb_ret; 14286 xcb_get_modifier_mapping_request_t xcb_out; 14287 14288 xcb_out.pad0 = 0; 14289 14290 xcb_parts[2].iov_base = (char *) &xcb_out; 14291 xcb_parts[2].iov_len = sizeof(xcb_out); 14292 xcb_parts[3].iov_base = 0; 14293 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14294 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 14295 return xcb_ret; 14296 } 14297 14298 14299 /***************************************************************************** 14300 ** 14301 ** xcb_get_modifier_mapping_cookie_t xcb_get_modifier_mapping_unchecked 14302 ** 14303 ** @param xcb_connection_t *c 14304 ** @returns xcb_get_modifier_mapping_cookie_t 14305 ** 14306 *****************************************************************************/ 14307 14308 xcb_get_modifier_mapping_cookie_t 14309 xcb_get_modifier_mapping_unchecked (xcb_connection_t *c /**< */) 14310 { 14311 static const xcb_protocol_request_t xcb_req = { 14312 /* count */ 2, 14313 /* ext */ 0, 14314 /* opcode */ XCB_GET_MODIFIER_MAPPING, 14315 /* isvoid */ 0 14316 }; 14317 14318 struct iovec xcb_parts[4]; 14319 xcb_get_modifier_mapping_cookie_t xcb_ret; 14320 xcb_get_modifier_mapping_request_t xcb_out; 14321 14322 xcb_out.pad0 = 0; 14323 14324 xcb_parts[2].iov_base = (char *) &xcb_out; 14325 xcb_parts[2].iov_len = sizeof(xcb_out); 14326 xcb_parts[3].iov_base = 0; 14327 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14328 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 14329 return xcb_ret; 14330 } 14331 14332 14333 /***************************************************************************** 14334 ** 14335 ** xcb_keycode_t * xcb_get_modifier_mapping_keycodes 14336 ** 14337 ** @param const xcb_get_modifier_mapping_reply_t *R 14338 ** @returns xcb_keycode_t * 14339 ** 14340 *****************************************************************************/ 14341 14342 xcb_keycode_t * 14343 xcb_get_modifier_mapping_keycodes (const xcb_get_modifier_mapping_reply_t *R /**< */) 14344 { 14345 return (xcb_keycode_t *) (R + 1); 14346 } 14347 14348 14349 /***************************************************************************** 14350 ** 14351 ** int xcb_get_modifier_mapping_keycodes_length 14352 ** 14353 ** @param const xcb_get_modifier_mapping_reply_t *R 14354 ** @returns int 14355 ** 14356 *****************************************************************************/ 14357 14358 int 14359 xcb_get_modifier_mapping_keycodes_length (const xcb_get_modifier_mapping_reply_t *R /**< */) 14360 { 14361 return (R->keycodes_per_modifier * 8); 14362 } 14363 14364 14365 /***************************************************************************** 14366 ** 14367 ** xcb_generic_iterator_t xcb_get_modifier_mapping_keycodes_end 14368 ** 14369 ** @param const xcb_get_modifier_mapping_reply_t *R 14370 ** @returns xcb_generic_iterator_t 14371 ** 14372 *****************************************************************************/ 14373 14374 xcb_generic_iterator_t 14375 xcb_get_modifier_mapping_keycodes_end (const xcb_get_modifier_mapping_reply_t *R /**< */) 14376 { 14377 xcb_generic_iterator_t i; 14378 i.data = ((xcb_keycode_t *) (R + 1)) + ((R->keycodes_per_modifier * 8)); 14379 i.rem = 0; 14380 i.index = (char *) i.data - (char *) R; 14381 return i; 14382 } 14383 14384 14385 /***************************************************************************** 14386 ** 14387 ** xcb_get_modifier_mapping_reply_t * xcb_get_modifier_mapping_reply 14388 ** 14389 ** @param xcb_connection_t *c 14390 ** @param xcb_get_modifier_mapping_cookie_t cookie 14391 ** @param xcb_generic_error_t **e 14392 ** @returns xcb_get_modifier_mapping_reply_t * 14393 ** 14394 *****************************************************************************/ 14395 14396 xcb_get_modifier_mapping_reply_t * 14397 xcb_get_modifier_mapping_reply (xcb_connection_t *c /**< */, 14398 xcb_get_modifier_mapping_cookie_t cookie /**< */, 14399 xcb_generic_error_t **e /**< */) 14400 { 14401 return (xcb_get_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 14402 } 14403 14404 14405 /***************************************************************************** 14406 ** 14407 ** xcb_void_cookie_t xcb_no_operation_checked 14408 ** 14409 ** @param xcb_connection_t *c 14410 ** @returns xcb_void_cookie_t 14411 ** 14412 *****************************************************************************/ 14413 14414 xcb_void_cookie_t 14415 xcb_no_operation_checked (xcb_connection_t *c /**< */) 14416 { 14417 static const xcb_protocol_request_t xcb_req = { 14418 /* count */ 2, 14419 /* ext */ 0, 14420 /* opcode */ XCB_NO_OPERATION, 14421 /* isvoid */ 1 14422 }; 14423 14424 struct iovec xcb_parts[4]; 14425 xcb_void_cookie_t xcb_ret; 14426 xcb_no_operation_request_t xcb_out; 14427 14428 xcb_out.pad0 = 0; 14429 14430 xcb_parts[2].iov_base = (char *) &xcb_out; 14431 xcb_parts[2].iov_len = sizeof(xcb_out); 14432 xcb_parts[3].iov_base = 0; 14433 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14434 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 14435 return xcb_ret; 14436 } 14437 14438 14439 /***************************************************************************** 14440 ** 14441 ** xcb_void_cookie_t xcb_no_operation 14442 ** 14443 ** @param xcb_connection_t *c 14444 ** @returns xcb_void_cookie_t 14445 ** 14446 *****************************************************************************/ 14447 14448 xcb_void_cookie_t 14449 xcb_no_operation (xcb_connection_t *c /**< */) 14450 { 14451 static const xcb_protocol_request_t xcb_req = { 14452 /* count */ 2, 14453 /* ext */ 0, 14454 /* opcode */ XCB_NO_OPERATION, 14455 /* isvoid */ 1 14456 }; 14457 14458 struct iovec xcb_parts[4]; 14459 xcb_void_cookie_t xcb_ret; 14460 xcb_no_operation_request_t xcb_out; 14461 14462 xcb_out.pad0 = 0; 14463 14464 xcb_parts[2].iov_base = (char *) &xcb_out; 14465 xcb_parts[2].iov_len = sizeof(xcb_out); 14466 xcb_parts[3].iov_base = 0; 14467 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 14468 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 14469 return xcb_ret; 14470 } 14471 14472