]>
NAME
SYNOPSIS
REQUEST ARGUMENTS
REPLY FIELDS
DESCRIPTION
RETURN VALUE
ERRORS
EXAMPLE
SEE ALSO
AUTHOR
xcb_query_tree − query the window tree
#include <xcb/xproto.h>
Request function
xcb_query_tree_cookie_t xcb_query_tree(xcb_connection_t *conn, xcb_window_t window); |
Reply datastructure
typedef struct
xcb_query_tree_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
xcb_window_t root;
xcb_window_t parent;
uint16_t children_len;
uint8_t pad1[14];
} xcb_query_tree_reply_t;
Reply function
xcb_query_tree_reply_t *xcb_query_tree_reply(xcb_connection_t *conn, xcb_query_tree_cookie_t cookie, xcb_generic_error_t **e); |
xcb_window_t *xcb_query_tree_children(const xcb_query_tree_request_t *reply); | |
int xcb_query_tree_children_length(const xcb_query_tree_reply_t *reply); | |
xcb_generic_iterator_t xcb_query_tree_children_end(const xcb_query_tree_reply_t *reply); |
conn |
The XCB connection to X11. |
|||
window |
The window to query. |
response_type
The type of this reply, in this case XCB_QUERY_TREE. This field is also present in the xcb_generic_reply_t and can be used to tell replies apart from each other.
sequence |
The sequence number of the last request processed by the X11 server. | ||
length |
The length of the reply, in words (a word is 4 bytes). | ||
root |
The root window of window. | ||
parent |
The parent window of window. |
children_len
The number of child windows.
Gets the root window ID, parent window ID and list of children windows for the specified window. The children are listed in bottom-to-top stacking order.
Returns an xcb_query_tree_cookie_t. Errors have to be handled when calling the reply function xcb_query_tree_reply.
If you want to handle errors in the event loop instead, use xcb_query_tree_unchecked. See xcb-requests(3) for details.
This request does never generate any errors.
/*
* Displays the root, parent and children of the specified
window.
*
*/
void my_example(xcb_connection *conn, xcb_window_t window) {
xcb_query_tree_cookie_t cookie;
xcb_query_tree_reply_t *reply;
cookie =
xcb_query_tree(conn, window);
if ((reply = xcb_query_tree_reply(conn, cookie, NULL))) {
printf("root = 0x%08x\n", reply->root);
printf("parent = 0x%08x\n", reply->parent);
xcb_window_t
*children = xcb_query_tree_children(reply);
for (int i = 0; i <
xcb_query_tree_children_length(reply); i++)
printf("child window = 0x%08x\n",
children[i]);
free(reply);
}
}
xcb-requests(3), xcb-examples(3), xwininfo(1)
Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.