shape.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. /*
  2. * This file generated automatically from shape.xml by c_client.py.
  3. * Edit at your peril.
  4. */
  5. /**
  6. * @defgroup XCB_Shape_API XCB Shape API
  7. * @brief Shape XCB Protocol Implementation.
  8. * @{
  9. **/
  10. #ifndef __SHAPE_H
  11. #define __SHAPE_H
  12. #include "xcb.h"
  13. #include "xproto.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #define XCB_SHAPE_MAJOR_VERSION 1
  18. #define XCB_SHAPE_MINOR_VERSION 1
  19. extern xcb_extension_t xcb_shape_id;
  20. typedef uint8_t xcb_shape_op_t;
  21. /**
  22. * @brief xcb_shape_op_iterator_t
  23. **/
  24. typedef struct xcb_shape_op_iterator_t {
  25. xcb_shape_op_t *data;
  26. int rem;
  27. int index;
  28. } xcb_shape_op_iterator_t;
  29. typedef uint8_t xcb_shape_kind_t;
  30. /**
  31. * @brief xcb_shape_kind_iterator_t
  32. **/
  33. typedef struct xcb_shape_kind_iterator_t {
  34. xcb_shape_kind_t *data;
  35. int rem;
  36. int index;
  37. } xcb_shape_kind_iterator_t;
  38. typedef enum xcb_shape_so_t {
  39. XCB_SHAPE_SO_SET = 0,
  40. XCB_SHAPE_SO_UNION = 1,
  41. XCB_SHAPE_SO_INTERSECT = 2,
  42. XCB_SHAPE_SO_SUBTRACT = 3,
  43. XCB_SHAPE_SO_INVERT = 4
  44. } xcb_shape_so_t;
  45. typedef enum xcb_shape_sk_t {
  46. XCB_SHAPE_SK_BOUNDING = 0,
  47. XCB_SHAPE_SK_CLIP = 1,
  48. XCB_SHAPE_SK_INPUT = 2
  49. } xcb_shape_sk_t;
  50. /** Opcode for xcb_shape_notify. */
  51. #define XCB_SHAPE_NOTIFY 0
  52. /**
  53. * @brief xcb_shape_notify_event_t
  54. **/
  55. typedef struct xcb_shape_notify_event_t {
  56. uint8_t response_type;
  57. xcb_shape_kind_t shape_kind;
  58. uint16_t sequence;
  59. xcb_window_t affected_window;
  60. int16_t extents_x;
  61. int16_t extents_y;
  62. uint16_t extents_width;
  63. uint16_t extents_height;
  64. xcb_timestamp_t server_time;
  65. uint8_t shaped;
  66. uint8_t pad0[11];
  67. } xcb_shape_notify_event_t;
  68. /**
  69. * @brief xcb_shape_query_version_cookie_t
  70. **/
  71. typedef struct xcb_shape_query_version_cookie_t {
  72. unsigned int sequence;
  73. } xcb_shape_query_version_cookie_t;
  74. /** Opcode for xcb_shape_query_version. */
  75. #define XCB_SHAPE_QUERY_VERSION 0
  76. /**
  77. * @brief xcb_shape_query_version_request_t
  78. **/
  79. typedef struct xcb_shape_query_version_request_t {
  80. uint8_t major_opcode;
  81. uint8_t minor_opcode;
  82. uint16_t length;
  83. } xcb_shape_query_version_request_t;
  84. /**
  85. * @brief xcb_shape_query_version_reply_t
  86. **/
  87. typedef struct xcb_shape_query_version_reply_t {
  88. uint8_t response_type;
  89. uint8_t pad0;
  90. uint16_t sequence;
  91. uint32_t length;
  92. uint16_t major_version;
  93. uint16_t minor_version;
  94. } xcb_shape_query_version_reply_t;
  95. /** Opcode for xcb_shape_rectangles. */
  96. #define XCB_SHAPE_RECTANGLES 1
  97. /**
  98. * @brief xcb_shape_rectangles_request_t
  99. **/
  100. typedef struct xcb_shape_rectangles_request_t {
  101. uint8_t major_opcode;
  102. uint8_t minor_opcode;
  103. uint16_t length;
  104. xcb_shape_op_t operation;
  105. xcb_shape_kind_t destination_kind;
  106. uint8_t ordering;
  107. uint8_t pad0;
  108. xcb_window_t destination_window;
  109. int16_t x_offset;
  110. int16_t y_offset;
  111. } xcb_shape_rectangles_request_t;
  112. /** Opcode for xcb_shape_mask. */
  113. #define XCB_SHAPE_MASK 2
  114. /**
  115. * @brief xcb_shape_mask_request_t
  116. **/
  117. typedef struct xcb_shape_mask_request_t {
  118. uint8_t major_opcode;
  119. uint8_t minor_opcode;
  120. uint16_t length;
  121. xcb_shape_op_t operation;
  122. xcb_shape_kind_t destination_kind;
  123. uint8_t pad0[2];
  124. xcb_window_t destination_window;
  125. int16_t x_offset;
  126. int16_t y_offset;
  127. xcb_pixmap_t source_bitmap;
  128. } xcb_shape_mask_request_t;
  129. /** Opcode for xcb_shape_combine. */
  130. #define XCB_SHAPE_COMBINE 3
  131. /**
  132. * @brief xcb_shape_combine_request_t
  133. **/
  134. typedef struct xcb_shape_combine_request_t {
  135. uint8_t major_opcode;
  136. uint8_t minor_opcode;
  137. uint16_t length;
  138. xcb_shape_op_t operation;
  139. xcb_shape_kind_t destination_kind;
  140. xcb_shape_kind_t source_kind;
  141. uint8_t pad0;
  142. xcb_window_t destination_window;
  143. int16_t x_offset;
  144. int16_t y_offset;
  145. xcb_window_t source_window;
  146. } xcb_shape_combine_request_t;
  147. /** Opcode for xcb_shape_offset. */
  148. #define XCB_SHAPE_OFFSET 4
  149. /**
  150. * @brief xcb_shape_offset_request_t
  151. **/
  152. typedef struct xcb_shape_offset_request_t {
  153. uint8_t major_opcode;
  154. uint8_t minor_opcode;
  155. uint16_t length;
  156. xcb_shape_kind_t destination_kind;
  157. uint8_t pad0[3];
  158. xcb_window_t destination_window;
  159. int16_t x_offset;
  160. int16_t y_offset;
  161. } xcb_shape_offset_request_t;
  162. /**
  163. * @brief xcb_shape_query_extents_cookie_t
  164. **/
  165. typedef struct xcb_shape_query_extents_cookie_t {
  166. unsigned int sequence;
  167. } xcb_shape_query_extents_cookie_t;
  168. /** Opcode for xcb_shape_query_extents. */
  169. #define XCB_SHAPE_QUERY_EXTENTS 5
  170. /**
  171. * @brief xcb_shape_query_extents_request_t
  172. **/
  173. typedef struct xcb_shape_query_extents_request_t {
  174. uint8_t major_opcode;
  175. uint8_t minor_opcode;
  176. uint16_t length;
  177. xcb_window_t destination_window;
  178. } xcb_shape_query_extents_request_t;
  179. /**
  180. * @brief xcb_shape_query_extents_reply_t
  181. **/
  182. typedef struct xcb_shape_query_extents_reply_t {
  183. uint8_t response_type;
  184. uint8_t pad0;
  185. uint16_t sequence;
  186. uint32_t length;
  187. uint8_t bounding_shaped;
  188. uint8_t clip_shaped;
  189. uint8_t pad1[2];
  190. int16_t bounding_shape_extents_x;
  191. int16_t bounding_shape_extents_y;
  192. uint16_t bounding_shape_extents_width;
  193. uint16_t bounding_shape_extents_height;
  194. int16_t clip_shape_extents_x;
  195. int16_t clip_shape_extents_y;
  196. uint16_t clip_shape_extents_width;
  197. uint16_t clip_shape_extents_height;
  198. } xcb_shape_query_extents_reply_t;
  199. /** Opcode for xcb_shape_select_input. */
  200. #define XCB_SHAPE_SELECT_INPUT 6
  201. /**
  202. * @brief xcb_shape_select_input_request_t
  203. **/
  204. typedef struct xcb_shape_select_input_request_t {
  205. uint8_t major_opcode;
  206. uint8_t minor_opcode;
  207. uint16_t length;
  208. xcb_window_t destination_window;
  209. uint8_t enable;
  210. uint8_t pad0[3];
  211. } xcb_shape_select_input_request_t;
  212. /**
  213. * @brief xcb_shape_input_selected_cookie_t
  214. **/
  215. typedef struct xcb_shape_input_selected_cookie_t {
  216. unsigned int sequence;
  217. } xcb_shape_input_selected_cookie_t;
  218. /** Opcode for xcb_shape_input_selected. */
  219. #define XCB_SHAPE_INPUT_SELECTED 7
  220. /**
  221. * @brief xcb_shape_input_selected_request_t
  222. **/
  223. typedef struct xcb_shape_input_selected_request_t {
  224. uint8_t major_opcode;
  225. uint8_t minor_opcode;
  226. uint16_t length;
  227. xcb_window_t destination_window;
  228. } xcb_shape_input_selected_request_t;
  229. /**
  230. * @brief xcb_shape_input_selected_reply_t
  231. **/
  232. typedef struct xcb_shape_input_selected_reply_t {
  233. uint8_t response_type;
  234. uint8_t enabled;
  235. uint16_t sequence;
  236. uint32_t length;
  237. } xcb_shape_input_selected_reply_t;
  238. /**
  239. * @brief xcb_shape_get_rectangles_cookie_t
  240. **/
  241. typedef struct xcb_shape_get_rectangles_cookie_t {
  242. unsigned int sequence;
  243. } xcb_shape_get_rectangles_cookie_t;
  244. /** Opcode for xcb_shape_get_rectangles. */
  245. #define XCB_SHAPE_GET_RECTANGLES 8
  246. /**
  247. * @brief xcb_shape_get_rectangles_request_t
  248. **/
  249. typedef struct xcb_shape_get_rectangles_request_t {
  250. uint8_t major_opcode;
  251. uint8_t minor_opcode;
  252. uint16_t length;
  253. xcb_window_t window;
  254. xcb_shape_kind_t source_kind;
  255. uint8_t pad0[3];
  256. } xcb_shape_get_rectangles_request_t;
  257. /**
  258. * @brief xcb_shape_get_rectangles_reply_t
  259. **/
  260. typedef struct xcb_shape_get_rectangles_reply_t {
  261. uint8_t response_type;
  262. uint8_t ordering;
  263. uint16_t sequence;
  264. uint32_t length;
  265. uint32_t rectangles_len;
  266. uint8_t pad0[20];
  267. } xcb_shape_get_rectangles_reply_t;
  268. /**
  269. * Get the next element of the iterator
  270. * @param i Pointer to a xcb_shape_op_iterator_t
  271. *
  272. * Get the next element in the iterator. The member rem is
  273. * decreased by one. The member data points to the next
  274. * element. The member index is increased by sizeof(xcb_shape_op_t)
  275. */
  276. void
  277. xcb_shape_op_next (xcb_shape_op_iterator_t *i);
  278. /**
  279. * Return the iterator pointing to the last element
  280. * @param i An xcb_shape_op_iterator_t
  281. * @return The iterator pointing to the last element
  282. *
  283. * Set the current element in the iterator to the last element.
  284. * The member rem is set to 0. The member data points to the
  285. * last element.
  286. */
  287. xcb_generic_iterator_t
  288. xcb_shape_op_end (xcb_shape_op_iterator_t i);
  289. /**
  290. * Get the next element of the iterator
  291. * @param i Pointer to a xcb_shape_kind_iterator_t
  292. *
  293. * Get the next element in the iterator. The member rem is
  294. * decreased by one. The member data points to the next
  295. * element. The member index is increased by sizeof(xcb_shape_kind_t)
  296. */
  297. void
  298. xcb_shape_kind_next (xcb_shape_kind_iterator_t *i);
  299. /**
  300. * Return the iterator pointing to the last element
  301. * @param i An xcb_shape_kind_iterator_t
  302. * @return The iterator pointing to the last element
  303. *
  304. * Set the current element in the iterator to the last element.
  305. * The member rem is set to 0. The member data points to the
  306. * last element.
  307. */
  308. xcb_generic_iterator_t
  309. xcb_shape_kind_end (xcb_shape_kind_iterator_t i);
  310. /**
  311. *
  312. * @param c The connection
  313. * @return A cookie
  314. *
  315. * Delivers a request to the X server.
  316. *
  317. */
  318. xcb_shape_query_version_cookie_t
  319. xcb_shape_query_version (xcb_connection_t *c);
  320. /**
  321. *
  322. * @param c The connection
  323. * @return A cookie
  324. *
  325. * Delivers a request to the X server.
  326. *
  327. * This form can be used only if the request will cause
  328. * a reply to be generated. Any returned error will be
  329. * placed in the event queue.
  330. */
  331. xcb_shape_query_version_cookie_t
  332. xcb_shape_query_version_unchecked (xcb_connection_t *c);
  333. /**
  334. * Return the reply
  335. * @param c The connection
  336. * @param cookie The cookie
  337. * @param e The xcb_generic_error_t supplied
  338. *
  339. * Returns the reply of the request asked by
  340. *
  341. * The parameter @p e supplied to this function must be NULL if
  342. * xcb_shape_query_version_unchecked(). is used.
  343. * Otherwise, it stores the error if any.
  344. *
  345. * The returned value must be freed by the caller using free().
  346. */
  347. xcb_shape_query_version_reply_t *
  348. xcb_shape_query_version_reply (xcb_connection_t *c,
  349. xcb_shape_query_version_cookie_t cookie /**< */,
  350. xcb_generic_error_t **e);
  351. int
  352. xcb_shape_rectangles_sizeof (const void *_buffer,
  353. uint32_t rectangles_len);
  354. /**
  355. *
  356. * @param c The connection
  357. * @return A cookie
  358. *
  359. * Delivers a request to the X server.
  360. *
  361. * This form can be used only if the request will not cause
  362. * a reply to be generated. Any returned error will be
  363. * saved for handling by xcb_request_check().
  364. */
  365. xcb_void_cookie_t
  366. xcb_shape_rectangles_checked (xcb_connection_t *c,
  367. xcb_shape_op_t operation,
  368. xcb_shape_kind_t destination_kind,
  369. uint8_t ordering,
  370. xcb_window_t destination_window,
  371. int16_t x_offset,
  372. int16_t y_offset,
  373. uint32_t rectangles_len,
  374. const xcb_rectangle_t *rectangles);
  375. /**
  376. *
  377. * @param c The connection
  378. * @return A cookie
  379. *
  380. * Delivers a request to the X server.
  381. *
  382. */
  383. xcb_void_cookie_t
  384. xcb_shape_rectangles (xcb_connection_t *c,
  385. xcb_shape_op_t operation,
  386. xcb_shape_kind_t destination_kind,
  387. uint8_t ordering,
  388. xcb_window_t destination_window,
  389. int16_t x_offset,
  390. int16_t y_offset,
  391. uint32_t rectangles_len,
  392. const xcb_rectangle_t *rectangles);
  393. xcb_rectangle_t *
  394. xcb_shape_rectangles_rectangles (const xcb_shape_rectangles_request_t *R);
  395. int
  396. xcb_shape_rectangles_rectangles_length (const xcb_shape_rectangles_request_t *R);
  397. xcb_rectangle_iterator_t
  398. xcb_shape_rectangles_rectangles_iterator (const xcb_shape_rectangles_request_t *R);
  399. /**
  400. *
  401. * @param c The connection
  402. * @return A cookie
  403. *
  404. * Delivers a request to the X server.
  405. *
  406. * This form can be used only if the request will not cause
  407. * a reply to be generated. Any returned error will be
  408. * saved for handling by xcb_request_check().
  409. */
  410. xcb_void_cookie_t
  411. xcb_shape_mask_checked (xcb_connection_t *c,
  412. xcb_shape_op_t operation,
  413. xcb_shape_kind_t destination_kind,
  414. xcb_window_t destination_window,
  415. int16_t x_offset,
  416. int16_t y_offset,
  417. xcb_pixmap_t source_bitmap);
  418. /**
  419. *
  420. * @param c The connection
  421. * @return A cookie
  422. *
  423. * Delivers a request to the X server.
  424. *
  425. */
  426. xcb_void_cookie_t
  427. xcb_shape_mask (xcb_connection_t *c,
  428. xcb_shape_op_t operation,
  429. xcb_shape_kind_t destination_kind,
  430. xcb_window_t destination_window,
  431. int16_t x_offset,
  432. int16_t y_offset,
  433. xcb_pixmap_t source_bitmap);
  434. /**
  435. *
  436. * @param c The connection
  437. * @return A cookie
  438. *
  439. * Delivers a request to the X server.
  440. *
  441. * This form can be used only if the request will not cause
  442. * a reply to be generated. Any returned error will be
  443. * saved for handling by xcb_request_check().
  444. */
  445. xcb_void_cookie_t
  446. xcb_shape_combine_checked (xcb_connection_t *c,
  447. xcb_shape_op_t operation,
  448. xcb_shape_kind_t destination_kind,
  449. xcb_shape_kind_t source_kind,
  450. xcb_window_t destination_window,
  451. int16_t x_offset,
  452. int16_t y_offset,
  453. xcb_window_t source_window);
  454. /**
  455. *
  456. * @param c The connection
  457. * @return A cookie
  458. *
  459. * Delivers a request to the X server.
  460. *
  461. */
  462. xcb_void_cookie_t
  463. xcb_shape_combine (xcb_connection_t *c,
  464. xcb_shape_op_t operation,
  465. xcb_shape_kind_t destination_kind,
  466. xcb_shape_kind_t source_kind,
  467. xcb_window_t destination_window,
  468. int16_t x_offset,
  469. int16_t y_offset,
  470. xcb_window_t source_window);
  471. /**
  472. *
  473. * @param c The connection
  474. * @return A cookie
  475. *
  476. * Delivers a request to the X server.
  477. *
  478. * This form can be used only if the request will not cause
  479. * a reply to be generated. Any returned error will be
  480. * saved for handling by xcb_request_check().
  481. */
  482. xcb_void_cookie_t
  483. xcb_shape_offset_checked (xcb_connection_t *c,
  484. xcb_shape_kind_t destination_kind,
  485. xcb_window_t destination_window,
  486. int16_t x_offset,
  487. int16_t y_offset);
  488. /**
  489. *
  490. * @param c The connection
  491. * @return A cookie
  492. *
  493. * Delivers a request to the X server.
  494. *
  495. */
  496. xcb_void_cookie_t
  497. xcb_shape_offset (xcb_connection_t *c,
  498. xcb_shape_kind_t destination_kind,
  499. xcb_window_t destination_window,
  500. int16_t x_offset,
  501. int16_t y_offset);
  502. /**
  503. *
  504. * @param c The connection
  505. * @return A cookie
  506. *
  507. * Delivers a request to the X server.
  508. *
  509. */
  510. xcb_shape_query_extents_cookie_t
  511. xcb_shape_query_extents (xcb_connection_t *c,
  512. xcb_window_t destination_window);
  513. /**
  514. *
  515. * @param c The connection
  516. * @return A cookie
  517. *
  518. * Delivers a request to the X server.
  519. *
  520. * This form can be used only if the request will cause
  521. * a reply to be generated. Any returned error will be
  522. * placed in the event queue.
  523. */
  524. xcb_shape_query_extents_cookie_t
  525. xcb_shape_query_extents_unchecked (xcb_connection_t *c,
  526. xcb_window_t destination_window);
  527. /**
  528. * Return the reply
  529. * @param c The connection
  530. * @param cookie The cookie
  531. * @param e The xcb_generic_error_t supplied
  532. *
  533. * Returns the reply of the request asked by
  534. *
  535. * The parameter @p e supplied to this function must be NULL if
  536. * xcb_shape_query_extents_unchecked(). is used.
  537. * Otherwise, it stores the error if any.
  538. *
  539. * The returned value must be freed by the caller using free().
  540. */
  541. xcb_shape_query_extents_reply_t *
  542. xcb_shape_query_extents_reply (xcb_connection_t *c,
  543. xcb_shape_query_extents_cookie_t cookie /**< */,
  544. xcb_generic_error_t **e);
  545. /**
  546. *
  547. * @param c The connection
  548. * @return A cookie
  549. *
  550. * Delivers a request to the X server.
  551. *
  552. * This form can be used only if the request will not cause
  553. * a reply to be generated. Any returned error will be
  554. * saved for handling by xcb_request_check().
  555. */
  556. xcb_void_cookie_t
  557. xcb_shape_select_input_checked (xcb_connection_t *c,
  558. xcb_window_t destination_window,
  559. uint8_t enable);
  560. /**
  561. *
  562. * @param c The connection
  563. * @return A cookie
  564. *
  565. * Delivers a request to the X server.
  566. *
  567. */
  568. xcb_void_cookie_t
  569. xcb_shape_select_input (xcb_connection_t *c,
  570. xcb_window_t destination_window,
  571. uint8_t enable);
  572. /**
  573. *
  574. * @param c The connection
  575. * @return A cookie
  576. *
  577. * Delivers a request to the X server.
  578. *
  579. */
  580. xcb_shape_input_selected_cookie_t
  581. xcb_shape_input_selected (xcb_connection_t *c,
  582. xcb_window_t destination_window);
  583. /**
  584. *
  585. * @param c The connection
  586. * @return A cookie
  587. *
  588. * Delivers a request to the X server.
  589. *
  590. * This form can be used only if the request will cause
  591. * a reply to be generated. Any returned error will be
  592. * placed in the event queue.
  593. */
  594. xcb_shape_input_selected_cookie_t
  595. xcb_shape_input_selected_unchecked (xcb_connection_t *c,
  596. xcb_window_t destination_window);
  597. /**
  598. * Return the reply
  599. * @param c The connection
  600. * @param cookie The cookie
  601. * @param e The xcb_generic_error_t supplied
  602. *
  603. * Returns the reply of the request asked by
  604. *
  605. * The parameter @p e supplied to this function must be NULL if
  606. * xcb_shape_input_selected_unchecked(). is used.
  607. * Otherwise, it stores the error if any.
  608. *
  609. * The returned value must be freed by the caller using free().
  610. */
  611. xcb_shape_input_selected_reply_t *
  612. xcb_shape_input_selected_reply (xcb_connection_t *c,
  613. xcb_shape_input_selected_cookie_t cookie /**< */,
  614. xcb_generic_error_t **e);
  615. int
  616. xcb_shape_get_rectangles_sizeof (const void *_buffer);
  617. /**
  618. *
  619. * @param c The connection
  620. * @return A cookie
  621. *
  622. * Delivers a request to the X server.
  623. *
  624. */
  625. xcb_shape_get_rectangles_cookie_t
  626. xcb_shape_get_rectangles (xcb_connection_t *c,
  627. xcb_window_t window,
  628. xcb_shape_kind_t source_kind);
  629. /**
  630. *
  631. * @param c The connection
  632. * @return A cookie
  633. *
  634. * Delivers a request to the X server.
  635. *
  636. * This form can be used only if the request will cause
  637. * a reply to be generated. Any returned error will be
  638. * placed in the event queue.
  639. */
  640. xcb_shape_get_rectangles_cookie_t
  641. xcb_shape_get_rectangles_unchecked (xcb_connection_t *c,
  642. xcb_window_t window,
  643. xcb_shape_kind_t source_kind);
  644. xcb_rectangle_t *
  645. xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R);
  646. int
  647. xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R);
  648. xcb_rectangle_iterator_t
  649. xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R);
  650. /**
  651. * Return the reply
  652. * @param c The connection
  653. * @param cookie The cookie
  654. * @param e The xcb_generic_error_t supplied
  655. *
  656. * Returns the reply of the request asked by
  657. *
  658. * The parameter @p e supplied to this function must be NULL if
  659. * xcb_shape_get_rectangles_unchecked(). is used.
  660. * Otherwise, it stores the error if any.
  661. *
  662. * The returned value must be freed by the caller using free().
  663. */
  664. xcb_shape_get_rectangles_reply_t *
  665. xcb_shape_get_rectangles_reply (xcb_connection_t *c,
  666. xcb_shape_get_rectangles_cookie_t cookie /**< */,
  667. xcb_generic_error_t **e);
  668. #ifdef __cplusplus
  669. }
  670. #endif
  671. #endif
  672. /**
  673. * @}
  674. */