1 /* GTK - The GIMP Toolkit
2  * gdkasync.h: Utility functions using the Xlib asynchronous interfaces
3  * Copyright (C) 2003, Red Hat, Inc.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef __GDK_ASYNC_H__
20 #define __GDK_ASYNC_H__
21 
22 #include "gdkdisplay.h"
23 #include <X11/Xlib.h>
24 
25 G_BEGIN_DECLS
26 
27 typedef struct _GdkChildInfoX11 GdkChildInfoX11;
28 
29 typedef void (*GdkSendXEventCallback) (Window   window,
30 				       gboolean success,
31 				       gpointer data);
32 typedef void (*GdkRoundTripCallback)  (GdkDisplay *display,
33 				       gpointer data,
34 				       gulong serial);
35 
36 struct _GdkChildInfoX11
37 {
38   Window window;
39   int x;
40   int y;
41   int width;
42   int height;
43   guint is_mapped : 1;
44   guint has_wm_state : 1;
45   guint window_class : 2;
46 };
47 
48 void _gdk_x11_send_client_message_async (GdkDisplay            *display,
49 					 Window                 window,
50 					 gboolean               propagate,
51 					 glong                  event_mask,
52 					 XClientMessageEvent   *event_send,
53 					 GdkSendXEventCallback  callback,
54 					 gpointer               data);
55 
56 gboolean _gdk_x11_get_window_child_info (GdkDisplay       *display,
57 					 Window            window,
58 					 gboolean          get_wm_state,
59 					 gboolean         *win_has_wm_state,
60 					 GdkChildInfoX11 **children,
61 					 guint            *nchildren);
62 
63 void _gdk_x11_roundtrip_async           (GdkDisplay           *display,
64 					 GdkRoundTripCallback callback,
65 					 gpointer              data);
66 
67 G_END_DECLS
68 
69 #endif /* __GDK_ASYNC_H__ */
70