00001
00002
00003
00004
00005
00012 #ifndef __SHAPE_H
00013 #define __SHAPE_H
00014
00015 #include "xcb.h"
00016 #include "xproto.h"
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00022 #define XCB_SHAPE_MAJOR_VERSION 1
00023 #define XCB_SHAPE_MINOR_VERSION 1
00024
00025 extern xcb_extension_t xcb_shape_id;
00026
00027 typedef uint8_t xcb_shape_op_t;
00028
00032 typedef struct xcb_shape_op_iterator_t {
00033 xcb_shape_op_t *data;
00034 int rem;
00035 int index;
00036 } xcb_shape_op_iterator_t;
00037
00038 typedef uint8_t xcb_shape_kind_t;
00039
00043 typedef struct xcb_shape_kind_iterator_t {
00044 xcb_shape_kind_t *data;
00045 int rem;
00046 int index;
00047 } xcb_shape_kind_iterator_t;
00048
00049 typedef enum xcb_shape_so_t {
00050 XCB_SHAPE_SO_SET,
00051 XCB_SHAPE_SO_UNION,
00052 XCB_SHAPE_SO_INTERSECT,
00053 XCB_SHAPE_SO_SUBTRACT,
00054 XCB_SHAPE_SO_INVERT
00055 } xcb_shape_so_t;
00056
00057 typedef enum xcb_shape_sk_t {
00058 XCB_SHAPE_SK_BOUNDING,
00059 XCB_SHAPE_SK_CLIP,
00060 XCB_SHAPE_SK_INPUT
00061 } xcb_shape_sk_t;
00062
00064 #define XCB_SHAPE_NOTIFY 0
00065
00069 typedef struct xcb_shape_notify_event_t {
00070 uint8_t response_type;
00071 xcb_shape_kind_t shape_kind;
00072 uint16_t sequence;
00073 xcb_window_t affected_window;
00074 int16_t extents_x;
00075 int16_t extents_y;
00076 uint16_t extents_width;
00077 uint16_t extents_height;
00078 xcb_timestamp_t server_time;
00079 uint8_t shaped;
00080 uint8_t pad0[11];
00081 } xcb_shape_notify_event_t;
00082
00086 typedef struct xcb_shape_query_version_cookie_t {
00087 unsigned int sequence;
00088 } xcb_shape_query_version_cookie_t;
00089
00091 #define XCB_SHAPE_QUERY_VERSION 0
00092
00096 typedef struct xcb_shape_query_version_request_t {
00097 uint8_t major_opcode;
00098 uint8_t minor_opcode;
00099 uint16_t length;
00100 } xcb_shape_query_version_request_t;
00101
00105 typedef struct xcb_shape_query_version_reply_t {
00106 uint8_t response_type;
00107 uint8_t pad0;
00108 uint16_t sequence;
00109 uint32_t length;
00110 uint16_t major_version;
00111 uint16_t minor_version;
00112 } xcb_shape_query_version_reply_t;
00113
00115 #define XCB_SHAPE_RECTANGLES 1
00116
00120 typedef struct xcb_shape_rectangles_request_t {
00121 uint8_t major_opcode;
00122 uint8_t minor_opcode;
00123 uint16_t length;
00124 xcb_shape_op_t operation;
00125 xcb_shape_kind_t destination_kind;
00126 uint8_t ordering;
00127 uint8_t pad0;
00128 xcb_window_t destination_window;
00129 int16_t x_offset;
00130 int16_t y_offset;
00131 } xcb_shape_rectangles_request_t;
00132
00134 #define XCB_SHAPE_MASK 2
00135
00139 typedef struct xcb_shape_mask_request_t {
00140 uint8_t major_opcode;
00141 uint8_t minor_opcode;
00142 uint16_t length;
00143 xcb_shape_op_t operation;
00144 xcb_shape_kind_t destination_kind;
00145 uint8_t pad0[2];
00146 xcb_window_t destination_window;
00147 int16_t x_offset;
00148 int16_t y_offset;
00149 xcb_pixmap_t source_bitmap;
00150 } xcb_shape_mask_request_t;
00151
00153 #define XCB_SHAPE_COMBINE 3
00154
00158 typedef struct xcb_shape_combine_request_t {
00159 uint8_t major_opcode;
00160 uint8_t minor_opcode;
00161 uint16_t length;
00162 xcb_shape_op_t operation;
00163 xcb_shape_kind_t destination_kind;
00164 xcb_shape_kind_t source_kind;
00165 uint8_t pad0;
00166 xcb_window_t destination_window;
00167 int16_t x_offset;
00168 int16_t y_offset;
00169 xcb_window_t source_window;
00170 } xcb_shape_combine_request_t;
00171
00173 #define XCB_SHAPE_OFFSET 4
00174
00178 typedef struct xcb_shape_offset_request_t {
00179 uint8_t major_opcode;
00180 uint8_t minor_opcode;
00181 uint16_t length;
00182 xcb_shape_kind_t destination_kind;
00183 uint8_t pad0[3];
00184 xcb_window_t destination_window;
00185 int16_t x_offset;
00186 int16_t y_offset;
00187 } xcb_shape_offset_request_t;
00188
00192 typedef struct xcb_shape_query_extents_cookie_t {
00193 unsigned int sequence;
00194 } xcb_shape_query_extents_cookie_t;
00195
00197 #define XCB_SHAPE_QUERY_EXTENTS 5
00198
00202 typedef struct xcb_shape_query_extents_request_t {
00203 uint8_t major_opcode;
00204 uint8_t minor_opcode;
00205 uint16_t length;
00206 xcb_window_t destination_window;
00207 } xcb_shape_query_extents_request_t;
00208
00212 typedef struct xcb_shape_query_extents_reply_t {
00213 uint8_t response_type;
00214 uint8_t pad0;
00215 uint16_t sequence;
00216 uint32_t length;
00217 uint8_t bounding_shaped;
00218 uint8_t clip_shaped;
00219 uint8_t pad1[2];
00220 int16_t bounding_shape_extents_x;
00221 int16_t bounding_shape_extents_y;
00222 uint16_t bounding_shape_extents_width;
00223 uint16_t bounding_shape_extents_height;
00224 int16_t clip_shape_extents_x;
00225 int16_t clip_shape_extents_y;
00226 uint16_t clip_shape_extents_width;
00227 uint16_t clip_shape_extents_height;
00228 } xcb_shape_query_extents_reply_t;
00229
00231 #define XCB_SHAPE_SELECT_INPUT 6
00232
00236 typedef struct xcb_shape_select_input_request_t {
00237 uint8_t major_opcode;
00238 uint8_t minor_opcode;
00239 uint16_t length;
00240 xcb_window_t destination_window;
00241 uint8_t enable;
00242 uint8_t pad0[3];
00243 } xcb_shape_select_input_request_t;
00244
00248 typedef struct xcb_shape_input_selected_cookie_t {
00249 unsigned int sequence;
00250 } xcb_shape_input_selected_cookie_t;
00251
00253 #define XCB_SHAPE_INPUT_SELECTED 7
00254
00258 typedef struct xcb_shape_input_selected_request_t {
00259 uint8_t major_opcode;
00260 uint8_t minor_opcode;
00261 uint16_t length;
00262 xcb_window_t destination_window;
00263 } xcb_shape_input_selected_request_t;
00264
00268 typedef struct xcb_shape_input_selected_reply_t {
00269 uint8_t response_type;
00270 uint8_t enabled;
00271 uint16_t sequence;
00272 uint32_t length;
00273 } xcb_shape_input_selected_reply_t;
00274
00278 typedef struct xcb_shape_get_rectangles_cookie_t {
00279 unsigned int sequence;
00280 } xcb_shape_get_rectangles_cookie_t;
00281
00283 #define XCB_SHAPE_GET_RECTANGLES 8
00284
00288 typedef struct xcb_shape_get_rectangles_request_t {
00289 uint8_t major_opcode;
00290 uint8_t minor_opcode;
00291 uint16_t length;
00292 xcb_window_t window;
00293 xcb_shape_kind_t source_kind;
00294 uint8_t pad0[3];
00295 } xcb_shape_get_rectangles_request_t;
00296
00300 typedef struct xcb_shape_get_rectangles_reply_t {
00301 uint8_t response_type;
00302 uint8_t ordering;
00303 uint16_t sequence;
00304 uint32_t length;
00305 uint32_t rectangles_len;
00306 uint8_t pad0[20];
00307 } xcb_shape_get_rectangles_reply_t;
00308
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327 void
00328 xcb_shape_op_next (xcb_shape_op_iterator_t *i );
00329
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349 xcb_generic_iterator_t
00350 xcb_shape_op_end (xcb_shape_op_iterator_t i );
00351
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370 void
00371 xcb_shape_kind_next (xcb_shape_kind_iterator_t *i );
00372
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392 xcb_generic_iterator_t
00393 xcb_shape_kind_end (xcb_shape_kind_iterator_t i );
00394
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413 xcb_shape_query_version_cookie_t
00414 xcb_shape_query_version (xcb_connection_t *c );
00415
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437 xcb_shape_query_version_cookie_t
00438 xcb_shape_query_version_unchecked (xcb_connection_t *c );
00439
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466 xcb_shape_query_version_reply_t *
00467 xcb_shape_query_version_reply (xcb_connection_t *c ,
00468 xcb_shape_query_version_cookie_t cookie ,
00469 xcb_generic_error_t **e );
00470
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497
00498
00499
00500 xcb_void_cookie_t
00501 xcb_shape_rectangles_checked (xcb_connection_t *c ,
00502 xcb_shape_op_t operation ,
00503 xcb_shape_kind_t destination_kind ,
00504 uint8_t ordering ,
00505 xcb_window_t destination_window ,
00506 int16_t x_offset ,
00507 int16_t y_offset ,
00508 uint32_t rectangles_len ,
00509 const xcb_rectangle_t *rectangles );
00510
00520
00521
00522
00523
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537 xcb_void_cookie_t
00538 xcb_shape_rectangles (xcb_connection_t *c ,
00539 xcb_shape_op_t operation ,
00540 xcb_shape_kind_t destination_kind ,
00541 uint8_t ordering ,
00542 xcb_window_t destination_window ,
00543 int16_t x_offset ,
00544 int16_t y_offset ,
00545 uint32_t rectangles_len ,
00546 const xcb_rectangle_t *rectangles );
00547
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575 xcb_void_cookie_t
00576 xcb_shape_mask_checked (xcb_connection_t *c ,
00577 xcb_shape_op_t operation ,
00578 xcb_shape_kind_t destination_kind ,
00579 xcb_window_t destination_window ,
00580 int16_t x_offset ,
00581 int16_t y_offset ,
00582 xcb_pixmap_t source_bitmap );
00583
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608 xcb_void_cookie_t
00609 xcb_shape_mask (xcb_connection_t *c ,
00610 xcb_shape_op_t operation ,
00611 xcb_shape_kind_t destination_kind ,
00612 xcb_window_t destination_window ,
00613 int16_t x_offset ,
00614 int16_t y_offset ,
00615 xcb_pixmap_t source_bitmap );
00616
00629
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639
00640
00641
00642
00643
00644
00645 xcb_void_cookie_t
00646 xcb_shape_combine_checked (xcb_connection_t *c ,
00647 xcb_shape_op_t operation ,
00648 xcb_shape_kind_t destination_kind ,
00649 xcb_shape_kind_t source_kind ,
00650 xcb_window_t destination_window ,
00651 int16_t x_offset ,
00652 int16_t y_offset ,
00653 xcb_window_t source_window );
00654
00664
00665
00666
00667
00668
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680 xcb_void_cookie_t
00681 xcb_shape_combine (xcb_connection_t *c ,
00682 xcb_shape_op_t operation ,
00683 xcb_shape_kind_t destination_kind ,
00684 xcb_shape_kind_t source_kind ,
00685 xcb_window_t destination_window ,
00686 int16_t x_offset ,
00687 int16_t y_offset ,
00688 xcb_window_t source_window );
00689
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715 xcb_void_cookie_t
00716 xcb_shape_offset_checked (xcb_connection_t *c ,
00717 xcb_shape_kind_t destination_kind ,
00718 xcb_window_t destination_window ,
00719 int16_t x_offset ,
00720 int16_t y_offset );
00721
00731
00732
00733
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744 xcb_void_cookie_t
00745 xcb_shape_offset (xcb_connection_t *c ,
00746 xcb_shape_kind_t destination_kind ,
00747 xcb_window_t destination_window ,
00748 int16_t x_offset ,
00749 int16_t y_offset );
00750
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770 xcb_shape_query_extents_cookie_t
00771 xcb_shape_query_extents (xcb_connection_t *c ,
00772 xcb_window_t destination_window );
00773
00786
00787
00788
00789
00790
00791
00792
00793
00794
00795
00796 xcb_shape_query_extents_cookie_t
00797 xcb_shape_query_extents_unchecked (xcb_connection_t *c ,
00798 xcb_window_t destination_window );
00799
00815
00816
00817
00818
00819
00820
00821
00822
00823
00824
00825
00826 xcb_shape_query_extents_reply_t *
00827 xcb_shape_query_extents_reply (xcb_connection_t *c ,
00828 xcb_shape_query_extents_cookie_t cookie ,
00829 xcb_generic_error_t **e );
00830
00843
00844
00845
00846
00847
00848
00849
00850
00851
00852
00853
00854 xcb_void_cookie_t
00855 xcb_shape_select_input_checked (xcb_connection_t *c ,
00856 xcb_window_t destination_window ,
00857 uint8_t enable );
00858
00868
00869
00870
00871
00872
00873
00874
00875
00876
00877
00878
00879 xcb_void_cookie_t
00880 xcb_shape_select_input (xcb_connection_t *c ,
00881 xcb_window_t destination_window ,
00882 uint8_t enable );
00883
00893
00894
00895
00896
00897
00898
00899
00900
00901
00902
00903 xcb_shape_input_selected_cookie_t
00904 xcb_shape_input_selected (xcb_connection_t *c ,
00905 xcb_window_t destination_window );
00906
00919
00920
00921
00922
00923
00924
00925
00926
00927
00928
00929 xcb_shape_input_selected_cookie_t
00930 xcb_shape_input_selected_unchecked (xcb_connection_t *c ,
00931 xcb_window_t destination_window );
00932
00948
00949
00950
00951
00952
00953
00954
00955
00956
00957
00958
00959 xcb_shape_input_selected_reply_t *
00960 xcb_shape_input_selected_reply (xcb_connection_t *c ,
00961 xcb_shape_input_selected_cookie_t cookie ,
00962 xcb_generic_error_t **e );
00963
00973
00974
00975
00976
00977
00978
00979
00980
00981
00982
00983
00984 xcb_shape_get_rectangles_cookie_t
00985 xcb_shape_get_rectangles (xcb_connection_t *c ,
00986 xcb_window_t window ,
00987 xcb_shape_kind_t source_kind );
00988
01001
01002
01003
01004
01005
01006
01007
01008
01009
01010
01011
01012 xcb_shape_get_rectangles_cookie_t
01013 xcb_shape_get_rectangles_unchecked (xcb_connection_t *c ,
01014 xcb_window_t window ,
01015 xcb_shape_kind_t source_kind );
01016
01017
01018
01019
01020
01021
01022
01023
01024
01025
01026
01027 xcb_rectangle_t *
01028 xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R );
01029
01030
01031
01032
01033
01034
01035
01036
01037
01038
01039
01040 int
01041 xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R );
01042
01043
01044
01045
01046
01047
01048
01049
01050
01051
01052
01053 xcb_rectangle_iterator_t
01054 xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R );
01055
01071
01072
01073
01074
01075
01076
01077
01078
01079
01080
01081
01082 xcb_shape_get_rectangles_reply_t *
01083 xcb_shape_get_rectangles_reply (xcb_connection_t *c ,
01084 xcb_shape_get_rectangles_cookie_t cookie ,
01085 xcb_generic_error_t **e );
01086
01087
01088 #ifdef __cplusplus
01089 }
01090 #endif
01091
01092 #endif
01093