1 1.1 mrg /* 2 1.1 mrg * This file generated automatically from xinerama.xml by c_client.py. 3 1.1 mrg * Edit at your peril. 4 1.1 mrg */ 5 1.1 mrg 6 1.2 mrg #ifdef HAVE_CONFIG_H 7 1.2 mrg #include "config.h" 8 1.2 mrg #endif 9 1.2 mrg #include <stdlib.h> 10 1.1 mrg #include <string.h> 11 1.1 mrg #include <assert.h> 12 1.2 mrg #include <stddef.h> /* for offsetof() */ 13 1.1 mrg #include "xcbext.h" 14 1.1 mrg #include "xinerama.h" 15 1.2 mrg 16 1.2 mrg #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) 17 1.1 mrg #include "xproto.h" 18 1.1 mrg 19 1.1 mrg xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 }; 20 1.1 mrg 21 1.1 mrg void 22 1.5 mrg xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i) 23 1.1 mrg { 24 1.1 mrg --i->rem; 25 1.1 mrg ++i->data; 26 1.1 mrg i->index += sizeof(xcb_xinerama_screen_info_t); 27 1.1 mrg } 28 1.1 mrg 29 1.1 mrg xcb_generic_iterator_t 30 1.5 mrg xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i) 31 1.1 mrg { 32 1.1 mrg xcb_generic_iterator_t ret; 33 1.1 mrg ret.data = i.data + i.rem; 34 1.1 mrg ret.index = i.index + ((char *) ret.data - (char *) i.data); 35 1.1 mrg ret.rem = 0; 36 1.1 mrg return ret; 37 1.1 mrg } 38 1.1 mrg 39 1.1 mrg xcb_xinerama_query_version_cookie_t 40 1.5 mrg xcb_xinerama_query_version (xcb_connection_t *c, 41 1.5 mrg uint8_t major, 42 1.5 mrg uint8_t minor) 43 1.1 mrg { 44 1.1 mrg static const xcb_protocol_request_t xcb_req = { 45 1.5 mrg .count = 2, 46 1.5 mrg .ext = &xcb_xinerama_id, 47 1.5 mrg .opcode = XCB_XINERAMA_QUERY_VERSION, 48 1.5 mrg .isvoid = 0 49 1.1 mrg }; 50 1.4 mrg 51 1.1 mrg struct iovec xcb_parts[4]; 52 1.1 mrg xcb_xinerama_query_version_cookie_t xcb_ret; 53 1.1 mrg xcb_xinerama_query_version_request_t xcb_out; 54 1.4 mrg 55 1.1 mrg xcb_out.major = major; 56 1.1 mrg xcb_out.minor = minor; 57 1.4 mrg 58 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 59 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 60 1.1 mrg xcb_parts[3].iov_base = 0; 61 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 62 1.4 mrg 63 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 64 1.1 mrg return xcb_ret; 65 1.1 mrg } 66 1.1 mrg 67 1.1 mrg xcb_xinerama_query_version_cookie_t 68 1.5 mrg xcb_xinerama_query_version_unchecked (xcb_connection_t *c, 69 1.5 mrg uint8_t major, 70 1.5 mrg uint8_t minor) 71 1.1 mrg { 72 1.1 mrg static const xcb_protocol_request_t xcb_req = { 73 1.5 mrg .count = 2, 74 1.5 mrg .ext = &xcb_xinerama_id, 75 1.5 mrg .opcode = XCB_XINERAMA_QUERY_VERSION, 76 1.5 mrg .isvoid = 0 77 1.1 mrg }; 78 1.4 mrg 79 1.1 mrg struct iovec xcb_parts[4]; 80 1.1 mrg xcb_xinerama_query_version_cookie_t xcb_ret; 81 1.1 mrg xcb_xinerama_query_version_request_t xcb_out; 82 1.4 mrg 83 1.1 mrg xcb_out.major = major; 84 1.1 mrg xcb_out.minor = minor; 85 1.4 mrg 86 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 87 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 88 1.1 mrg xcb_parts[3].iov_base = 0; 89 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 90 1.4 mrg 91 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 92 1.1 mrg return xcb_ret; 93 1.1 mrg } 94 1.1 mrg 95 1.1 mrg xcb_xinerama_query_version_reply_t * 96 1.5 mrg xcb_xinerama_query_version_reply (xcb_connection_t *c, 97 1.1 mrg xcb_xinerama_query_version_cookie_t cookie /**< */, 98 1.5 mrg xcb_generic_error_t **e) 99 1.1 mrg { 100 1.1 mrg return (xcb_xinerama_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 101 1.1 mrg } 102 1.1 mrg 103 1.1 mrg xcb_xinerama_get_state_cookie_t 104 1.5 mrg xcb_xinerama_get_state (xcb_connection_t *c, 105 1.5 mrg xcb_window_t window) 106 1.1 mrg { 107 1.1 mrg static const xcb_protocol_request_t xcb_req = { 108 1.5 mrg .count = 2, 109 1.5 mrg .ext = &xcb_xinerama_id, 110 1.5 mrg .opcode = XCB_XINERAMA_GET_STATE, 111 1.5 mrg .isvoid = 0 112 1.1 mrg }; 113 1.4 mrg 114 1.1 mrg struct iovec xcb_parts[4]; 115 1.1 mrg xcb_xinerama_get_state_cookie_t xcb_ret; 116 1.1 mrg xcb_xinerama_get_state_request_t xcb_out; 117 1.4 mrg 118 1.1 mrg xcb_out.window = window; 119 1.4 mrg 120 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 121 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 122 1.1 mrg xcb_parts[3].iov_base = 0; 123 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 124 1.4 mrg 125 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 126 1.1 mrg return xcb_ret; 127 1.1 mrg } 128 1.1 mrg 129 1.1 mrg xcb_xinerama_get_state_cookie_t 130 1.5 mrg xcb_xinerama_get_state_unchecked (xcb_connection_t *c, 131 1.5 mrg xcb_window_t window) 132 1.1 mrg { 133 1.1 mrg static const xcb_protocol_request_t xcb_req = { 134 1.5 mrg .count = 2, 135 1.5 mrg .ext = &xcb_xinerama_id, 136 1.5 mrg .opcode = XCB_XINERAMA_GET_STATE, 137 1.5 mrg .isvoid = 0 138 1.1 mrg }; 139 1.4 mrg 140 1.1 mrg struct iovec xcb_parts[4]; 141 1.1 mrg xcb_xinerama_get_state_cookie_t xcb_ret; 142 1.1 mrg xcb_xinerama_get_state_request_t xcb_out; 143 1.4 mrg 144 1.1 mrg xcb_out.window = window; 145 1.4 mrg 146 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 147 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 148 1.1 mrg xcb_parts[3].iov_base = 0; 149 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 150 1.4 mrg 151 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 152 1.1 mrg return xcb_ret; 153 1.1 mrg } 154 1.1 mrg 155 1.1 mrg xcb_xinerama_get_state_reply_t * 156 1.5 mrg xcb_xinerama_get_state_reply (xcb_connection_t *c, 157 1.1 mrg xcb_xinerama_get_state_cookie_t cookie /**< */, 158 1.5 mrg xcb_generic_error_t **e) 159 1.1 mrg { 160 1.1 mrg return (xcb_xinerama_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 161 1.1 mrg } 162 1.1 mrg 163 1.1 mrg xcb_xinerama_get_screen_count_cookie_t 164 1.5 mrg xcb_xinerama_get_screen_count (xcb_connection_t *c, 165 1.5 mrg xcb_window_t window) 166 1.1 mrg { 167 1.1 mrg static const xcb_protocol_request_t xcb_req = { 168 1.5 mrg .count = 2, 169 1.5 mrg .ext = &xcb_xinerama_id, 170 1.5 mrg .opcode = XCB_XINERAMA_GET_SCREEN_COUNT, 171 1.5 mrg .isvoid = 0 172 1.1 mrg }; 173 1.4 mrg 174 1.1 mrg struct iovec xcb_parts[4]; 175 1.1 mrg xcb_xinerama_get_screen_count_cookie_t xcb_ret; 176 1.1 mrg xcb_xinerama_get_screen_count_request_t xcb_out; 177 1.4 mrg 178 1.1 mrg xcb_out.window = window; 179 1.4 mrg 180 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 181 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 182 1.1 mrg xcb_parts[3].iov_base = 0; 183 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 184 1.4 mrg 185 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 186 1.1 mrg return xcb_ret; 187 1.1 mrg } 188 1.1 mrg 189 1.1 mrg xcb_xinerama_get_screen_count_cookie_t 190 1.5 mrg xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c, 191 1.5 mrg xcb_window_t window) 192 1.1 mrg { 193 1.1 mrg static const xcb_protocol_request_t xcb_req = { 194 1.5 mrg .count = 2, 195 1.5 mrg .ext = &xcb_xinerama_id, 196 1.5 mrg .opcode = XCB_XINERAMA_GET_SCREEN_COUNT, 197 1.5 mrg .isvoid = 0 198 1.1 mrg }; 199 1.4 mrg 200 1.1 mrg struct iovec xcb_parts[4]; 201 1.1 mrg xcb_xinerama_get_screen_count_cookie_t xcb_ret; 202 1.1 mrg xcb_xinerama_get_screen_count_request_t xcb_out; 203 1.4 mrg 204 1.1 mrg xcb_out.window = window; 205 1.4 mrg 206 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 207 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 208 1.1 mrg xcb_parts[3].iov_base = 0; 209 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 210 1.4 mrg 211 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 212 1.1 mrg return xcb_ret; 213 1.1 mrg } 214 1.1 mrg 215 1.1 mrg xcb_xinerama_get_screen_count_reply_t * 216 1.5 mrg xcb_xinerama_get_screen_count_reply (xcb_connection_t *c, 217 1.1 mrg xcb_xinerama_get_screen_count_cookie_t cookie /**< */, 218 1.5 mrg xcb_generic_error_t **e) 219 1.1 mrg { 220 1.1 mrg return (xcb_xinerama_get_screen_count_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 221 1.1 mrg } 222 1.1 mrg 223 1.1 mrg xcb_xinerama_get_screen_size_cookie_t 224 1.5 mrg xcb_xinerama_get_screen_size (xcb_connection_t *c, 225 1.5 mrg xcb_window_t window, 226 1.5 mrg uint32_t screen) 227 1.1 mrg { 228 1.1 mrg static const xcb_protocol_request_t xcb_req = { 229 1.5 mrg .count = 2, 230 1.5 mrg .ext = &xcb_xinerama_id, 231 1.5 mrg .opcode = XCB_XINERAMA_GET_SCREEN_SIZE, 232 1.5 mrg .isvoid = 0 233 1.1 mrg }; 234 1.4 mrg 235 1.1 mrg struct iovec xcb_parts[4]; 236 1.1 mrg xcb_xinerama_get_screen_size_cookie_t xcb_ret; 237 1.1 mrg xcb_xinerama_get_screen_size_request_t xcb_out; 238 1.4 mrg 239 1.1 mrg xcb_out.window = window; 240 1.1 mrg xcb_out.screen = screen; 241 1.4 mrg 242 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 243 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 244 1.1 mrg xcb_parts[3].iov_base = 0; 245 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 246 1.4 mrg 247 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 248 1.1 mrg return xcb_ret; 249 1.1 mrg } 250 1.1 mrg 251 1.1 mrg xcb_xinerama_get_screen_size_cookie_t 252 1.5 mrg xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c, 253 1.5 mrg xcb_window_t window, 254 1.5 mrg uint32_t screen) 255 1.1 mrg { 256 1.1 mrg static const xcb_protocol_request_t xcb_req = { 257 1.5 mrg .count = 2, 258 1.5 mrg .ext = &xcb_xinerama_id, 259 1.5 mrg .opcode = XCB_XINERAMA_GET_SCREEN_SIZE, 260 1.5 mrg .isvoid = 0 261 1.1 mrg }; 262 1.4 mrg 263 1.1 mrg struct iovec xcb_parts[4]; 264 1.1 mrg xcb_xinerama_get_screen_size_cookie_t xcb_ret; 265 1.1 mrg xcb_xinerama_get_screen_size_request_t xcb_out; 266 1.4 mrg 267 1.1 mrg xcb_out.window = window; 268 1.1 mrg xcb_out.screen = screen; 269 1.4 mrg 270 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 271 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 272 1.1 mrg xcb_parts[3].iov_base = 0; 273 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 274 1.4 mrg 275 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 276 1.1 mrg return xcb_ret; 277 1.1 mrg } 278 1.1 mrg 279 1.1 mrg xcb_xinerama_get_screen_size_reply_t * 280 1.5 mrg xcb_xinerama_get_screen_size_reply (xcb_connection_t *c, 281 1.1 mrg xcb_xinerama_get_screen_size_cookie_t cookie /**< */, 282 1.5 mrg xcb_generic_error_t **e) 283 1.1 mrg { 284 1.1 mrg return (xcb_xinerama_get_screen_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 285 1.1 mrg } 286 1.1 mrg 287 1.1 mrg xcb_xinerama_is_active_cookie_t 288 1.5 mrg xcb_xinerama_is_active (xcb_connection_t *c) 289 1.1 mrg { 290 1.1 mrg static const xcb_protocol_request_t xcb_req = { 291 1.5 mrg .count = 2, 292 1.5 mrg .ext = &xcb_xinerama_id, 293 1.5 mrg .opcode = XCB_XINERAMA_IS_ACTIVE, 294 1.5 mrg .isvoid = 0 295 1.1 mrg }; 296 1.4 mrg 297 1.1 mrg struct iovec xcb_parts[4]; 298 1.1 mrg xcb_xinerama_is_active_cookie_t xcb_ret; 299 1.1 mrg xcb_xinerama_is_active_request_t xcb_out; 300 1.4 mrg 301 1.4 mrg 302 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 303 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 304 1.1 mrg xcb_parts[3].iov_base = 0; 305 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 306 1.4 mrg 307 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 308 1.1 mrg return xcb_ret; 309 1.1 mrg } 310 1.1 mrg 311 1.1 mrg xcb_xinerama_is_active_cookie_t 312 1.5 mrg xcb_xinerama_is_active_unchecked (xcb_connection_t *c) 313 1.1 mrg { 314 1.1 mrg static const xcb_protocol_request_t xcb_req = { 315 1.5 mrg .count = 2, 316 1.5 mrg .ext = &xcb_xinerama_id, 317 1.5 mrg .opcode = XCB_XINERAMA_IS_ACTIVE, 318 1.5 mrg .isvoid = 0 319 1.1 mrg }; 320 1.4 mrg 321 1.1 mrg struct iovec xcb_parts[4]; 322 1.1 mrg xcb_xinerama_is_active_cookie_t xcb_ret; 323 1.1 mrg xcb_xinerama_is_active_request_t xcb_out; 324 1.4 mrg 325 1.4 mrg 326 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 327 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 328 1.1 mrg xcb_parts[3].iov_base = 0; 329 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 330 1.4 mrg 331 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 332 1.1 mrg return xcb_ret; 333 1.1 mrg } 334 1.1 mrg 335 1.1 mrg xcb_xinerama_is_active_reply_t * 336 1.5 mrg xcb_xinerama_is_active_reply (xcb_connection_t *c, 337 1.1 mrg xcb_xinerama_is_active_cookie_t cookie /**< */, 338 1.5 mrg xcb_generic_error_t **e) 339 1.1 mrg { 340 1.1 mrg return (xcb_xinerama_is_active_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 341 1.1 mrg } 342 1.1 mrg 343 1.2 mrg int 344 1.5 mrg xcb_xinerama_query_screens_sizeof (const void *_buffer) 345 1.2 mrg { 346 1.2 mrg char *xcb_tmp = (char *)_buffer; 347 1.2 mrg const xcb_xinerama_query_screens_reply_t *_aux = (xcb_xinerama_query_screens_reply_t *)_buffer; 348 1.2 mrg unsigned int xcb_buffer_len = 0; 349 1.2 mrg unsigned int xcb_block_len = 0; 350 1.2 mrg unsigned int xcb_pad = 0; 351 1.3 mrg unsigned int xcb_align_to = 0; 352 1.2 mrg 353 1.2 mrg 354 1.2 mrg xcb_block_len += sizeof(xcb_xinerama_query_screens_reply_t); 355 1.2 mrg xcb_tmp += xcb_block_len; 356 1.3 mrg xcb_buffer_len += xcb_block_len; 357 1.3 mrg xcb_block_len = 0; 358 1.2 mrg /* screen_info */ 359 1.2 mrg xcb_block_len += _aux->number * sizeof(xcb_xinerama_screen_info_t); 360 1.2 mrg xcb_tmp += xcb_block_len; 361 1.2 mrg xcb_align_to = ALIGNOF(xcb_xinerama_screen_info_t); 362 1.2 mrg /* insert padding */ 363 1.2 mrg xcb_pad = -xcb_block_len & (xcb_align_to - 1); 364 1.2 mrg xcb_buffer_len += xcb_block_len + xcb_pad; 365 1.2 mrg if (0 != xcb_pad) { 366 1.2 mrg xcb_tmp += xcb_pad; 367 1.2 mrg xcb_pad = 0; 368 1.2 mrg } 369 1.2 mrg xcb_block_len = 0; 370 1.2 mrg 371 1.2 mrg return xcb_buffer_len; 372 1.2 mrg } 373 1.2 mrg 374 1.1 mrg xcb_xinerama_query_screens_cookie_t 375 1.5 mrg xcb_xinerama_query_screens (xcb_connection_t *c) 376 1.1 mrg { 377 1.1 mrg static const xcb_protocol_request_t xcb_req = { 378 1.5 mrg .count = 2, 379 1.5 mrg .ext = &xcb_xinerama_id, 380 1.5 mrg .opcode = XCB_XINERAMA_QUERY_SCREENS, 381 1.5 mrg .isvoid = 0 382 1.1 mrg }; 383 1.4 mrg 384 1.1 mrg struct iovec xcb_parts[4]; 385 1.1 mrg xcb_xinerama_query_screens_cookie_t xcb_ret; 386 1.1 mrg xcb_xinerama_query_screens_request_t xcb_out; 387 1.4 mrg 388 1.4 mrg 389 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 390 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 391 1.1 mrg xcb_parts[3].iov_base = 0; 392 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 393 1.4 mrg 394 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 395 1.1 mrg return xcb_ret; 396 1.1 mrg } 397 1.1 mrg 398 1.1 mrg xcb_xinerama_query_screens_cookie_t 399 1.5 mrg xcb_xinerama_query_screens_unchecked (xcb_connection_t *c) 400 1.1 mrg { 401 1.1 mrg static const xcb_protocol_request_t xcb_req = { 402 1.5 mrg .count = 2, 403 1.5 mrg .ext = &xcb_xinerama_id, 404 1.5 mrg .opcode = XCB_XINERAMA_QUERY_SCREENS, 405 1.5 mrg .isvoid = 0 406 1.1 mrg }; 407 1.4 mrg 408 1.1 mrg struct iovec xcb_parts[4]; 409 1.1 mrg xcb_xinerama_query_screens_cookie_t xcb_ret; 410 1.1 mrg xcb_xinerama_query_screens_request_t xcb_out; 411 1.4 mrg 412 1.4 mrg 413 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out; 414 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out); 415 1.1 mrg xcb_parts[3].iov_base = 0; 416 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 417 1.4 mrg 418 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 419 1.1 mrg return xcb_ret; 420 1.1 mrg } 421 1.1 mrg 422 1.1 mrg xcb_xinerama_screen_info_t * 423 1.5 mrg xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R) 424 1.1 mrg { 425 1.1 mrg return (xcb_xinerama_screen_info_t *) (R + 1); 426 1.1 mrg } 427 1.1 mrg 428 1.1 mrg int 429 1.5 mrg xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R) 430 1.1 mrg { 431 1.1 mrg return R->number; 432 1.1 mrg } 433 1.1 mrg 434 1.1 mrg xcb_xinerama_screen_info_iterator_t 435 1.5 mrg xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R) 436 1.1 mrg { 437 1.1 mrg xcb_xinerama_screen_info_iterator_t i; 438 1.1 mrg i.data = (xcb_xinerama_screen_info_t *) (R + 1); 439 1.1 mrg i.rem = R->number; 440 1.1 mrg i.index = (char *) i.data - (char *) R; 441 1.1 mrg return i; 442 1.1 mrg } 443 1.1 mrg 444 1.1 mrg xcb_xinerama_query_screens_reply_t * 445 1.5 mrg xcb_xinerama_query_screens_reply (xcb_connection_t *c, 446 1.1 mrg xcb_xinerama_query_screens_cookie_t cookie /**< */, 447 1.5 mrg xcb_generic_error_t **e) 448 1.1 mrg { 449 1.1 mrg return (xcb_xinerama_query_screens_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 450 1.1 mrg } 451 1.1 mrg 452