diff options
author | Benjamin Otte <otte@redhat.com> | 2012-01-02 00:45:29 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-01-09 18:37:53 +0100 |
commit | e876d9fed586d6486894b3c6652a07a47557f20e (patch) | |
tree | d440509544f645e7290b8fe850571c24d4f0ab12 /gtk/gtkstyleproperty.c | |
parent | 4821e52cf2ce967e024d37a9f329008a8ed46658 (diff) | |
download | gtk+-e876d9fed586d6486894b3c6652a07a47557f20e.tar.gz |
styleproperty: Make parse_value() a vfunc
Diffstat (limited to 'gtk/gtkstyleproperty.c')
-rw-r--r-- | gtk/gtkstyleproperty.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gtk/gtkstyleproperty.c b/gtk/gtkstyleproperty.c index de852ea3e3..080e3abff4 100644 --- a/gtk/gtkstyleproperty.c +++ b/gtk/gtkstyleproperty.c @@ -119,6 +119,12 @@ gtk_style_property_get_property (GObject *object, } } +static gboolean +gtk_style_property_real_parse_value (GtkStyleProperty *property, + GValue *value, + GtkCssParser *parser, + GFile *base); + static void _gtk_style_property_class_init (GtkStylePropertyClass *klass) { @@ -143,6 +149,8 @@ _gtk_style_property_class_init (GtkStylePropertyClass *klass) G_TYPE_NONE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + klass->parse_value = gtk_style_property_real_parse_value; + klass->properties = g_hash_table_new (g_str_hash, g_str_equal); } @@ -385,10 +393,23 @@ _gtk_style_property_parse_value (GtkStyleProperty *property, GtkCssParser *parser, GFile *base) { + GtkStylePropertyClass *klass; + g_return_val_if_fail (GTK_IS_STYLE_PROPERTY (property), FALSE); g_return_val_if_fail (value != NULL, FALSE); g_return_val_if_fail (parser != NULL, FALSE); + klass = GTK_STYLE_PROPERTY_GET_CLASS (property); + + return klass->parse_value (property, value, parser, base); +} + +static gboolean +gtk_style_property_real_parse_value (GtkStyleProperty *property, + GValue *value, + GtkCssParser *parser, + GFile *base) +{ if (_gtk_css_parser_try (parser, "initial", TRUE)) { /* the initial value can be explicitly specified with the |