From 7fdb991b996422581b4bd5f6e26e9a9f33e6c14e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Javier=20Jard=C3=B3n?= Date: Tue, 1 Jun 2010 20:45:11 +0200 Subject: [PATCH] gtkcellrenderertext: Move public members to private structure --- gtk/gtkcellrenderertext.c | 407 ++++++++++++++++++++------------------ gtk/gtkcellrenderertext.h | 32 +-- 2 files changed, 214 insertions(+), 225 deletions(-) diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index 1bca84ced..46c521132 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -123,31 +123,50 @@ static guint text_cell_renderer_signals [LAST_SIGNAL]; #define GTK_CELL_RENDERER_TEXT_PATH "gtk-cell-renderer-text-path" -#define GTK_CELL_RENDERER_TEXT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_TYPE_CELL_RENDERER_TEXT, GtkCellRendererTextPrivate)) - -typedef struct _GtkCellRendererTextPrivate GtkCellRendererTextPrivate; -struct _GtkCellRendererTextPrivate +struct _GtkCellRendererTextPriv { - guint single_paragraph : 1; - guint language_set : 1; - guint markup_set : 1; - guint ellipsize_set : 1; - guint align_set : 1; - - gulong focus_out_id; - PangoLanguage *language; - PangoEllipsizeMode ellipsize; - PangoWrapMode wrap_mode; - PangoAlignment align; - - gulong populate_popup_id; - gulong entry_menu_popdown_timeout; + GtkWidget *entry; + + PangoAlignment align; + PangoAttrList *extra_attrs; + PangoColor foreground; + PangoColor background; + PangoEllipsizeMode ellipsize; + PangoFontDescription *font; + PangoLanguage *language; + PangoUnderline underline_style; + PangoWrapMode wrap_mode; + gboolean in_entry_menu; - + + gchar *text; + + gdouble font_scale; + + gint rise; + gint fixed_height_rows; gint width_chars; gint wrap_width; - - GtkWidget *entry; + + guint strikethrough : 1; + guint editable : 1; + guint scale_set : 1; + guint foreground_set : 1; + guint background_set : 1; + guint underline_set : 1; + guint rise_set : 1; + guint strikethrough_set : 1; + guint editable_set : 1; + guint calc_fixed_height : 1; + guint single_paragraph : 1; + guint language_set : 1; + guint markup_set : 1; + guint ellipsize_set : 1; + guint align_set : 1; + + gulong focus_out_id; + gulong populate_popup_id; + gulong entry_menu_popdown_timeout; }; G_DEFINE_TYPE (GtkCellRendererText, gtk_cell_renderer_text, GTK_TYPE_CELL_RENDERER) @@ -155,16 +174,19 @@ G_DEFINE_TYPE (GtkCellRendererText, gtk_cell_renderer_text, GTK_TYPE_CELL_RENDER static void gtk_cell_renderer_text_init (GtkCellRendererText *celltext) { - GtkCellRendererTextPrivate *priv; + GtkCellRendererTextPriv *priv; GtkCellRenderer *cell = GTK_CELL_RENDERER (celltext); - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (celltext); + celltext->priv = G_TYPE_INSTANCE_GET_PRIVATE (celltext, + GTK_TYPE_CELL_RENDERER_TEXT, + GtkCellRendererTextPriv); + priv = celltext->priv; gtk_cell_renderer_set_alignment (cell, 0.0, 0.5); gtk_cell_renderer_set_padding (cell, 2, 2); - celltext->font_scale = 1.0; - celltext->fixed_height_rows = -1; - celltext->font = pango_font_description_new (); + priv->font_scale = 1.0; + priv->fixed_height_rows = -1; + priv->font = pango_font_description_new (); priv->width_chars = -1; priv->wrap_width = -1; @@ -583,23 +605,21 @@ gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class) G_TYPE_STRING, G_TYPE_STRING); - g_type_class_add_private (object_class, sizeof (GtkCellRendererTextPrivate)); + g_type_class_add_private (object_class, sizeof (GtkCellRendererTextPriv)); } static void gtk_cell_renderer_text_finalize (GObject *object) { GtkCellRendererText *celltext = GTK_CELL_RENDERER_TEXT (object); - GtkCellRendererTextPrivate *priv; - - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (object); + GtkCellRendererTextPriv *priv = celltext->priv; - pango_font_description_free (celltext->font); + pango_font_description_free (priv->font); - g_free (celltext->text); + g_free (priv->text); - if (celltext->extra_attrs) - pango_attr_list_unref (celltext->extra_attrs); + if (priv->extra_attrs) + pango_attr_list_unref (priv->extra_attrs); if (priv->language) g_object_unref (priv->language); @@ -636,18 +656,16 @@ gtk_cell_renderer_text_get_property (GObject *object, GParamSpec *pspec) { GtkCellRendererText *celltext = GTK_CELL_RENDERER_TEXT (object); - GtkCellRendererTextPrivate *priv; - - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (object); + GtkCellRendererTextPriv *priv = celltext->priv; switch (param_id) { case PROP_TEXT: - g_value_set_string (value, celltext->text); + g_value_set_string (value, priv->text); break; case PROP_ATTRIBUTES: - g_value_set_boxed (value, celltext->extra_attrs); + g_value_set_boxed (value, priv->extra_attrs); break; case PROP_SINGLE_PARAGRAPH_MODE: @@ -658,9 +676,9 @@ gtk_cell_renderer_text_get_property (GObject *object, { GdkColor color; - color.red = celltext->background.red; - color.green = celltext->background.green; - color.blue = celltext->background.blue; + color.red = priv->background.red; + color.green = priv->background.green; + color.blue = priv->background.blue; g_value_set_boxed (value, &color); } @@ -670,68 +688,68 @@ gtk_cell_renderer_text_get_property (GObject *object, { GdkColor color; - color.red = celltext->foreground.red; - color.green = celltext->foreground.green; - color.blue = celltext->foreground.blue; + color.red = priv->foreground.red; + color.green = priv->foreground.green; + color.blue = priv->foreground.blue; g_value_set_boxed (value, &color); } break; case PROP_FONT: - g_value_take_string (value, pango_font_description_to_string (celltext->font)); + g_value_take_string (value, pango_font_description_to_string (priv->font)); break; case PROP_FONT_DESC: - g_value_set_boxed (value, celltext->font); + g_value_set_boxed (value, priv->font); break; case PROP_FAMILY: - g_value_set_string (value, pango_font_description_get_family (celltext->font)); + g_value_set_string (value, pango_font_description_get_family (priv->font)); break; case PROP_STYLE: - g_value_set_enum (value, pango_font_description_get_style (celltext->font)); + g_value_set_enum (value, pango_font_description_get_style (priv->font)); break; case PROP_VARIANT: - g_value_set_enum (value, pango_font_description_get_variant (celltext->font)); + g_value_set_enum (value, pango_font_description_get_variant (priv->font)); break; case PROP_WEIGHT: - g_value_set_int (value, pango_font_description_get_weight (celltext->font)); + g_value_set_int (value, pango_font_description_get_weight (priv->font)); break; case PROP_STRETCH: - g_value_set_enum (value, pango_font_description_get_stretch (celltext->font)); + g_value_set_enum (value, pango_font_description_get_stretch (priv->font)); break; case PROP_SIZE: - g_value_set_int (value, pango_font_description_get_size (celltext->font)); + g_value_set_int (value, pango_font_description_get_size (priv->font)); break; case PROP_SIZE_POINTS: - g_value_set_double (value, ((double)pango_font_description_get_size (celltext->font)) / (double)PANGO_SCALE); + g_value_set_double (value, ((double)pango_font_description_get_size (priv->font)) / (double)PANGO_SCALE); break; case PROP_SCALE: - g_value_set_double (value, celltext->font_scale); + g_value_set_double (value, priv->font_scale); break; case PROP_EDITABLE: - g_value_set_boolean (value, celltext->editable); + g_value_set_boolean (value, priv->editable); break; case PROP_STRIKETHROUGH: - g_value_set_boolean (value, celltext->strikethrough); + g_value_set_boolean (value, priv->strikethrough); break; case PROP_UNDERLINE: - g_value_set_enum (value, celltext->underline_style); + g_value_set_enum (value, priv->underline_style); break; case PROP_RISE: - g_value_set_int (value, celltext->rise); + g_value_set_int (value, priv->rise); break; case PROP_LANGUAGE: @@ -755,11 +773,11 @@ gtk_cell_renderer_text_get_property (GObject *object, break; case PROP_BACKGROUND_SET: - g_value_set_boolean (value, celltext->background_set); + g_value_set_boolean (value, priv->background_set); break; case PROP_FOREGROUND_SET: - g_value_set_boolean (value, celltext->foreground_set); + g_value_set_boolean (value, priv->foreground_set); break; case PROP_FAMILY_SET: @@ -770,29 +788,29 @@ gtk_cell_renderer_text_get_property (GObject *object, case PROP_SIZE_SET: { PangoFontMask mask = get_property_font_set_mask (param_id); - g_value_set_boolean (value, (pango_font_description_get_set_fields (celltext->font) & mask) != 0); + g_value_set_boolean (value, (pango_font_description_get_set_fields (priv->font) & mask) != 0); break; } case PROP_SCALE_SET: - g_value_set_boolean (value, celltext->scale_set); + g_value_set_boolean (value, priv->scale_set); break; case PROP_EDITABLE_SET: - g_value_set_boolean (value, celltext->editable_set); + g_value_set_boolean (value, priv->editable_set); break; case PROP_STRIKETHROUGH_SET: - g_value_set_boolean (value, celltext->strikethrough_set); + g_value_set_boolean (value, priv->strikethrough_set); break; case PROP_UNDERLINE_SET: - g_value_set_boolean (value, celltext->underline_set); + g_value_set_boolean (value, priv->underline_set); break; case PROP_RISE_SET: - g_value_set_boolean (value, celltext->rise_set); + g_value_set_boolean (value, priv->rise_set); break; case PROP_LANGUAGE_SET: @@ -825,23 +843,25 @@ static void set_bg_color (GtkCellRendererText *celltext, GdkColor *color) { + GtkCellRendererTextPriv *priv = celltext->priv; + if (color) { - if (!celltext->background_set) + if (!priv->background_set) { - celltext->background_set = TRUE; + priv->background_set = TRUE; g_object_notify (G_OBJECT (celltext), "background-set"); } - celltext->background.red = color->red; - celltext->background.green = color->green; - celltext->background.blue = color->blue; + priv->background.red = color->red; + priv->background.green = color->green; + priv->background.blue = color->blue; } else { - if (celltext->background_set) + if (priv->background_set) { - celltext->background_set = FALSE; + priv->background_set = FALSE; g_object_notify (G_OBJECT (celltext), "background-set"); } } @@ -852,23 +872,25 @@ static void set_fg_color (GtkCellRendererText *celltext, GdkColor *color) { + GtkCellRendererTextPriv *priv = celltext->priv; + if (color) { - if (!celltext->foreground_set) + if (!priv->foreground_set) { - celltext->foreground_set = TRUE; + priv->foreground_set = TRUE; g_object_notify (G_OBJECT (celltext), "foreground-set"); } - celltext->foreground.red = color->red; - celltext->foreground.green = color->green; - celltext->foreground.blue = color->blue; + priv->foreground.red = color->red; + priv->foreground.green = color->green; + priv->foreground.blue = color->blue; } else { - if (celltext->foreground_set) + if (priv->foreground_set) { - celltext->foreground_set = FALSE; + priv->foreground_set = FALSE; g_object_notify (G_OBJECT (celltext), "foreground-set"); } } @@ -954,6 +976,7 @@ static void set_font_description (GtkCellRendererText *celltext, PangoFontDescription *font_desc) { + GtkCellRendererTextPriv *priv = celltext->priv; GObject *object = G_OBJECT (celltext); PangoFontDescription *new_font_desc; PangoFontMask old_mask, new_mask, changed_mask, set_changed_mask; @@ -963,14 +986,14 @@ set_font_description (GtkCellRendererText *celltext, else new_font_desc = pango_font_description_new (); - old_mask = pango_font_description_get_set_fields (celltext->font); + old_mask = pango_font_description_get_set_fields (priv->font); new_mask = pango_font_description_get_set_fields (new_font_desc); changed_mask = old_mask | new_mask; set_changed_mask = old_mask ^ new_mask; - pango_font_description_free (celltext->font); - celltext->font = new_font_desc; + pango_font_description_free (priv->font); + priv->font = new_font_desc; g_object_freeze_notify (object); @@ -1005,34 +1028,32 @@ gtk_cell_renderer_text_set_property (GObject *object, GParamSpec *pspec) { GtkCellRendererText *celltext = GTK_CELL_RENDERER_TEXT (object); - GtkCellRendererTextPrivate *priv; - - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (object); + GtkCellRendererTextPriv *priv = celltext->priv; switch (param_id) { case PROP_TEXT: - g_free (celltext->text); + g_free (priv->text); if (priv->markup_set) { - if (celltext->extra_attrs) - pango_attr_list_unref (celltext->extra_attrs); - celltext->extra_attrs = NULL; + if (priv->extra_attrs) + pango_attr_list_unref (priv->extra_attrs); + priv->extra_attrs = NULL; priv->markup_set = FALSE; } - celltext->text = g_value_dup_string (value); + priv->text = g_value_dup_string (value); g_object_notify (object, "text"); break; case PROP_ATTRIBUTES: - if (celltext->extra_attrs) - pango_attr_list_unref (celltext->extra_attrs); + if (priv->extra_attrs) + pango_attr_list_unref (priv->extra_attrs); - celltext->extra_attrs = g_value_get_boxed (value); - if (celltext->extra_attrs) - pango_attr_list_ref (celltext->extra_attrs); + priv->extra_attrs = g_value_get_boxed (value); + if (priv->extra_attrs) + pango_attr_list_ref (priv->extra_attrs); break; case PROP_MARKUP: { @@ -1056,13 +1077,13 @@ gtk_cell_renderer_text_set_property (GObject *object, return; } - g_free (celltext->text); + g_free (priv->text); - if (celltext->extra_attrs) - pango_attr_list_unref (celltext->extra_attrs); + if (priv->extra_attrs) + pango_attr_list_unref (priv->extra_attrs); - celltext->text = text; - celltext->extra_attrs = attrs; + priv->text = text; + priv->extra_attrs = attrs; priv->markup_set = TRUE; } break; @@ -1125,16 +1146,16 @@ gtk_cell_renderer_text_set_property (GObject *object, pango_font_description_free (font_desc); - if (celltext->fixed_height_rows != -1) - celltext->calc_fixed_height = TRUE; + if (priv->fixed_height_rows != -1) + priv->calc_fixed_height = TRUE; } break; case PROP_FONT_DESC: set_font_description (celltext, g_value_get_boxed (value)); - if (celltext->fixed_height_rows != -1) - celltext->calc_fixed_height = TRUE; + if (priv->fixed_height_rows != -1) + priv->calc_fixed_height = TRUE; break; case PROP_FAMILY: @@ -1145,46 +1166,46 @@ gtk_cell_renderer_text_set_property (GObject *object, case PROP_SIZE: case PROP_SIZE_POINTS: { - PangoFontMask old_set_mask = pango_font_description_get_set_fields (celltext->font); + PangoFontMask old_set_mask = pango_font_description_get_set_fields (priv->font); switch (param_id) { case PROP_FAMILY: - pango_font_description_set_family (celltext->font, + pango_font_description_set_family (priv->font, g_value_get_string (value)); break; case PROP_STYLE: - pango_font_description_set_style (celltext->font, + pango_font_description_set_style (priv->font, g_value_get_enum (value)); break; case PROP_VARIANT: - pango_font_description_set_variant (celltext->font, + pango_font_description_set_variant (priv->font, g_value_get_enum (value)); break; case PROP_WEIGHT: - pango_font_description_set_weight (celltext->font, + pango_font_description_set_weight (priv->font, g_value_get_int (value)); break; case PROP_STRETCH: - pango_font_description_set_stretch (celltext->font, + pango_font_description_set_stretch (priv->font, g_value_get_enum (value)); break; case PROP_SIZE: - pango_font_description_set_size (celltext->font, + pango_font_description_set_size (priv->font, g_value_get_int (value)); g_object_notify (object, "size-points"); break; case PROP_SIZE_POINTS: - pango_font_description_set_size (celltext->font, + pango_font_description_set_size (priv->font, g_value_get_double (value) * PANGO_SCALE); g_object_notify (object, "size"); break; } - if (celltext->fixed_height_rows != -1) - celltext->calc_fixed_height = TRUE; + if (priv->fixed_height_rows != -1) + priv->calc_fixed_height = TRUE; - notify_set_changed (object, old_set_mask & pango_font_description_get_set_fields (celltext->font)); + notify_set_changed (object, old_set_mask & pango_font_description_get_set_fields (priv->font)); g_object_notify (object, "font-desc"); g_object_notify (object, "font"); @@ -1192,17 +1213,17 @@ gtk_cell_renderer_text_set_property (GObject *object, } case PROP_SCALE: - celltext->font_scale = g_value_get_double (value); - celltext->scale_set = TRUE; - if (celltext->fixed_height_rows != -1) - celltext->calc_fixed_height = TRUE; + priv->font_scale = g_value_get_double (value); + priv->scale_set = TRUE; + if (priv->fixed_height_rows != -1) + priv->calc_fixed_height = TRUE; g_object_notify (object, "scale-set"); break; case PROP_EDITABLE: - celltext->editable = g_value_get_boolean (value); - celltext->editable_set = TRUE; - if (celltext->editable) + priv->editable = g_value_get_boolean (value); + priv->editable_set = TRUE; + if (priv->editable) g_object_set (celltext, "mode", GTK_CELL_RENDERER_MODE_EDITABLE, NULL); else g_object_set (celltext, "mode", GTK_CELL_RENDERER_MODE_INERT, NULL); @@ -1210,24 +1231,24 @@ gtk_cell_renderer_text_set_property (GObject *object, break; case PROP_STRIKETHROUGH: - celltext->strikethrough = g_value_get_boolean (value); - celltext->strikethrough_set = TRUE; + priv->strikethrough = g_value_get_boolean (value); + priv->strikethrough_set = TRUE; g_object_notify (object, "strikethrough-set"); break; case PROP_UNDERLINE: - celltext->underline_style = g_value_get_enum (value); - celltext->underline_set = TRUE; + priv->underline_style = g_value_get_enum (value); + priv->underline_set = TRUE; g_object_notify (object, "underline-set"); break; case PROP_RISE: - celltext->rise = g_value_get_int (value); - celltext->rise_set = TRUE; + priv->rise = g_value_get_int (value); + priv->rise_set = TRUE; g_object_notify (object, "rise-set"); - if (celltext->fixed_height_rows != -1) - celltext->calc_fixed_height = TRUE; + if (priv->fixed_height_rows != -1) + priv->calc_fixed_height = TRUE; break; case PROP_LANGUAGE: @@ -1263,11 +1284,11 @@ gtk_cell_renderer_text_set_property (GObject *object, break; case PROP_BACKGROUND_SET: - celltext->background_set = g_value_get_boolean (value); + priv->background_set = g_value_get_boolean (value); break; case PROP_FOREGROUND_SET: - celltext->foreground_set = g_value_get_boolean (value); + priv->foreground_set = g_value_get_boolean (value); break; case PROP_FAMILY_SET: @@ -1278,37 +1299,37 @@ gtk_cell_renderer_text_set_property (GObject *object, case PROP_SIZE_SET: if (!g_value_get_boolean (value)) { - pango_font_description_unset_fields (celltext->font, + pango_font_description_unset_fields (priv->font, get_property_font_set_mask (param_id)); } else { PangoFontMask changed_mask; - changed_mask = set_font_desc_fields (celltext->font, + changed_mask = set_font_desc_fields (priv->font, get_property_font_set_mask (param_id)); notify_fields_changed (G_OBJECT (celltext), changed_mask); } break; case PROP_SCALE_SET: - celltext->scale_set = g_value_get_boolean (value); + priv->scale_set = g_value_get_boolean (value); break; case PROP_EDITABLE_SET: - celltext->editable_set = g_value_get_boolean (value); + priv->editable_set = g_value_get_boolean (value); break; case PROP_STRIKETHROUGH_SET: - celltext->strikethrough_set = g_value_get_boolean (value); + priv->strikethrough_set = g_value_get_boolean (value); break; case PROP_UNDERLINE_SET: - celltext->underline_set = g_value_get_boolean (value); + priv->underline_set = g_value_get_boolean (value); break; case PROP_RISE_SET: - celltext->rise_set = g_value_get_boolean (value); + priv->rise_set = g_value_get_boolean (value); break; case PROP_LANGUAGE_SET: @@ -1364,17 +1385,15 @@ get_layout (GtkCellRendererText *celltext, gboolean will_render, GtkCellRendererState flags) { + GtkCellRendererTextPriv *priv = celltext->priv; PangoAttrList *attr_list; PangoLayout *layout; PangoUnderline uline; - GtkCellRendererTextPrivate *priv; - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (celltext); - - layout = gtk_widget_create_pango_layout (widget, celltext->text); + layout = gtk_widget_create_pango_layout (widget, priv->text); - if (celltext->extra_attrs) - attr_list = pango_attr_list_copy (celltext->extra_attrs); + if (priv->extra_attrs) + attr_list = pango_attr_list_copy (priv->extra_attrs); else attr_list = pango_attr_list_new (); @@ -1388,30 +1407,30 @@ get_layout (GtkCellRendererText *celltext, * background_area not the PangoLayout area */ - if (celltext->foreground_set + if (priv->foreground_set && (flags & GTK_CELL_RENDERER_SELECTED) == 0) { PangoColor color; - color = celltext->foreground; + color = priv->foreground; add_attr (attr_list, pango_attr_foreground_new (color.red, color.green, color.blue)); } - if (celltext->strikethrough_set) + if (priv->strikethrough_set) add_attr (attr_list, - pango_attr_strikethrough_new (celltext->strikethrough)); + pango_attr_strikethrough_new (priv->strikethrough)); } - add_attr (attr_list, pango_attr_font_desc_new (celltext->font)); + add_attr (attr_list, pango_attr_font_desc_new (priv->font)); - if (celltext->scale_set && - celltext->font_scale != 1.0) - add_attr (attr_list, pango_attr_scale_new (celltext->font_scale)); + if (priv->scale_set && + priv->font_scale != 1.0) + add_attr (attr_list, pango_attr_scale_new (priv->font_scale)); - if (celltext->underline_set) - uline = celltext->underline_style; + if (priv->underline_set) + uline = priv->underline_style; else uline = PANGO_UNDERLINE_NONE; @@ -1436,10 +1455,10 @@ get_layout (GtkCellRendererText *celltext, } if (uline != PANGO_UNDERLINE_NONE) - add_attr (attr_list, pango_attr_underline_new (celltext->underline_style)); + add_attr (attr_list, pango_attr_underline_new (priv->underline_style)); - if (celltext->rise_set) - add_attr (attr_list, pango_attr_rise_new (celltext->rise)); + if (priv->rise_set) + add_attr (attr_list, pango_attr_rise_new (priv->rise)); if (priv->ellipsize_set) pango_layout_set_ellipsize (layout, priv->ellipsize); @@ -1488,17 +1507,15 @@ get_size (GtkCellRenderer *cell, gint *width, gint *height) { - GtkCellRendererText *celltext = (GtkCellRendererText *) cell; + GtkCellRendererText *celltext = GTK_CELL_RENDERER_TEXT (cell); + GtkCellRendererTextPriv *priv = celltext->priv; PangoRectangle rect; - GtkCellRendererTextPrivate *priv; gint xpad, ypad; gint cell_width, cell_height; - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (cell); - gtk_cell_renderer_get_padding (cell, &xpad, &ypad); - if (celltext->calc_fixed_height) + if (priv->calc_fixed_height) { PangoContext *context; PangoFontMetrics *metrics; @@ -1506,11 +1523,11 @@ get_size (GtkCellRenderer *cell, gint row_height; font_desc = pango_font_description_copy_static (widget->style->font_desc); - pango_font_description_merge_static (font_desc, celltext->font, TRUE); + pango_font_description_merge_static (font_desc, priv->font, TRUE); - if (celltext->scale_set) + if (priv->scale_set) pango_font_description_set_size (font_desc, - celltext->font_scale * pango_font_description_get_size (font_desc)); + priv->font_scale * pango_font_description_get_size (font_desc)); context = gtk_widget_get_pango_context (widget); @@ -1527,14 +1544,14 @@ get_size (GtkCellRenderer *cell, gtk_cell_renderer_set_fixed_size (cell, cell_width, 2 * ypad + - celltext->fixed_height_rows * PANGO_PIXELS (row_height)); + priv->fixed_height_rows * PANGO_PIXELS (row_height)); if (height) { *height = cell_height; height = NULL; } - celltext->calc_fixed_height = FALSE; + priv->calc_fixed_height = FALSE; if (width == NULL) return; } @@ -1627,15 +1644,13 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell, GtkCellRendererState flags) { - GtkCellRendererText *celltext = (GtkCellRendererText *) cell; + GtkCellRendererText *celltext = GTK_CELL_RENDERER_TEXT (cell); + GtkCellRendererTextPriv *priv = celltext->priv; PangoLayout *layout; GtkStateType state; gint x_offset; gint y_offset; gint xpad, ypad; - GtkCellRendererTextPrivate *priv; - - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (cell); layout = get_layout (celltext, widget, TRUE, flags); get_size (cell, widget, cell_area, layout, &x_offset, &y_offset, NULL, NULL); @@ -1664,7 +1679,7 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell, state = GTK_STATE_NORMAL; } - if (celltext->background_set && + if (priv->background_set && (flags & GTK_CELL_RENDERER_SELECTED) == 0) { cairo_t *cr = gdk_cairo_create (window); @@ -1677,9 +1692,9 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell, gdk_cairo_rectangle (cr, background_area); cairo_set_source_rgb (cr, - celltext->background.red / 65535., - celltext->background.green / 65535., - celltext->background.blue / 65535.); + priv->background.red / 65535., + priv->background.green / 65535., + priv->background.blue / 65535.); cairo_fill (cr); cairo_destroy (cr); @@ -1711,12 +1726,12 @@ static void gtk_cell_renderer_text_editing_done (GtkCellEditable *entry, gpointer data) { + GtkCellRendererTextPriv *priv; const gchar *path; const gchar *new_text; gboolean canceled; - GtkCellRendererTextPrivate *priv; - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (data); + priv = GTK_CELL_RENDERER_TEXT (data)->priv; priv->entry = NULL; @@ -1755,9 +1770,9 @@ gtk_cell_renderer_text_editing_done (GtkCellEditable *entry, static gboolean popdown_timeout (gpointer data) { - GtkCellRendererTextPrivate *priv; + GtkCellRendererTextPriv *priv; - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (data); + priv = GTK_CELL_RENDERER_TEXT (data)->priv; priv->entry_menu_popdown_timeout = 0; @@ -1771,9 +1786,9 @@ static void gtk_cell_renderer_text_popup_unmap (GtkMenu *menu, gpointer data) { - GtkCellRendererTextPrivate *priv; + GtkCellRendererTextPriv *priv; - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (data); + priv = GTK_CELL_RENDERER_TEXT (data)->priv; priv->in_entry_menu = FALSE; @@ -1789,9 +1804,9 @@ gtk_cell_renderer_text_populate_popup (GtkEntry *entry, GtkMenu *menu, gpointer data) { - GtkCellRendererTextPrivate *priv; + GtkCellRendererTextPriv *priv; - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (data); + priv = GTK_CELL_RENDERER_TEXT (data)->priv; if (priv->entry_menu_popdown_timeout) { @@ -1810,9 +1825,9 @@ gtk_cell_renderer_text_focus_out_event (GtkWidget *entry, GdkEvent *event, gpointer data) { - GtkCellRendererTextPrivate *priv; + GtkCellRendererTextPriv *priv; - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (data); + priv = GTK_CELL_RENDERER_TEXT (data)->priv; if (priv->in_entry_menu) return FALSE; @@ -1838,14 +1853,14 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell, { GtkRequisition requisition; GtkCellRendererText *celltext; - GtkCellRendererTextPrivate *priv; + GtkCellRendererTextPriv *priv; gfloat xalign, yalign; celltext = GTK_CELL_RENDERER_TEXT (cell); - priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (cell); + priv = celltext->priv; /* If the cell isn't editable we return NULL. */ - if (celltext->editable == FALSE) + if (priv->editable == FALSE) return NULL; gtk_cell_renderer_get_alignment (cell, &xalign, &yalign); @@ -1854,8 +1869,8 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell, gtk_entry_set_has_frame (GTK_ENTRY (priv->entry), FALSE); gtk_entry_set_alignment (GTK_ENTRY (priv->entry), xalign); - if (celltext->text) - gtk_entry_set_text (GTK_ENTRY (priv->entry), celltext->text); + if (priv->text) + gtk_entry_set_text (GTK_ENTRY (priv->entry), priv->text); g_object_set_data_full (G_OBJECT (priv->entry), I_(GTK_CELL_RENDERER_TEXT_PATH), g_strdup (path), g_free); gtk_editable_select_region (GTK_EDITABLE (priv->entry), 0, -1); @@ -1928,12 +1943,14 @@ void gtk_cell_renderer_text_set_fixed_height_from_font (GtkCellRendererText *renderer, gint number_of_rows) { + GtkCellRendererTextPriv *priv; GtkCellRenderer *cell; g_return_if_fail (GTK_IS_CELL_RENDERER_TEXT (renderer)); g_return_if_fail (number_of_rows == -1 || number_of_rows > 0); cell = GTK_CELL_RENDERER (renderer); + priv = renderer->priv; if (number_of_rows == -1) { @@ -1944,7 +1961,7 @@ gtk_cell_renderer_text_set_fixed_height_from_font (GtkCellRendererText *renderer } else { - renderer->fixed_height_rows = number_of_rows; - renderer->calc_fixed_height = TRUE; + priv->fixed_height_rows = number_of_rows; + priv->calc_fixed_height = TRUE; } } diff --git a/gtk/gtkcellrenderertext.h b/gtk/gtkcellrenderertext.h index 5397927e1..c9f8e6349 100644 --- a/gtk/gtkcellrenderertext.h +++ b/gtk/gtkcellrenderertext.h @@ -39,6 +39,7 @@ G_BEGIN_DECLS #define GTK_CELL_RENDERER_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CELL_RENDERER_TEXT, GtkCellRendererTextClass)) typedef struct _GtkCellRendererText GtkCellRendererText; +typedef struct _GtkCellRendererTextPriv GtkCellRendererTextPriv; typedef struct _GtkCellRendererTextClass GtkCellRendererTextClass; struct _GtkCellRendererText @@ -46,36 +47,7 @@ struct _GtkCellRendererText GtkCellRenderer parent; /*< private >*/ - gchar *GSEAL (text); - PangoFontDescription *GSEAL (font); - gdouble GSEAL (font_scale); - PangoColor GSEAL (foreground); - PangoColor GSEAL (background); - - PangoAttrList *GSEAL (extra_attrs); - - PangoUnderline GSEAL (underline_style); - - gint GSEAL (rise); - gint GSEAL (fixed_height_rows); - - guint GSEAL (strikethrough) : 1; - - guint GSEAL (editable) : 1; - - guint GSEAL (scale_set) : 1; - - guint GSEAL (foreground_set) : 1; - guint GSEAL (background_set) : 1; - - guint GSEAL (underline_set) : 1; - - guint GSEAL (rise_set) : 1; - - guint GSEAL (strikethrough_set) : 1; - - guint GSEAL (editable_set) : 1; - guint GSEAL (calc_fixed_height) : 1; + GtkCellRendererTextPriv *priv; }; struct _GtkCellRendererTextClass -- 2.43.2