From 72346cb2092f08bcbd8fb5fc0f4ad4fc61f7dd74 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Fri, 25 Mar 2016 13:42:31 +0100 Subject: [PATCH] inspector: add slider for adjusting the font scale https://bugzilla.gnome.org/show_bug.cgi?id=761435 --- gtk/inspector/visual.c | 26 +++++++++++++++++++++++++ gtk/inspector/visual.ui | 42 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/gtk/inspector/visual.c b/gtk/inspector/visual.c index 7ceb88f3d3..712d9c806d 100644 --- a/gtk/inspector/visual.c +++ b/gtk/inspector/visual.c @@ -27,6 +27,7 @@ #include "gtkprivate.h" #include "gtksettings.h" #include "gtkswitch.h" +#include "gtkscale.h" #include "gtkwindow.h" #include "gtkcssproviderprivate.h" @@ -48,8 +49,10 @@ struct _GtkInspectorVisualPrivate GtkWidget *font_button; GtkWidget *hidpi_spin; GtkWidget *animation_switch; + GtkWidget *font_scale_scale; GtkAdjustment *scale_adjustment; GtkAdjustment *cursor_size_adjustment; + GtkAdjustment *font_scale_adjustment; GtkWidget *debug_box; GtkWidget *rendering_mode_combo; @@ -130,6 +133,16 @@ redraw_everything (void) g_list_free (toplevels); } +static void +font_scale_changed (GtkAdjustment *adjustment) +{ + gdouble factor; + + factor = gtk_adjustment_get_value (adjustment); + g_object_set (gtk_settings_get_default (), "gtk-xft-dpi", + (gint)(factor * 96 * 1024), NULL); +} + static void updates_activate (GtkSwitch *sw) { @@ -491,6 +504,16 @@ init_font (GtkInspectorVisual *vis) G_BINDING_BIDIRECTIONAL|G_BINDING_SYNC_CREATE); } +static void +init_font_scale (GtkInspectorVisual *vis) +{ + gtk_scale_add_mark (GTK_SCALE (vis->priv->font_scale_scale), 1.0, GTK_POS_TOP, NULL); + /* There is no backend agnostic way to get the default value, so use 1.0 */ + gtk_adjustment_set_value (vis->priv->font_scale_adjustment, 1.0); + g_signal_connect (vis->priv->font_scale_adjustment, "value-changed", + G_CALLBACK (font_scale_changed), NULL); +} + #if defined (GDK_WINDOWING_X11) static void scale_changed (GtkAdjustment *adjustment, GtkInspectorVisual *vis) @@ -715,6 +738,7 @@ gtk_inspector_visual_init (GtkInspectorVisual *vis) init_cursors (vis); init_cursor_size (vis); init_font (vis); + init_font_scale (vis); init_scale (vis); init_rendering_mode (vis); init_updates (vis); @@ -771,6 +795,8 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass) gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, software_gl_switch); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, software_surface_switch); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, texture_rectangle_switch); + gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, font_scale_scale); + gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, font_scale_adjustment); gtk_widget_class_bind_template_callback (widget_class, updates_activate); gtk_widget_class_bind_template_callback (widget_class, direction_changed); diff --git a/gtk/inspector/visual.ui b/gtk/inspector/visual.ui index 1942fa4532..778dbe8711 100644 --- a/gtk/inspector/visual.ui +++ b/gtk/inspector/visual.ui @@ -6,6 +6,12 @@ 1 1 + + 0.5 + 2 + 0.01 + 0.01 + 24 64 @@ -235,6 +241,41 @@ + + + True + False + + + True + horizontal + 10 + 40 + + + True + Font Scale + start + baseline + 0.0 + + + + + True + end + baseline + 2 + font_scale_adjustment + + + True + + + + + + True @@ -785,6 +826,7 @@ +