diff --git a/gtk/inspector/visual.c b/gtk/inspector/visual.c index 1c06f7ce46..a31a59d21b 100644 --- a/gtk/inspector/visual.c +++ b/gtk/inspector/visual.c @@ -81,9 +81,7 @@ struct _GtkInspectorVisual GtkWidget *cursor_size_spin; GtkWidget *direction_combo; GtkWidget *font_button; - GtkWidget *font_aa_switch; - GtkWidget *font_hinting_combo; - GtkWidget *metrics_hinting_switch; + GtkWidget *font_rendering_combo; GtkWidget *animation_switch; GtkWidget *font_scale_entry; GtkAdjustment *font_scale_adjustment; @@ -237,108 +235,24 @@ font_scale_adjustment_changed (GtkAdjustment *adjustment, update_font_scale (vis, factor, FALSE, TRUE, TRUE); } -static gboolean -get_font_aa (GtkInspectorVisual *vis) +static GtkFontRendering +get_font_rendering (GtkInspectorVisual *vis) { - int aa; + GtkFontRendering font_rendering; - g_object_get (vis->settings, "gtk-xft-antialias", &aa, NULL); + g_object_get (vis->settings, "gtk-font-rendering", &font_rendering, NULL); - return aa != 0; -} - -static gboolean -get_metrics_hinting (GtkInspectorVisual *vis) -{ - gboolean hinting; - - g_object_get (vis->settings, "gtk-hint-font-metrics", &hinting, NULL); - - return hinting; -} - -static unsigned int -get_font_hinting (GtkInspectorVisual *vis) -{ - int hinting; - char *hint_style_str; - unsigned int hint_style; - - g_object_get (vis->settings, - "gtk-xft-hinting", &hinting, - "gtk-xft-hintstyle", &hint_style_str, - NULL); - - hint_style = 1; - if (hinting == 0) - { - hint_style = 0; - } - else - { - if (strcmp (hint_style_str, "hintnone") == 0) - hint_style = 0; - else if (strcmp (hint_style_str, "hintslight") == 0) - hint_style = 1; - else if (strcmp (hint_style_str, "hintmedium") == 0) - hint_style = 2; - else if (strcmp (hint_style_str, "hintfull") == 0) - hint_style = 3; - } - - g_free (hint_style_str); - - return hint_style; + return font_rendering; } static void -update_font_hinting (GtkInspectorVisual *vis, - unsigned int hint_style) +update_font_rendering (GtkInspectorVisual *vis, + GtkFontRendering font_rendering) { - const char *styles[] = { "hintnone", "hintslight", "hintmedium", "hintfull" }; - int hinting; - const char *style; + if (get_font_rendering (vis) == font_rendering) + return; - g_object_get (vis->settings, - "gtk-xft-hinting", &hinting, - "gtk-xft-hintstyle", &style, - NULL); - - if (hinting != (hint_style != 0) || strcmp (style, styles[hint_style]) != 0) - g_object_set (vis->settings, - "gtk-xft-hinting", hint_style != 0, - "gtk-xft-hintstyle", styles[hint_style], - NULL); -} - -static void -font_aa_activate (GtkSwitch *sw, - GParamSpec *pspec, - GtkInspectorVisual *vis) -{ - int val, new_val; - - g_object_get (vis->settings, "gtk-xft-antialias", &val, NULL); - - new_val = gtk_switch_get_active (sw) ? 1 : 0; - - if (val != new_val) - g_object_set (vis->settings, "gtk-xft-antialias", new_val, NULL); -} - -static void -metrics_hinting_activate (GtkSwitch *sw, - GParamSpec *pspec, - GtkInspectorVisual *vis) -{ - gboolean val, new_val; - - g_object_get (vis->settings, "gtk-hint-font-metrics", &val, NULL); - - new_val = gtk_switch_get_active (sw); - - if (val != new_val) - g_object_set (vis->settings, "gtk-hint-font-metrics", new_val, NULL); + g_object_set (vis->settings, "gtk-font-rendering", font_rendering, NULL); } static void @@ -1026,29 +940,17 @@ init_font_scale (GtkInspectorVisual *vis) } static void -init_font_aa (GtkInspectorVisual *vis) +font_rendering_changed (GtkDropDown *combo, + GParamSpec *pspec, + GtkInspectorVisual *vis) { - gtk_switch_set_active (GTK_SWITCH (vis->font_aa_switch), get_font_aa (vis)); + update_font_rendering (vis, gtk_drop_down_get_selected (combo)); } static void -font_hinting_changed (GtkDropDown *combo, - GParamSpec *pspec, - GtkInspectorVisual *vis) +init_font_rendering (GtkInspectorVisual *vis) { - update_font_hinting (vis, gtk_drop_down_get_selected (combo)); -} - -static void -init_font_hinting (GtkInspectorVisual *vis) -{ - gtk_drop_down_set_selected (GTK_DROP_DOWN (vis->font_hinting_combo), get_font_hinting (vis)); -} - -static void -init_metrics_hinting (GtkInspectorVisual *vis) -{ - gtk_switch_set_active (GTK_SWITCH (vis->metrics_hinting_switch), get_metrics_hinting (vis)); + gtk_drop_down_set_selected (GTK_DROP_DOWN (vis->font_rendering_combo), get_font_rendering (vis)); } static void @@ -1299,9 +1201,7 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass) gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, slowdown_adjustment); gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, slowdown_entry); gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, visual_box); - gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, font_aa_switch); - gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, font_hinting_combo); - gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, metrics_hinting_switch); + gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, font_rendering_combo); gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, debug_box); gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, font_button); gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, font_scale_entry); @@ -1319,9 +1219,7 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass) gtk_widget_class_bind_template_callback (widget_class, updates_activate); gtk_widget_class_bind_template_callback (widget_class, cairo_activate); gtk_widget_class_bind_template_callback (widget_class, direction_changed); - gtk_widget_class_bind_template_callback (widget_class, font_aa_activate); - gtk_widget_class_bind_template_callback (widget_class, font_hinting_changed); - gtk_widget_class_bind_template_callback (widget_class, metrics_hinting_activate); + gtk_widget_class_bind_template_callback (widget_class, font_rendering_changed); gtk_widget_class_bind_template_callback (widget_class, baselines_activate); gtk_widget_class_bind_template_callback (widget_class, layout_activate); gtk_widget_class_bind_template_callback (widget_class, focus_activate); @@ -1347,9 +1245,7 @@ gtk_inspector_visual_set_display (GtkInspectorVisual *vis, init_cursor_size (vis); init_font (vis); init_font_scale (vis); - init_font_aa (vis); - init_font_hinting (vis); - init_metrics_hinting (vis); + init_font_rendering (vis); init_animation (vis); init_slowdown (vis); init_gl (vis); diff --git a/gtk/inspector/visual.ui b/gtk/inspector/visual.ui index 3282349bc4..49d14886f1 100644 --- a/gtk/inspector/visual.ui +++ b/gtk/inspector/visual.ui @@ -358,51 +358,24 @@ 40 - - Antialiasing + + Rendering start baseline 0.0 - - end - center - 1 - - - - - - - - - - - - 40 - - - Hinting - start - baseline - 0.0 - - - - + end baseline-center 1 - + - None - Slight - Medium - Full + Automatic + Manual @@ -412,31 +385,6 @@ - - - - - 40 - - - Metrics Hinting - start - baseline - 0.0 - - - - - end - center - 1 - - - - - - - @@ -787,9 +735,7 @@ - - - + @@ -813,7 +759,7 @@ - +