#include "exlprivate.h" enum { COPY_AREA = 8; }; void exl_core_copy_area (ExlConnection *connection, ExlCoreDrawable *src, ExlCoreDrawable *dst, ExlCoreGC *gc, int src_x, int src_y, int width, int height, int dst_x, int dst_y) { _exl_connection_write_request ( connection, COPY_AREA, "XXXiiiiii", src, dst, gc, src_x, src_y, width, height, dst_x, dst_y); } ExlCoreWindow * exl_core_create_window (ExlConnection *connection, ExlCoreWindow *parent, ExlCoreWindowClass klass, int depth, ExlCoreVisual *visual, int x, int y, int width, int height, int border_width, ExlCoreWindowValueMask *mask, ExlCoreWindowValues *values) { ExlCoreWindow *window = _exl_connection_new_id (connection); _exl_connection_write_request ( connection, CREATE_WINDOW, "XXbXsssssiLi", window, parent, depth, visual, x, y, width, height, border_width, bitmask); } typedef struct QueryTreeReply QueryTreeReply; struct QueryTreeReply { ExlCoreQueryTreeReplyFunc reply_func ExlCoreWindow * window; ExlCoreWindow * parent; int n_children; ExlCoreWindow ** children; }; static void exl_core_query_tree_reply (ExclConnection *connection, const ExlError *err, void *data) { QueryTreeReply *reply = data; reply->reply_func ( connection, err, reply->window, reply->parent, reply->n_children, reply->children); exl_free (reply); } void exl_core_query_tree (ExlConnection *connection, ExlCoreWindow *window, ExlCoreQueryTreeReplyFunc reply_func) { QueryTreeReply *reply = exl_new (QueryTreeReply, 1); int serial; serial = _exl_connection_write_request (connection, QUERY_TREE, "X", window); _exl_connection_add_reply_callback ( connection, reply, "XXLX", &(reply->root), &(reply->parent), &(reply->n_children), &(reply->children)); } void exl_core_intern_atom (ExlConnection *connection, const char *name, int only_if_exists) ExlCore) { }