12 /* inherits from xcb_screen_t */
13 typedef struct d_screen {
15 struct d_display *dpy;
18 xcb_window_t selwin; /* for the selection */
19 xcb_atom_t selatom; /* ditto.. */
23 struct timeval next_repaint;
26 struct d_list *stacking;
27 GHashTable *plugin_data;
29 void (*screen_paint)(struct d_screen *sc);
30 void (*window_show)(struct d_window *w);
31 void (*window_hide)(struct d_window *w);
32 void (*window_become_zombie)(struct d_window *w);
35 /*! Tries to register on the screen given by @sc. If it succeeds, it fills
36 in @sc and returns TRUE, otherwise it returns FALSE.
38 gboolean screen_register(struct d_display *dpy, int num, d_screen_t *sc);
39 void screen_free(d_screen_t *sc);
41 void screen_add_window(d_screen_t *sc, xcb_window_t wid);
42 void screen_remove_window(d_screen_t *sc, struct d_window *w);
44 struct d_window* screen_find_window(d_screen_t *sc, xcb_window_t id);
46 void screen_stacking_add(d_screen_t *sc, struct d_window *w);
47 void screen_stacking_remove(d_screen_t *sc, struct d_window *w);
49 void screen_setup_default_functions(d_screen_t *sc);
51 void screen_add_plugin_data(d_screen_t *sc, const char *key, void *data);
52 void* screen_find_plugin_data(d_screen_t *sc, const char *key);
53 void screen_remove_plugin_data(d_screen_t *sc, const char *key);