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 = 0,
00051 XCB_SHAPE_SO_UNION = 1,
00052 XCB_SHAPE_SO_INTERSECT = 2,
00053 XCB_SHAPE_SO_SUBTRACT = 3,
00054 XCB_SHAPE_SO_INVERT = 4
00055 } xcb_shape_so_t;
00056
00057 typedef enum xcb_shape_sk_t {
00058 XCB_SHAPE_SK_BOUNDING = 0,
00059 XCB_SHAPE_SK_CLIP = 1,
00060 XCB_SHAPE_SK_INPUT = 2
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
00317 void
00318 xcb_shape_op_next (xcb_shape_op_iterator_t *i );
00319
00329 xcb_generic_iterator_t
00330 xcb_shape_op_end (xcb_shape_op_iterator_t i );
00331
00340 void
00341 xcb_shape_kind_next (xcb_shape_kind_iterator_t *i );
00342
00352 xcb_generic_iterator_t
00353 xcb_shape_kind_end (xcb_shape_kind_iterator_t i );
00354
00363 xcb_shape_query_version_cookie_t
00364 xcb_shape_query_version (xcb_connection_t *c );
00365
00377 xcb_shape_query_version_cookie_t
00378 xcb_shape_query_version_unchecked (xcb_connection_t *c );
00379
00394 xcb_shape_query_version_reply_t *
00395 xcb_shape_query_version_reply (xcb_connection_t *c ,
00396 xcb_shape_query_version_cookie_t cookie ,
00397 xcb_generic_error_t **e );
00398
00399 int
00400 xcb_shape_rectangles_sizeof (const void *_buffer ,
00401 uint32_t rectangles_len );
00402
00414 xcb_void_cookie_t
00415 xcb_shape_rectangles_checked (xcb_connection_t *c ,
00416 xcb_shape_op_t operation ,
00417 xcb_shape_kind_t destination_kind ,
00418 uint8_t ordering ,
00419 xcb_window_t destination_window ,
00420 int16_t x_offset ,
00421 int16_t y_offset ,
00422 uint32_t rectangles_len ,
00423 const xcb_rectangle_t *rectangles );
00424
00433 xcb_void_cookie_t
00434 xcb_shape_rectangles (xcb_connection_t *c ,
00435 xcb_shape_op_t operation ,
00436 xcb_shape_kind_t destination_kind ,
00437 uint8_t ordering ,
00438 xcb_window_t destination_window ,
00439 int16_t x_offset ,
00440 int16_t y_offset ,
00441 uint32_t rectangles_len ,
00442 const xcb_rectangle_t *rectangles );
00443
00455 xcb_void_cookie_t
00456 xcb_shape_mask_checked (xcb_connection_t *c ,
00457 xcb_shape_op_t operation ,
00458 xcb_shape_kind_t destination_kind ,
00459 xcb_window_t destination_window ,
00460 int16_t x_offset ,
00461 int16_t y_offset ,
00462 xcb_pixmap_t source_bitmap );
00463
00472 xcb_void_cookie_t
00473 xcb_shape_mask (xcb_connection_t *c ,
00474 xcb_shape_op_t operation ,
00475 xcb_shape_kind_t destination_kind ,
00476 xcb_window_t destination_window ,
00477 int16_t x_offset ,
00478 int16_t y_offset ,
00479 xcb_pixmap_t source_bitmap );
00480
00492 xcb_void_cookie_t
00493 xcb_shape_combine_checked (xcb_connection_t *c ,
00494 xcb_shape_op_t operation ,
00495 xcb_shape_kind_t destination_kind ,
00496 xcb_shape_kind_t source_kind ,
00497 xcb_window_t destination_window ,
00498 int16_t x_offset ,
00499 int16_t y_offset ,
00500 xcb_window_t source_window );
00501
00510 xcb_void_cookie_t
00511 xcb_shape_combine (xcb_connection_t *c ,
00512 xcb_shape_op_t operation ,
00513 xcb_shape_kind_t destination_kind ,
00514 xcb_shape_kind_t source_kind ,
00515 xcb_window_t destination_window ,
00516 int16_t x_offset ,
00517 int16_t y_offset ,
00518 xcb_window_t source_window );
00519
00531 xcb_void_cookie_t
00532 xcb_shape_offset_checked (xcb_connection_t *c ,
00533 xcb_shape_kind_t destination_kind ,
00534 xcb_window_t destination_window ,
00535 int16_t x_offset ,
00536 int16_t y_offset );
00537
00546 xcb_void_cookie_t
00547 xcb_shape_offset (xcb_connection_t *c ,
00548 xcb_shape_kind_t destination_kind ,
00549 xcb_window_t destination_window ,
00550 int16_t x_offset ,
00551 int16_t y_offset );
00552
00561 xcb_shape_query_extents_cookie_t
00562 xcb_shape_query_extents (xcb_connection_t *c ,
00563 xcb_window_t destination_window );
00564
00576 xcb_shape_query_extents_cookie_t
00577 xcb_shape_query_extents_unchecked (xcb_connection_t *c ,
00578 xcb_window_t destination_window );
00579
00594 xcb_shape_query_extents_reply_t *
00595 xcb_shape_query_extents_reply (xcb_connection_t *c ,
00596 xcb_shape_query_extents_cookie_t cookie ,
00597 xcb_generic_error_t **e );
00598
00610 xcb_void_cookie_t
00611 xcb_shape_select_input_checked (xcb_connection_t *c ,
00612 xcb_window_t destination_window ,
00613 uint8_t enable );
00614
00623 xcb_void_cookie_t
00624 xcb_shape_select_input (xcb_connection_t *c ,
00625 xcb_window_t destination_window ,
00626 uint8_t enable );
00627
00636 xcb_shape_input_selected_cookie_t
00637 xcb_shape_input_selected (xcb_connection_t *c ,
00638 xcb_window_t destination_window );
00639
00651 xcb_shape_input_selected_cookie_t
00652 xcb_shape_input_selected_unchecked (xcb_connection_t *c ,
00653 xcb_window_t destination_window );
00654
00669 xcb_shape_input_selected_reply_t *
00670 xcb_shape_input_selected_reply (xcb_connection_t *c ,
00671 xcb_shape_input_selected_cookie_t cookie ,
00672 xcb_generic_error_t **e );
00673
00674 int
00675 xcb_shape_get_rectangles_sizeof (const void *_buffer );
00676
00685 xcb_shape_get_rectangles_cookie_t
00686 xcb_shape_get_rectangles (xcb_connection_t *c ,
00687 xcb_window_t window ,
00688 xcb_shape_kind_t source_kind );
00689
00701 xcb_shape_get_rectangles_cookie_t
00702 xcb_shape_get_rectangles_unchecked (xcb_connection_t *c ,
00703 xcb_window_t window ,
00704 xcb_shape_kind_t source_kind );
00705
00706 xcb_rectangle_t *
00707 xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R );
00708
00709 int
00710 xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R );
00711
00712 xcb_rectangle_iterator_t
00713 xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R );
00714
00729 xcb_shape_get_rectangles_reply_t *
00730 xcb_shape_get_rectangles_reply (xcb_connection_t *c ,
00731 xcb_shape_get_rectangles_cookie_t cookie ,
00732 xcb_generic_error_t **e );
00733
00734
00735 #ifdef __cplusplus
00736 }
00737 #endif
00738
00739 #endif
00740