1 2 #ifndef __CS_SCREEN_H 3 #define __CS_SCREEN_H 4 5 #include <gtk/gtk.h> 6 #include <gdk/gdk.h> 7 #include <gdk/gdkx.h> 8 9 G_BEGIN_DECLS 10 11 #define CS_TYPE_SCREEN (cs_screen_get_type ()) 12 #define CS_SCREEN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CS_TYPE_SCREEN, CsScreen)) 13 #define CS_SCREEN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), CS_TYPE_SCREEN, CsScreenClass)) 14 #define CS_IS_SCREEN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CS_TYPE_SCREEN)) 15 #define CS_IS_SCREEN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CS_TYPE_SCREEN)) 16 #define CS_SCREEN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CS_TYPE_SCREEN, CsScreenClass)) 17 18 typedef struct _CsMonitorInfo CsMonitorInfo; 19 20 struct _CsMonitorInfo 21 { 22 int number; 23 GdkRectangle rect; 24 gboolean is_primary; 25 XID output; /* The primary or first output for this crtc, None if no xrandr */ 26 }; 27 28 typedef struct 29 { 30 GObject obj; 31 32 GdkRectangle rect; 33 34 GdkScreen *gdk_screen; 35 36 CsMonitorInfo *monitor_infos; 37 38 gint primary_monitor_index; 39 gint n_monitor_infos; 40 41 gulong monitors_changed_id; 42 gulong screen_size_changed_id; 43 gulong composited_changed_id; 44 45 gboolean low_res; 46 gint smallest_width; 47 gint smallest_height; 48 } CsScreen; 49 50 typedef struct 51 { 52 GObjectClass parent_class; 53 } CsScreenClass; 54 55 GType cs_screen_get_type (void); 56 57 CsScreen *cs_screen_new (gboolean debug); 58 59 void cs_screen_get_monitor_geometry (CsScreen *screen, 60 gint monitor, 61 GdkRectangle *geometry); 62 63 void cs_screen_get_screen_geometry (CsScreen *screen, 64 GdkRectangle *geometry); 65 66 gint cs_screen_get_primary_monitor (CsScreen *screen); 67 68 gint cs_screen_get_n_monitors (CsScreen *screen); 69 70 gint cs_screen_get_mouse_monitor (CsScreen *screen); 71 72 gboolean cs_screen_get_low_res_mode (CsScreen *screen); 73 74 void cs_screen_get_smallest_monitor_sizes (CsScreen *screen, 75 gint *width, 76 gint *height); 77 78 void cs_screen_place_pointer_in_primary_monitor (CsScreen *screen); 79 80 void cs_screen_reset_screensaver (void); 81 82 void cs_screen_nuke_focus (void); 83 84 G_END_DECLS 85 86 #endif /* __CS_SCREEN_H */ 87