Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-utils.c
diff options
context:
space:
mode:
authorJohannes Buchner <buchner.johannes@gmx.at>2007-07-27 05:41:22 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2007-07-27 05:41:22 (GMT)
commit06e8fe2d26f02fd17a4dc19ea10d7ee00dc33243 (patch)
tree67f713b130459a3805e2535bfd3a761b501cad55 /shell/ev-utils.c
parent0316bea7b62a35a692afad8cef9ecfb4a1d6a4f5 (diff)
Reorganizes utility functions.
2007-07-27 Johannes Buchner <buchner.johannes@gmx.at> * 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
Diffstat (limited to 'shell/ev-utils.c')
-rw-r--r--shell/ev-utils.c40
1 files changed, 40 insertions, 0 deletions
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;
+}
+