xcb_query_tree - Man Page
query the window tree
Synopsis
#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);
Reply accessors
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);
Request Arguments
- conn
The XCB connection to X11.
- window
The window to query.
Reply Fields
- 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.
Description
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.
Return Value
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.
Errors
This request does never generate any errors.
Example
/* * Displays the root, parent and children of the specified window. * */ void my_example(xcb_connection_t *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); } }
See Also
Author
Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
Referenced By
The man pages xcb_query_tree_children(3), xcb_query_tree_children_end(3), xcb_query_tree_children_length(3), xcb_query_tree_reply(3) and xcb_query_tree_unchecked(3) are aliases of xcb_query_tree(3).