From 06e8fe2d26f02fd17a4dc19ea10d7ee00dc33243 Mon Sep 17 00:00:00 2001 From: Johannes Buchner Date: Fri, 27 Jul 2007 05:41:22 +0000 Subject: Reorganizes utility functions. 2007-07-27 Johannes Buchner * shell/ev-utils.c: (get_num_monitors), (get_screen_dpi): * shell/ev-utils.h: * shell/ev-view.c: (ev_view_set_zoom_for_size), (ev_view_update_view_size): * shell/ev-view.h: * shell/ev-window.c: (ev_window_update_actions), (setup_view_from_metadata), (ev_window_screen_changed), (ev_window_sizing_mode_changed_cb), (ev_window_zoom_changed_cb), (zoom_control_changed_cb): * shell/ev-window.h: Reorganizes utility functions. svn path=/trunk/; revision=2582 --- (limited to 'shell/ev-utils.c') diff --git a/shell/ev-utils.c b/shell/ev-utils.c index 9021726..fabdeaa 100644 --- a/shell/ev-utils.c +++ b/shell/ev-utils.c @@ -369,3 +369,43 @@ ev_gui_menu_position_tree_selection (GtkMenu *menu, ev_gui_sanitise_popup_position (menu, widget, x, y); } +/** + * get_num_monitors: Get the number of user monitors. + * @window: optional GtkWindow to look at. + * + * Returns: Number of monitors, -1 if uncertain situation (like multiple screens) + */ +gint +get_num_monitors (GtkWindow * window) +{ + GdkDisplay * display; + GdkScreen * screen; + gint num_screen = gdk_display_get_n_screens(display); + + display = gdk_display_get_default(); + + if (num_screen != 1) + return -1; + + if (window) + screen = gtk_window_get_screen(window); + else + screen = gdk_display_get_screen(display, 0); + + return gdk_screen_get_n_monitors(screen); +} + +gdouble +get_screen_dpi (GtkWindow * window) +{ + GdkScreen *screen; + gdouble xdpi, ydpi; + + screen = gtk_window_get_screen (window); + + xdpi = 25.4 * gdk_screen_get_width (screen) / gdk_screen_get_width_mm (screen); + ydpi = 25.4 * gdk_screen_get_height (screen) / gdk_screen_get_height_mm (screen); + + return (xdpi + ydpi) / 2.0; +} + -- cgit v0.9.1