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
00471 int
00472 xcb_shape_rectangles_sizeof (const void *_buffer ,
00473 uint32_t rectangles_len );
00474
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503
00504 xcb_void_cookie_t
00505 xcb_shape_rectangles_checked (xcb_connection_t *c ,
00506 xcb_shape_op_t operation ,
00507 xcb_shape_kind_t destination_kind ,
00508 uint8_t ordering ,
00509 xcb_window_t destination_window ,
00510 int16_t x_offset ,
00511 int16_t y_offset ,
00512 uint32_t rectangles_len ,
00513 const xcb_rectangle_t *rectangles );
00514
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541 xcb_void_cookie_t
00542 xcb_shape_rectangles (xcb_connection_t *c ,
00543 xcb_shape_op_t operation ,
00544 xcb_shape_kind_t destination_kind ,
00545 uint8_t ordering ,
00546 xcb_window_t destination_window ,
00547 int16_t x_offset ,
00548 int16_t y_offset ,
00549 uint32_t rectangles_len ,
00550 const xcb_rectangle_t *rectangles );
00551
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577
00578
00579 xcb_void_cookie_t
00580 xcb_shape_mask_checked (xcb_connection_t *c ,
00581 xcb_shape_op_t operation ,
00582 xcb_shape_kind_t destination_kind ,
00583 xcb_window_t destination_window ,
00584 int16_t x_offset ,
00585 int16_t y_offset ,
00586 xcb_pixmap_t source_bitmap );
00587
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609
00610
00611
00612 xcb_void_cookie_t
00613 xcb_shape_mask (xcb_connection_t *c ,
00614 xcb_shape_op_t operation ,
00615 xcb_shape_kind_t destination_kind ,
00616 xcb_window_t destination_window ,
00617 int16_t x_offset ,
00618 int16_t y_offset ,
00619 xcb_pixmap_t source_bitmap );
00620
00633
00634
00635
00636
00637
00638
00639
00640
00641
00642
00643
00644
00645
00646
00647
00648
00649 xcb_void_cookie_t
00650 xcb_shape_combine_checked (xcb_connection_t *c ,
00651 xcb_shape_op_t operation ,
00652 xcb_shape_kind_t destination_kind ,
00653 xcb_shape_kind_t source_kind ,
00654 xcb_window_t destination_window ,
00655 int16_t x_offset ,
00656 int16_t y_offset ,
00657 xcb_window_t source_window );
00658
00668
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683
00684 xcb_void_cookie_t
00685 xcb_shape_combine (xcb_connection_t *c ,
00686 xcb_shape_op_t operation ,
00687 xcb_shape_kind_t destination_kind ,
00688 xcb_shape_kind_t source_kind ,
00689 xcb_window_t destination_window ,
00690 int16_t x_offset ,
00691 int16_t y_offset ,
00692 xcb_window_t source_window );
00693
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715
00716
00717
00718
00719 xcb_void_cookie_t
00720 xcb_shape_offset_checked (xcb_connection_t *c ,
00721 xcb_shape_kind_t destination_kind ,
00722 xcb_window_t destination_window ,
00723 int16_t x_offset ,
00724 int16_t y_offset );
00725
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748 xcb_void_cookie_t
00749 xcb_shape_offset (xcb_connection_t *c ,
00750 xcb_shape_kind_t destination_kind ,
00751 xcb_window_t destination_window ,
00752 int16_t x_offset ,
00753 int16_t y_offset );
00754
00764
00765
00766
00767
00768
00769
00770
00771
00772
00773
00774 xcb_shape_query_extents_cookie_t
00775 xcb_shape_query_extents (xcb_connection_t *c ,
00776 xcb_window_t destination_window );
00777
00790
00791
00792
00793
00794
00795
00796
00797
00798
00799
00800 xcb_shape_query_extents_cookie_t
00801 xcb_shape_query_extents_unchecked (xcb_connection_t *c ,
00802 xcb_window_t destination_window );
00803
00819
00820
00821
00822
00823
00824
00825
00826
00827
00828
00829
00830 xcb_shape_query_extents_reply_t *
00831 xcb_shape_query_extents_reply (xcb_connection_t *c ,
00832 xcb_shape_query_extents_cookie_t cookie ,
00833 xcb_generic_error_t **e );
00834
00847
00848
00849
00850
00851
00852
00853
00854
00855
00856
00857
00858 xcb_void_cookie_t
00859 xcb_shape_select_input_checked (xcb_connection_t *c ,
00860 xcb_window_t destination_window ,
00861 uint8_t enable );
00862
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881
00882
00883 xcb_void_cookie_t
00884 xcb_shape_select_input (xcb_connection_t *c ,
00885 xcb_window_t destination_window ,
00886 uint8_t enable );
00887
00897
00898
00899
00900
00901
00902
00903
00904
00905
00906
00907 xcb_shape_input_selected_cookie_t
00908 xcb_shape_input_selected (xcb_connection_t *c ,
00909 xcb_window_t destination_window );
00910
00923
00924
00925
00926
00927
00928
00929
00930
00931
00932
00933 xcb_shape_input_selected_cookie_t
00934 xcb_shape_input_selected_unchecked (xcb_connection_t *c ,
00935 xcb_window_t destination_window );
00936
00952
00953
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963 xcb_shape_input_selected_reply_t *
00964 xcb_shape_input_selected_reply (xcb_connection_t *c ,
00965 xcb_shape_input_selected_cookie_t cookie ,
00966 xcb_generic_error_t **e );
00967
00968 int
00969 xcb_shape_get_rectangles_sizeof (const void *_buffer );
00970
00980
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990
00991 xcb_shape_get_rectangles_cookie_t
00992 xcb_shape_get_rectangles (xcb_connection_t *c ,
00993 xcb_window_t window ,
00994 xcb_shape_kind_t source_kind );
00995
01008
01009
01010
01011
01012
01013
01014
01015
01016
01017
01018
01019 xcb_shape_get_rectangles_cookie_t
01020 xcb_shape_get_rectangles_unchecked (xcb_connection_t *c ,
01021 xcb_window_t window ,
01022 xcb_shape_kind_t source_kind );
01023
01024
01025
01026
01027
01028
01029
01030
01031
01032
01033
01034 xcb_rectangle_t *
01035 xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R );
01036
01037
01038
01039
01040
01041
01042
01043
01044
01045
01046
01047 int
01048 xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R );
01049
01050
01051
01052
01053
01054
01055
01056
01057
01058
01059
01060 xcb_rectangle_iterator_t
01061 xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R );
01062
01078
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088
01089 xcb_shape_get_rectangles_reply_t *
01090 xcb_shape_get_rectangles_reply (xcb_connection_t *c ,
01091 xcb_shape_get_rectangles_cookie_t cookie ,
01092 xcb_generic_error_t **e );
01093
01094
01095 #ifdef __cplusplus
01096 }
01097 #endif
01098
01099 #endif
01100