diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-02-06 01:10:40 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-02-07 18:19:28 +1100 |
commit | 30466b9abbbbbf215642f73cbae4fbed3d2b9975 (patch) | |
tree | ac38038af3cd5d02144c7015c0eaeb7799c3b4e5 | |
parent | 6bec608ea09743112ead58f86c7d9b25f10ecee2 (diff) | |
download | subsurface-30466b9abbbbbf215642f73cbae4fbed3d2b9975.tar.gz |
Use GDK methods to retrieve the actual screen DPI
gtk-gui.c:
+ added the method get_screen_dpi() that uses a simple
formula to retrieve the actual screen DPI
display.h:
+ use get_screen_dpi() in the SCALE_PRINT macro
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | display.h | 4 | ||||
-rw-r--r-- | gtk-gui.c | 10 |
2 files changed, 12 insertions, 2 deletions
@@ -3,12 +3,12 @@ #include <cairo.h> -#define DPI_SCREEN 72.0 #define SCALE_SCREEN 1.0 -#define SCALE_PRINT (1.0 / DPI_SCREEN) +#define SCALE_PRINT (1.0 / get_screen_dpi()) extern void repaint_dive(void); extern void do_print(void); +extern gdouble get_screen_dpi(void); /* Plot info with smoothing, velocity indication * and one-, two- and three-minute minimums and maximums */ @@ -2020,3 +2020,13 @@ void set_dc_nickname(struct dive *dive) dc = dc->next; } } + +gdouble get_screen_dpi(void) +{ + const gdouble mm_per_inch = 25.4; + GdkScreen *scr = gdk_screen_get_default(); + gdouble h_mm = gdk_screen_get_height_mm(scr); + gdouble h = gdk_screen_get_height(scr); + gdouble dpi_h = floor((h / h_mm) * mm_per_inch); + return dpi_h; +} |