]> www.fi.muni.cz Git - evince.git/commitdiff
Move get_screen_dpi to libdocument
authorCarlos Garcia Campos <carlosgc@gnome.org>
Sun, 21 Feb 2010 11:29:24 +0000 (12:29 +0100)
committerCarlos Garcia Campos <carlosgc@gnome.org>
Sun, 21 Feb 2010 11:29:24 +0000 (12:29 +0100)
libdocument/ev-document-misc.c
libdocument/ev-document-misc.h
shell/ev-utils.c
shell/ev-utils.h
shell/ev-window.c

index 14bc3a354a3d86cd122293499fecf7e1e91020b9..0a23394c1ba5c5644215a98fdfbaef1e7cae710e 100644 (file)
@@ -21,6 +21,7 @@
 #include <config.h>
 
 #include <string.h>
+#include <math.h>
 
 #include <gtk/gtk.h>
 
@@ -363,3 +364,17 @@ ev_document_misc_invert_pixbuf (GdkPixbuf *pixbuf)
                }
        }
 }
+
+gdouble
+ev_document_misc_get_screen_dpi (GdkScreen *screen)
+{
+       gdouble dp, di;
+
+       /*diagonal in pixels*/
+       dp = hypot (gdk_screen_get_width (screen), gdk_screen_get_height (screen));
+
+       /*diagonal in inches*/
+       di = hypot (gdk_screen_get_width_mm(screen), gdk_screen_get_height_mm (screen)) / 25.4;
+
+       return (dp / di);
+}
index 8e929836e3343e5f6c9746f6365daf4122c5de6f..61d070df035ce7af6d53be8ec05c8adadbcdb8a6 100644 (file)
@@ -54,6 +54,8 @@ cairo_surface_t *ev_document_misc_surface_rotate_and_scale (cairo_surface_t *sur
 void             ev_document_misc_invert_surface (cairo_surface_t *surface);
 void            ev_document_misc_invert_pixbuf  (GdkPixbuf       *pixbuf);
 
+gdouble          ev_document_misc_get_screen_dpi (GdkScreen *screen);
+
 G_END_DECLS
 
 #endif /* EV_DOCUMENT_MISC_H */
index d77e91ff87936637a7b10c4748f42ddbe48fab02..8c94f6e1180a89c316d8769520a902fea5a24fbc 100644 (file)
@@ -303,24 +303,6 @@ get_num_monitors (GtkWindow *window)
        return gdk_screen_get_n_monitors (screen);
 }
 
-gdouble
-get_screen_dpi (GtkWindow *window)
-{
-       GdkScreen *screen;
-       gdouble    dp, di;
-
-       screen = gtk_window_get_screen (window);
-
-       /*diagonal in pixels*/
-       dp = hypot (gdk_screen_get_width (screen), gdk_screen_get_height (screen));
-
-       /*diagonal in inches*/
-       di = hypot (gdk_screen_get_width_mm(screen), gdk_screen_get_height_mm (screen)) / 25.4;
-
-       return (dp / di);
-}
-
-
 void           
 file_chooser_dialog_add_writable_pixbuf_formats (GtkFileChooser *chooser)
 {
index f7c58a728c97ceb005513cfdb07bd63225919109..513f51b796154c43b9e06af7047b65ad9c8d5544 100644 (file)
@@ -39,8 +39,6 @@ void                  ev_gui_menu_position_tree_selection (GtkMenu   *menu,
 
 gint                   get_num_monitors (GtkWindow * window);
 
-gdouble                get_screen_dpi (GtkWindow * window);
-
 void                           file_chooser_dialog_add_writable_pixbuf_formats (GtkFileChooser *chooser);
 GdkPixbufFormat*       get_gdk_pixbuf_format_by_extension (gchar *uri);
 
index 2725739c83d6704c5a6113716f6cf25cc2fcde42..93f674b6b189854f4cd64577e61f5750a57852ee 100644 (file)
@@ -62,6 +62,7 @@
 #include "ev-document-thumbnails.h"
 #include "ev-document-annotations.h"
 #include "ev-document-type-builtins.h"
+#include "ev-document-misc.h"
 #include "ev-file-exporter.h"
 #include "ev-file-helpers.h"
 #include "ev-file-monitor.h"
@@ -321,6 +322,15 @@ static guint ev_window_n_copies = 0;
 
 G_DEFINE_TYPE (EvWindow, ev_window, GTK_TYPE_WINDOW)
 
+static gdouble
+get_screen_dpi (EvWindow *window)
+{
+       GdkScreen *screen;
+
+       screen = gtk_window_get_screen (GTK_WINDOW (window));
+       return ev_document_misc_get_screen_dpi (screen);
+}
+
 static void
 ev_window_set_action_sensitive (EvWindow   *ev_window,
                                const char *name,
@@ -497,7 +507,7 @@ ev_window_update_actions (EvWindow *ev_window)
                                                      ZOOM_CONTROL_ACTION);
 
                real_zoom = ev_document_model_get_scale (ev_window->priv->model);
-               real_zoom *= 72.0 / get_screen_dpi (GTK_WINDOW (ev_window));
+               real_zoom *= 72.0 / get_screen_dpi (ev_window);
                zoom = ephy_zoom_get_nearest_zoom_level (real_zoom);
 
                ephy_zoom_action_set_zoom_level (EPHY_ZOOM_ACTION (action), zoom);
@@ -982,7 +992,7 @@ setup_model_from_metadata (EvWindow *window)
        /* Zoom */
        if (ev_document_model_get_sizing_mode (window->priv->model) == EV_SIZING_FREE &&
            ev_metadata_get_double (window->priv->metadata, "zoom", &zoom)) {
-               zoom *= get_screen_dpi (GTK_WINDOW (window)) / 72.0;
+               zoom *= get_screen_dpi (window) / 72.0;
                ev_document_model_set_scale (window->priv->model, zoom);
        }
 
@@ -3711,7 +3721,7 @@ ev_window_screen_changed (GtkWidget *widget,
                return;
 
        ev_window_setup_gtk_settings (window);
-       dpi = get_screen_dpi (GTK_WINDOW (window));
+       dpi = get_screen_dpi (window);
        ev_document_model_set_min_scale (priv->model, MIN_SCALE * dpi / 72.0);
        ev_document_model_set_max_scale (priv->model, MAX_SCALE * dpi / 72.0);
 
@@ -4067,7 +4077,7 @@ ev_window_zoom_changed_cb (EvDocumentModel *model, GParamSpec *pspec, EvWindow *
                gdouble zoom;
 
                zoom = ev_document_model_get_scale (model);
-               zoom *= 72.0 / get_screen_dpi (GTK_WINDOW (ev_window));
+               zoom *= 72.0 / get_screen_dpi (ev_window);
                ev_metadata_set_double (ev_window->priv->metadata, "zoom", zoom);
        }
 }
@@ -4685,7 +4695,7 @@ zoom_control_changed_cb (EphyZoomAction *action,
 
        if (mode == EV_SIZING_FREE) {
                ev_document_model_set_scale (ev_window->priv->model,
-                                            zoom * get_screen_dpi (GTK_WINDOW (ev_window)) / 72.0);
+                                            zoom * get_screen_dpi (ev_window) / 72.0);
        }
 }
 
@@ -6272,7 +6282,7 @@ ev_window_init (EvWindow *ev_window)
 
        ev_window->priv->view = ev_view_new ();
        ev_view_set_model (EV_VIEW (ev_window->priv->view), ev_window->priv->model);
-       dpi = get_screen_dpi (GTK_WINDOW (ev_window));
+       dpi = get_screen_dpi (ev_window);
        ev_document_model_set_min_scale (ev_window->priv->model, MIN_SCALE * dpi / 72.0);
        ev_document_model_set_max_scale (ev_window->priv->model, MAX_SCALE * dpi / 72.0);
        ev_window->priv->password_view = ev_password_view_new (GTK_WINDOW (ev_window));