1/* 2 * This file generated automatically from composite.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6/** 7 * @defgroup XCB_Composite_API XCB Composite API 8 * @brief Composite XCB Protocol Implementation. 9 * @{ 10 **/ 11 12#ifndef __COMPOSITE_H 13#define __COMPOSITE_H 14 15#include "xcb.h" 16#include "xproto.h" 17#include "xfixes.h" 18 19#ifdef __cplusplus 20extern "C" { 21#endif 22 23#define XCB_COMPOSITE_MAJOR_VERSION 0 24#define XCB_COMPOSITE_MINOR_VERSION 4 25 26extern xcb_extension_t xcb_composite_id; 27 28typedef enum xcb_composite_redirect_t { 29 XCB_COMPOSITE_REDIRECT_AUTOMATIC = 0, 30 XCB_COMPOSITE_REDIRECT_MANUAL = 1 31} xcb_composite_redirect_t; 32 33/** 34 * @brief xcb_composite_query_version_cookie_t 35 **/ 36typedef struct xcb_composite_query_version_cookie_t { 37 unsigned int sequence; 38} xcb_composite_query_version_cookie_t; 39 40/** Opcode for xcb_composite_query_version. */ 41#define XCB_COMPOSITE_QUERY_VERSION 0 42 43/** 44 * @brief xcb_composite_query_version_request_t 45 **/ 46typedef struct xcb_composite_query_version_request_t { 47 uint8_t major_opcode; 48 uint8_t minor_opcode; 49 uint16_t length; 50 uint32_t client_major_version; 51 uint32_t client_minor_version; 52} xcb_composite_query_version_request_t; 53 54/** 55 * @brief xcb_composite_query_version_reply_t 56 **/ 57typedef struct xcb_composite_query_version_reply_t { 58 uint8_t response_type; 59 uint8_t pad0; 60 uint16_t sequence; 61 uint32_t length; 62 uint32_t major_version; 63 uint32_t minor_version; 64 uint8_t pad1[16]; 65} xcb_composite_query_version_reply_t; 66 67/** Opcode for xcb_composite_redirect_window. */ 68#define XCB_COMPOSITE_REDIRECT_WINDOW 1 69 70/** 71 * @brief xcb_composite_redirect_window_request_t 72 **/ 73typedef struct xcb_composite_redirect_window_request_t { 74 uint8_t major_opcode; 75 uint8_t minor_opcode; 76 uint16_t length; 77 xcb_window_t window; 78 uint8_t update; 79 uint8_t pad0[3]; 80} xcb_composite_redirect_window_request_t; 81 82/** Opcode for xcb_composite_redirect_subwindows. */ 83#define XCB_COMPOSITE_REDIRECT_SUBWINDOWS 2 84 85/** 86 * @brief xcb_composite_redirect_subwindows_request_t 87 **/ 88typedef struct xcb_composite_redirect_subwindows_request_t { 89 uint8_t major_opcode; 90 uint8_t minor_opcode; 91 uint16_t length; 92 xcb_window_t window; 93 uint8_t update; 94 uint8_t pad0[3]; 95} xcb_composite_redirect_subwindows_request_t; 96 97/** Opcode for xcb_composite_unredirect_window. */ 98#define XCB_COMPOSITE_UNREDIRECT_WINDOW 3 99 100/** 101 * @brief xcb_composite_unredirect_window_request_t 102 **/ 103typedef struct xcb_composite_unredirect_window_request_t { 104 uint8_t major_opcode; 105 uint8_t minor_opcode; 106 uint16_t length; 107 xcb_window_t window; 108 uint8_t update; 109 uint8_t pad0[3]; 110} xcb_composite_unredirect_window_request_t; 111 112/** Opcode for xcb_composite_unredirect_subwindows. */ 113#define XCB_COMPOSITE_UNREDIRECT_SUBWINDOWS 4 114 115/** 116 * @brief xcb_composite_unredirect_subwindows_request_t 117 **/ 118typedef struct xcb_composite_unredirect_subwindows_request_t { 119 uint8_t major_opcode; 120 uint8_t minor_opcode; 121 uint16_t length; 122 xcb_window_t window; 123 uint8_t update; 124 uint8_t pad0[3]; 125} xcb_composite_unredirect_subwindows_request_t; 126 127/** Opcode for xcb_composite_create_region_from_border_clip. */ 128#define XCB_COMPOSITE_CREATE_REGION_FROM_BORDER_CLIP 5 129 130/** 131 * @brief xcb_composite_create_region_from_border_clip_request_t 132 **/ 133typedef struct xcb_composite_create_region_from_border_clip_request_t { 134 uint8_t major_opcode; 135 uint8_t minor_opcode; 136 uint16_t length; 137 xcb_xfixes_region_t region; 138 xcb_window_t window; 139} xcb_composite_create_region_from_border_clip_request_t; 140 141/** Opcode for xcb_composite_name_window_pixmap. */ 142#define XCB_COMPOSITE_NAME_WINDOW_PIXMAP 6 143 144/** 145 * @brief xcb_composite_name_window_pixmap_request_t 146 **/ 147typedef struct xcb_composite_name_window_pixmap_request_t { 148 uint8_t major_opcode; 149 uint8_t minor_opcode; 150 uint16_t length; 151 xcb_window_t window; 152 xcb_pixmap_t pixmap; 153} xcb_composite_name_window_pixmap_request_t; 154 155/** 156 * @brief xcb_composite_get_overlay_window_cookie_t 157 **/ 158typedef struct xcb_composite_get_overlay_window_cookie_t { 159 unsigned int sequence; 160} xcb_composite_get_overlay_window_cookie_t; 161 162/** Opcode for xcb_composite_get_overlay_window. */ 163#define XCB_COMPOSITE_GET_OVERLAY_WINDOW 7 164 165/** 166 * @brief xcb_composite_get_overlay_window_request_t 167 **/ 168typedef struct xcb_composite_get_overlay_window_request_t { 169 uint8_t major_opcode; 170 uint8_t minor_opcode; 171 uint16_t length; 172 xcb_window_t window; 173} xcb_composite_get_overlay_window_request_t; 174 175/** 176 * @brief xcb_composite_get_overlay_window_reply_t 177 **/ 178typedef struct xcb_composite_get_overlay_window_reply_t { 179 uint8_t response_type; 180 uint8_t pad0; 181 uint16_t sequence; 182 uint32_t length; 183 xcb_window_t overlay_win; 184 uint8_t pad1[20]; 185} xcb_composite_get_overlay_window_reply_t; 186 187/** Opcode for xcb_composite_release_overlay_window. */ 188#define XCB_COMPOSITE_RELEASE_OVERLAY_WINDOW 8 189 190/** 191 * @brief xcb_composite_release_overlay_window_request_t 192 **/ 193typedef struct xcb_composite_release_overlay_window_request_t { 194 uint8_t major_opcode; 195 uint8_t minor_opcode; 196 uint16_t length; 197 xcb_window_t window; 198} xcb_composite_release_overlay_window_request_t; 199 200/** 201 * @brief Negotiate the version of Composite 202 * 203 * @param c The connection 204 * @param client_major_version The major version supported by the client. 205 * @param client_minor_version The minor version supported by the client. 206 * @return A cookie 207 * 208 * This negotiates the version of the Composite extension. It must be precede all 209 * other requests using Composite. Failure to do so will cause a BadRequest error. 210 * 211 */ 212xcb_composite_query_version_cookie_t 213xcb_composite_query_version (xcb_connection_t *c, 214 uint32_t client_major_version, 215 uint32_t client_minor_version); 216 217/** 218 * @brief Negotiate the version of Composite 219 * 220 * @param c The connection 221 * @param client_major_version The major version supported by the client. 222 * @param client_minor_version The minor version supported by the client. 223 * @return A cookie 224 * 225 * This negotiates the version of the Composite extension. It must be precede all 226 * other requests using Composite. Failure to do so will cause a BadRequest error. 227 * 228 * This form can be used only if the request will cause 229 * a reply to be generated. Any returned error will be 230 * placed in the event queue. 231 */ 232xcb_composite_query_version_cookie_t 233xcb_composite_query_version_unchecked (xcb_connection_t *c, 234 uint32_t client_major_version, 235 uint32_t client_minor_version); 236 237/** 238 * Return the reply 239 * @param c The connection 240 * @param cookie The cookie 241 * @param e The xcb_generic_error_t supplied 242 * 243 * Returns the reply of the request asked by 244 * 245 * The parameter @p e supplied to this function must be NULL if 246 * xcb_composite_query_version_unchecked(). is used. 247 * Otherwise, it stores the error if any. 248 * 249 * The returned value must be freed by the caller using free(). 250 */ 251xcb_composite_query_version_reply_t * 252xcb_composite_query_version_reply (xcb_connection_t *c, 253 xcb_composite_query_version_cookie_t cookie /**< */, 254 xcb_generic_error_t **e); 255 256/** 257 * @brief Redirect the hierarchy starting at "window" to off-screen storage. 258 * 259 * @param c The connection 260 * @param window The root of the hierarchy to redirect to off-screen storage. 261 * @param update A bitmask of #xcb_composite_redirect_t values. 262 * @param update Whether contents are automatically mirrored to the parent window. If one client 263 * already specifies an update type of Manual, any attempt by another to specify a 264 * mode of Manual so will result in an Access error. 265 * @return A cookie 266 * 267 * The hierarchy starting at 'window' is directed to off-screen 268 * storage. When all clients enabling redirection terminate, 269 * the redirection will automatically be disabled. 270 * 271 * The root window may not be redirected. Doing so results in a Match 272 * error. 273 * 274 * This form can be used only if the request will not cause 275 * a reply to be generated. Any returned error will be 276 * saved for handling by xcb_request_check(). 277 */ 278xcb_void_cookie_t 279xcb_composite_redirect_window_checked (xcb_connection_t *c, 280 xcb_window_t window, 281 uint8_t update); 282 283/** 284 * @brief Redirect the hierarchy starting at "window" to off-screen storage. 285 * 286 * @param c The connection 287 * @param window The root of the hierarchy to redirect to off-screen storage. 288 * @param update A bitmask of #xcb_composite_redirect_t values. 289 * @param update Whether contents are automatically mirrored to the parent window. If one client 290 * already specifies an update type of Manual, any attempt by another to specify a 291 * mode of Manual so will result in an Access error. 292 * @return A cookie 293 * 294 * The hierarchy starting at 'window' is directed to off-screen 295 * storage. When all clients enabling redirection terminate, 296 * the redirection will automatically be disabled. 297 * 298 * The root window may not be redirected. Doing so results in a Match 299 * error. 300 * 301 */ 302xcb_void_cookie_t 303xcb_composite_redirect_window (xcb_connection_t *c, 304 xcb_window_t window, 305 uint8_t update); 306 307/** 308 * @brief Redirect all current and future children of ���window��� 309 * 310 * @param c The connection 311 * @param window The root of the hierarchy to redirect to off-screen storage. 312 * @param update A bitmask of #xcb_composite_redirect_t values. 313 * @param update Whether contents are automatically mirrored to the parent window. If one client 314 * already specifies an update type of Manual, any attempt by another to specify a 315 * mode of Manual so will result in an Access error. 316 * @return A cookie 317 * 318 * Hierarchies starting at all current and future children of window 319 * will be redirected as in RedirectWindow. If update is Manual, 320 * then painting of the window background during window manipulation 321 * and ClearArea requests is inhibited. 322 * 323 * This form can be used only if the request will not cause 324 * a reply to be generated. Any returned error will be 325 * saved for handling by xcb_request_check(). 326 */ 327xcb_void_cookie_t 328xcb_composite_redirect_subwindows_checked (xcb_connection_t *c, 329 xcb_window_t window, 330 uint8_t update); 331 332/** 333 * @brief Redirect all current and future children of ���window��� 334 * 335 * @param c The connection 336 * @param window The root of the hierarchy to redirect to off-screen storage. 337 * @param update A bitmask of #xcb_composite_redirect_t values. 338 * @param update Whether contents are automatically mirrored to the parent window. If one client 339 * already specifies an update type of Manual, any attempt by another to specify a 340 * mode of Manual so will result in an Access error. 341 * @return A cookie 342 * 343 * Hierarchies starting at all current and future children of window 344 * will be redirected as in RedirectWindow. If update is Manual, 345 * then painting of the window background during window manipulation 346 * and ClearArea requests is inhibited. 347 * 348 */ 349xcb_void_cookie_t 350xcb_composite_redirect_subwindows (xcb_connection_t *c, 351 xcb_window_t window, 352 uint8_t update); 353 354/** 355 * @brief Terminate redirection of the specified window. 356 * 357 * @param c The connection 358 * @param window The window to terminate redirection of. Must be redirected by the 359 * current client, or a Value error results. 360 * @param update A bitmask of #xcb_composite_redirect_t values. 361 * @param update The update type passed to RedirectWindows. If this does not match the 362 * previously requested update type, a Value error results. 363 * @return A cookie 364 * 365 * Redirection of the specified window will be terminated. This cannot be 366 * used if the window was redirected with RedirectSubwindows. 367 * 368 * This form can be used only if the request will not cause 369 * a reply to be generated. Any returned error will be 370 * saved for handling by xcb_request_check(). 371 */ 372xcb_void_cookie_t 373xcb_composite_unredirect_window_checked (xcb_connection_t *c, 374 xcb_window_t window, 375 uint8_t update); 376 377/** 378 * @brief Terminate redirection of the specified window. 379 * 380 * @param c The connection 381 * @param window The window to terminate redirection of. Must be redirected by the 382 * current client, or a Value error results. 383 * @param update A bitmask of #xcb_composite_redirect_t values. 384 * @param update The update type passed to RedirectWindows. If this does not match the 385 * previously requested update type, a Value error results. 386 * @return A cookie 387 * 388 * Redirection of the specified window will be terminated. This cannot be 389 * used if the window was redirected with RedirectSubwindows. 390 * 391 */ 392xcb_void_cookie_t 393xcb_composite_unredirect_window (xcb_connection_t *c, 394 xcb_window_t window, 395 uint8_t update); 396 397/** 398 * @brief Terminate redirection of the specified window���s children 399 * 400 * @param c The connection 401 * @param window The window to terminate redirection of. Must have previously been 402 * selected for sub-redirection by the current client, or a Value error 403 * results. 404 * @param update A bitmask of #xcb_composite_redirect_t values. 405 * @param update The update type passed to RedirectSubWindows. If this does not match 406 * the previously requested update type, a Value error results. 407 * @return A cookie 408 * 409 * Redirection of all children of window will be terminated. 410 * 411 * This form can be used only if the request will not cause 412 * a reply to be generated. Any returned error will be 413 * saved for handling by xcb_request_check(). 414 */ 415xcb_void_cookie_t 416xcb_composite_unredirect_subwindows_checked (xcb_connection_t *c, 417 xcb_window_t window, 418 uint8_t update); 419 420/** 421 * @brief Terminate redirection of the specified window���s children 422 * 423 * @param c The connection 424 * @param window The window to terminate redirection of. Must have previously been 425 * selected for sub-redirection by the current client, or a Value error 426 * results. 427 * @param update A bitmask of #xcb_composite_redirect_t values. 428 * @param update The update type passed to RedirectSubWindows. If this does not match 429 * the previously requested update type, a Value error results. 430 * @return A cookie 431 * 432 * Redirection of all children of window will be terminated. 433 * 434 */ 435xcb_void_cookie_t 436xcb_composite_unredirect_subwindows (xcb_connection_t *c, 437 xcb_window_t window, 438 uint8_t update); 439 440/** 441 * 442 * @param c The connection 443 * @return A cookie 444 * 445 * Delivers a request to the X server. 446 * 447 * This form can be used only if the request will not cause 448 * a reply to be generated. Any returned error will be 449 * saved for handling by xcb_request_check(). 450 */ 451xcb_void_cookie_t 452xcb_composite_create_region_from_border_clip_checked (xcb_connection_t *c, 453 xcb_xfixes_region_t region, 454 xcb_window_t window); 455 456/** 457 * 458 * @param c The connection 459 * @return A cookie 460 * 461 * Delivers a request to the X server. 462 * 463 */ 464xcb_void_cookie_t 465xcb_composite_create_region_from_border_clip (xcb_connection_t *c, 466 xcb_xfixes_region_t region, 467 xcb_window_t window); 468 469/** 470 * 471 * @param c The connection 472 * @return A cookie 473 * 474 * Delivers a request to the X server. 475 * 476 * This form can be used only if the request will not cause 477 * a reply to be generated. Any returned error will be 478 * saved for handling by xcb_request_check(). 479 */ 480xcb_void_cookie_t 481xcb_composite_name_window_pixmap_checked (xcb_connection_t *c, 482 xcb_window_t window, 483 xcb_pixmap_t pixmap); 484 485/** 486 * 487 * @param c The connection 488 * @return A cookie 489 * 490 * Delivers a request to the X server. 491 * 492 */ 493xcb_void_cookie_t 494xcb_composite_name_window_pixmap (xcb_connection_t *c, 495 xcb_window_t window, 496 xcb_pixmap_t pixmap); 497 498/** 499 * 500 * @param c The connection 501 * @return A cookie 502 * 503 * Delivers a request to the X server. 504 * 505 */ 506xcb_composite_get_overlay_window_cookie_t 507xcb_composite_get_overlay_window (xcb_connection_t *c, 508 xcb_window_t window); 509 510/** 511 * 512 * @param c The connection 513 * @return A cookie 514 * 515 * Delivers a request to the X server. 516 * 517 * This form can be used only if the request will cause 518 * a reply to be generated. Any returned error will be 519 * placed in the event queue. 520 */ 521xcb_composite_get_overlay_window_cookie_t 522xcb_composite_get_overlay_window_unchecked (xcb_connection_t *c, 523 xcb_window_t window); 524 525/** 526 * Return the reply 527 * @param c The connection 528 * @param cookie The cookie 529 * @param e The xcb_generic_error_t supplied 530 * 531 * Returns the reply of the request asked by 532 * 533 * The parameter @p e supplied to this function must be NULL if 534 * xcb_composite_get_overlay_window_unchecked(). is used. 535 * Otherwise, it stores the error if any. 536 * 537 * The returned value must be freed by the caller using free(). 538 */ 539xcb_composite_get_overlay_window_reply_t * 540xcb_composite_get_overlay_window_reply (xcb_connection_t *c, 541 xcb_composite_get_overlay_window_cookie_t cookie /**< */, 542 xcb_generic_error_t **e); 543 544/** 545 * 546 * @param c The connection 547 * @return A cookie 548 * 549 * Delivers a request to the X server. 550 * 551 * This form can be used only if the request will not cause 552 * a reply to be generated. Any returned error will be 553 * saved for handling by xcb_request_check(). 554 */ 555xcb_void_cookie_t 556xcb_composite_release_overlay_window_checked (xcb_connection_t *c, 557 xcb_window_t window); 558 559/** 560 * 561 * @param c The connection 562 * @return A cookie 563 * 564 * Delivers a request to the X server. 565 * 566 */ 567xcb_void_cookie_t 568xcb_composite_release_overlay_window (xcb_connection_t *c, 569 xcb_window_t window); 570 571 572#ifdef __cplusplus 573} 574#endif 575 576#endif 577 578/** 579 * @} 580 */ 581