summaryrefslogtreecommitdiff
path: root/gtk2_ardour/utils.cc
diff options
context:
space:
mode:
authorDoug McLain <doug@nostar.net>2008-02-24 19:13:09 +0000
committerDoug McLain <doug@nostar.net>2008-02-24 19:13:09 +0000
commit2f18e339cdffadbc5a37db39207dc1f7be7cb8ac (patch)
tree6d60e33620b1d87198ac6919a8ca4d1262b9d2a4 /gtk2_ardour/utils.cc
parent6299560116cb1e024f214f4928aa88605a5cddff (diff)
Fixes for canvas and gain meter text not being scaled on startup
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3119 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/utils.cc')
-rw-r--r--gtk2_ardour/utils.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index a1ca5c2eb0..68b5768ded 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -17,6 +17,9 @@
*/
+#include <pango/pangoft2.h> // for fontmap resolution control for GnomeCanvas
+#include <pango/pangocairo.h> // for fontmap resolution control for GnomeCanvas
+
#include <cstdlib>
#include <cctype>
#include <fstream>
@@ -31,6 +34,7 @@
#include <gtkmm2ext/utils.h>
#include <ardour/ardour.h>
+#include <ardour/configuration.h>
#include "ardour_ui.h"
#include "keyboard.h"
@@ -45,6 +49,8 @@ using namespace sigc;
using namespace Glib;
using namespace PBD;
+sigc::signal<void> DPIReset;
+
int
pixel_width (const ustring& str, Pango::FontDescription& font)
{
@@ -692,6 +698,29 @@ key_is_legal_for_numeric_entry (guint keyval)
return false;
}
+void
+set_pango_fontsize ()
+{
+ long val = ARDOUR::Config->get_font_scale();
+
+ /* FT2 rendering */
+
+ pango_ft2_font_map_set_resolution ((PangoFT2FontMap*) pango_ft2_font_map_for_display(), val/1024, val/1024);
+
+ /* Cairo rendering, in case there is any */
+
+ pango_cairo_font_map_set_resolution ((PangoCairoFontMap*) pango_cairo_font_map_get_default(), val/1024);
+}
+void
+reset_dpi ()
+{
+ long val = ARDOUR::Config->get_font_scale();
+ set_pango_fontsize ();
+ /* Xft rendering */
+ gtk_settings_set_long_property (gtk_settings_get_default(),
+ "gtk-xft-dpi", val, "ardour");
+ DPIReset();//Emit Signal
+}