From 12c4730e6f65bcd72c3335deab798a08b439a410 Mon Sep 17 00:00:00 2001 From: Paolo Borelli Date: Sun, 9 Jan 2011 00:16:20 +0100 Subject: [PATCH] Small cleanup in gailtextview code. Fold gail_misc_add_to_attr_set into the only function calling it, which avoids a useless big "switch" and results in much less code. https://bugzilla.gnome.org/show_bug.cgi?id=639030 --- modules/other/gail/gailtextview.c | 139 +++++++++---------- modules/other/gail/libgail-util/gailmisc.c | 113 --------------- modules/other/gail/libgail-util/gailmisc.h | 4 - modules/other/gail/libgail-util/gailutil.def | 1 - 4 files changed, 66 insertions(+), 191 deletions(-) diff --git a/modules/other/gail/gailtextview.c b/modules/other/gail/gailtextview.c index 873509cb5d..776ce8b687 100644 --- a/modules/other/gail/gailtextview.c +++ b/modules/other/gail/gailtextview.c @@ -640,6 +640,16 @@ gail_text_view_get_run_attributes (AtkText *text, start_offset, end_offset); } +static AtkAttributeSet* +add_text_attribute (AtkAttributeSet *attrib_set, AtkTextAttribute attr, gint i) +{ + const gchar *value; + + value = atk_text_attribute_get_value (attr, i); + + return gail_misc_add_attribute (attrib_set, i, g_strdup (value)); +} + static AtkAttributeSet* gail_text_view_get_default_attributes (AtkText *text) { @@ -648,6 +658,7 @@ gail_text_view_get_default_attributes (AtkText *text) GtkTextAttributes *text_attrs; AtkAttributeSet *attrib_set = NULL; PangoFontDescription *font; + gchar *value; widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); if (widget == NULL) @@ -661,96 +672,78 @@ gail_text_view_get_default_attributes (AtkText *text) if (font) { - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_STYLE); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_STYLE, + pango_font_description_get_style (font)); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_VARIANT); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_VARIANT, + pango_font_description_get_variant (font)); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_STRETCH); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_STRETCH, + pango_font_description_get_stretch (font)); + + value = g_strdup (pango_font_description_get_family (font)); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_FAMILY_NAME, value); + + value = g_strdup_printf ("%d", pango_font_description_get_weight (font)); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_WEIGHT, value); + + value = g_strdup_printf ("%i", pango_font_description_get_size (font) / PANGO_SCALE); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_SIZE, value); } - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_JUSTIFICATION); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_JUSTIFICATION, text_attrs->justification); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_DIRECTION, text_attrs->direction); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_WRAP_MODE, text_attrs->wrap_mode); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_EDITABLE, text_attrs->editable); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_INVISIBLE, text_attrs->invisible); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_BG_FULL_HEIGHT, text_attrs->bg_full_height); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_DIRECTION); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_FG_STIPPLE, NULL); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_BG_STIPPLE, NULL); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_WRAP_MODE); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_STRIKETHROUGH, + text_attrs->appearance.strikethrough); + attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_UNDERLINE, + text_attrs->appearance.underline); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_FG_STIPPLE); + value = g_strdup_printf ("%u,%u,%u", + text_attrs->appearance.bg_color.red, + text_attrs->appearance.bg_color.green, + text_attrs->appearance.bg_color.blue); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_BG_COLOR, value); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_BG_STIPPLE); + value = g_strdup_printf ("%u,%u,%u", + text_attrs->appearance.fg_color.red, + text_attrs->appearance.fg_color.green, + text_attrs->appearance.fg_color.blue); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_FG_COLOR, value); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_FG_COLOR); + value = g_strdup_printf ("%g", text_attrs->font_scale); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_SCALE, value); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_BG_COLOR); + value = g_strdup ((gchar *)(text_attrs->language)); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_LANGUAGE, value); - if (font) - { - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_FAMILY_NAME); - } + value = g_strdup_printf ("%i", text_attrs->appearance.rise); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_RISE, value); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_LANGUAGE); + value = g_strdup_printf ("%i", text_attrs->pixels_inside_wrap); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP, value); - if (font) - { - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_WEIGHT); - } + value = g_strdup_printf ("%i", text_attrs->pixels_below_lines); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_BELOW_LINES, value); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_SCALE); + value = g_strdup_printf ("%i", text_attrs->pixels_above_lines); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_ABOVE_LINES, value); - if (font) - { - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_SIZE); - } + value = g_strdup_printf ("%i", text_attrs->indent); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_INDENT, value); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_STRIKETHROUGH); + value = g_strdup_printf ("%i", text_attrs->left_margin); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_LEFT_MARGIN, value); - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_UNDERLINE); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_RISE); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_BG_FULL_HEIGHT); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_PIXELS_BELOW_LINES); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_PIXELS_ABOVE_LINES); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_EDITABLE); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_INVISIBLE); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_INDENT); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_RIGHT_MARGIN); - - attrib_set = gail_misc_add_to_attr_set (attrib_set, text_attrs, - ATK_TEXT_ATTR_LEFT_MARGIN); + value = g_strdup_printf ("%i", text_attrs->right_margin); + attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_RIGHT_MARGIN, value); gtk_text_attributes_unref (text_attrs); return attrib_set; diff --git a/modules/other/gail/libgail-util/gailmisc.c b/modules/other/gail/libgail-util/gailmisc.c index a9291e4d46..7b9cfb5de2 100644 --- a/modules/other/gail/libgail-util/gailmisc.c +++ b/modules/other/gail/libgail-util/gailmisc.c @@ -560,119 +560,6 @@ gail_misc_get_origins (GtkWidget *widget, gdk_window_get_origin (window, x_toplevel, y_toplevel); } -/** - * gail_misc_add_to_attr_set: - * @attrib_set: An #AtkAttributeSet - * @attrs: The #GtkTextAttributes containing the attribute value - * @attr: The #AtkTextAttribute to be added - * - * Gets the value for the AtkTextAttribute from the GtkTextAttributes - * and adds it to the AttributeSet. - * - * Returns: A pointer to the updated #AtkAttributeSet. - **/ -AtkAttributeSet* -gail_misc_add_to_attr_set (AtkAttributeSet *attrib_set, - GtkTextAttributes *attrs, - AtkTextAttribute attr) -{ - gchar *value; - - switch (attr) - { - case ATK_TEXT_ATTR_LEFT_MARGIN: - value = g_strdup_printf ("%i", attrs->left_margin); - break; - case ATK_TEXT_ATTR_RIGHT_MARGIN: - value = g_strdup_printf ("%i", attrs->right_margin); - break; - case ATK_TEXT_ATTR_INDENT: - value = g_strdup_printf ("%i", attrs->indent); - break; - case ATK_TEXT_ATTR_INVISIBLE: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->invisible)); - break; - case ATK_TEXT_ATTR_EDITABLE: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->editable)); - break; - case ATK_TEXT_ATTR_PIXELS_ABOVE_LINES: - value = g_strdup_printf ("%i", attrs->pixels_above_lines); - break; - case ATK_TEXT_ATTR_PIXELS_BELOW_LINES: - value = g_strdup_printf ("%i", attrs->pixels_below_lines); - break; - case ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP: - value = g_strdup_printf ("%i", attrs->pixels_inside_wrap); - break; - case ATK_TEXT_ATTR_BG_FULL_HEIGHT: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->bg_full_height)); - break; - case ATK_TEXT_ATTR_RISE: - value = g_strdup_printf ("%i", attrs->appearance.rise); - break; - case ATK_TEXT_ATTR_UNDERLINE: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->appearance.underline)); - break; - case ATK_TEXT_ATTR_STRIKETHROUGH: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->appearance.strikethrough)); - break; - case ATK_TEXT_ATTR_SIZE: - value = g_strdup_printf ("%i", - pango_font_description_get_size (attrs->font) / PANGO_SCALE); - break; - case ATK_TEXT_ATTR_SCALE: - value = g_strdup_printf ("%g", attrs->font_scale); - break; - case ATK_TEXT_ATTR_WEIGHT: - value = g_strdup_printf ("%d", - pango_font_description_get_weight (attrs->font)); - break; - case ATK_TEXT_ATTR_LANGUAGE: - value = g_strdup ((gchar *)(attrs->language)); - break; - case ATK_TEXT_ATTR_FAMILY_NAME: - value = g_strdup (pango_font_description_get_family (attrs->font)); - break; - case ATK_TEXT_ATTR_BG_COLOR: - value = g_strdup_printf ("%u,%u,%u", - attrs->appearance.bg_color.red, - attrs->appearance.bg_color.green, - attrs->appearance.bg_color.blue); - break; - case ATK_TEXT_ATTR_FG_COLOR: - value = g_strdup_printf ("%u,%u,%u", - attrs->appearance.fg_color.red, - attrs->appearance.fg_color.green, - attrs->appearance.fg_color.blue); - break; - case ATK_TEXT_ATTR_WRAP_MODE: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->wrap_mode)); - break; - case ATK_TEXT_ATTR_DIRECTION: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->direction)); - break; - case ATK_TEXT_ATTR_JUSTIFICATION: - value = g_strdup (atk_text_attribute_get_value (attr, attrs->justification)); - break; - case ATK_TEXT_ATTR_STRETCH: - value = g_strdup (atk_text_attribute_get_value (attr, - pango_font_description_get_stretch (attrs->font))); - break; - case ATK_TEXT_ATTR_VARIANT: - value = g_strdup (atk_text_attribute_get_value (attr, - pango_font_description_get_variant (attrs->font))); - break; - case ATK_TEXT_ATTR_STYLE: - value = g_strdup (atk_text_attribute_get_value (attr, - pango_font_description_get_style (attrs->font))); - break; - default: - value = NULL; - break; - } - return gail_misc_add_attribute (attrib_set, attr, value); -} - /** * gail_misc_buffer_get_run_attributes: * @buffer: The #GtkTextBuffer for which the attributes will be obtained diff --git a/modules/other/gail/libgail-util/gailmisc.h b/modules/other/gail/libgail-util/gailmisc.h index f430b3c334..9483755c7b 100644 --- a/modules/other/gail/libgail-util/gailmisc.h +++ b/modules/other/gail/libgail-util/gailmisc.h @@ -67,10 +67,6 @@ void gail_misc_get_origins (GtkWidget *widget, gint *x_toplevel, gint *y_toplevel); -AtkAttributeSet* gail_misc_add_to_attr_set (AtkAttributeSet *attrib_set, - GtkTextAttributes *attrs, - AtkTextAttribute attr); - AtkAttributeSet* gail_misc_buffer_get_run_attributes (GtkTextBuffer *buffer, gint offset, diff --git a/modules/other/gail/libgail-util/gailutil.def b/modules/other/gail/libgail-util/gailutil.def index 2077be15f4..5c74915cb1 100644 --- a/modules/other/gail/libgail-util/gailutil.def +++ b/modules/other/gail/libgail-util/gailutil.def @@ -1,6 +1,5 @@ EXPORTS gail_misc_add_attribute - gail_misc_add_to_attr_set gail_misc_buffer_get_run_attributes gail_misc_get_default_attributes gail_misc_get_extents_from_pango_rectangle