use the window as an alpha mask, so that shadows on argb windows will have their...
[dana/dcompmgr.git] / window.h
1 #ifndef dc__window_h
2 #define dc__window_h
3
4 #include <xcb/xcb.h>
5 #include <xcb/xfixes.h>
6 #include <glib.h>
7
8 struct d_screen;
9
10 typedef struct d_window {
11     xcb_window_t     id;
12     struct d_screen *sc;
13 } d_window_t;
14
15 d_window_t* window_new(xcb_window_t id, struct d_screen *sc);
16
17 void window_ref(d_window_t *w);
18 void window_unref(d_window_t *w);
19
20 void window_show(d_window_t *w);
21 void window_hide(d_window_t *w);
22 void window_fake_unmapped(d_window_t *w);
23
24 void window_become_zombie(d_window_t *w);
25
26 void window_configure(d_window_t *w, int x, int y, int width, int height,
27                       int border_width);
28 void window_move(d_window_t *w);
29 void window_resize(d_window_t *w);
30 void window_reshape(d_window_t *w);
31
32 gboolean window_is_zombie(d_window_t *w);
33 gboolean window_is_input_only(d_window_t *w);
34 gboolean window_is_mapped(d_window_t *w);
35 gboolean window_is_attr_mapped(d_window_t *w);
36 gboolean window_is_argb(d_window_t *w);
37
38 void window_get_area(d_window_t *pubw, int *x, int *y, int *width, int *height,
39                      int *border_width);
40
41 xcb_pixmap_t window_get_pixmap(d_window_t *w);
42 xcb_visualid_t window_get_visual(d_window_t *w);
43 xcb_xfixes_region_t window_get_region(d_window_t *w);
44
45 void  window_add_plugin_data(d_window_t *w, int id, void *data);
46 void* window_find_plugin_data(d_window_t *w, int id);
47 void  window_remove_plugin_data(d_window_t *w, int it);
48
49 void window_create_damage(d_window_t *w);
50 void window_destroy_damage(d_window_t *w);
51
52 #endif