diff options
author | Benjamin Otte <otte@redhat.com> | 2012-03-26 17:24:02 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-04-17 08:59:11 +0200 |
commit | 9b7640b898c61eb4ff49140880f2bb2b70eb9f0b (patch) | |
tree | 8549d2c0d73a7a70859210283ade4802e4d2f41e /gtk/gtkcssinheritvalue.c | |
parent | 718ceaec450947b77a52318647a972591d183b5c (diff) | |
download | gtk+-9b7640b898c61eb4ff49140880f2bb2b70eb9f0b.tar.gz |
styleproperty: Make _gtk_style_property_parse_value() return a CssValue
Also split out initial/inherit handling into a custom GtkCssValue class.
Diffstat (limited to 'gtk/gtkcssinheritvalue.c')
-rw-r--r-- | gtk/gtkcssinheritvalue.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/gtk/gtkcssinheritvalue.c b/gtk/gtkcssinheritvalue.c new file mode 100644 index 0000000000..99405bbb87 --- /dev/null +++ b/gtk/gtkcssinheritvalue.c @@ -0,0 +1,59 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2011 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "config.h" + +#include "gtkcssinheritvalueprivate.h" + +struct _GtkCssValue { + GTK_CSS_VALUE_BASE +}; + +static void +gtk_css_value_inherit_free (GtkCssValue *value) +{ + /* Can only happen if the unique value gets unreffed too often */ + g_assert_not_reached (); +} + +static void +gtk_css_value_inherit_print (const GtkCssValue *value, + GString *string) +{ + g_string_append (string, "inherit"); +} + +static const GtkCssValueClass GTK_CSS_VALUE_INHERIT = { + gtk_css_value_inherit_free, + gtk_css_value_inherit_print +}; + +static GtkCssValue inherit = { >K_CSS_VALUE_INHERIT, 1 }; + +GtkCssValue * +_gtk_css_inherit_value_new (void) +{ + return _gtk_css_value_ref (&inherit); +} + +gboolean +_gtk_css_value_is_inherit (const GtkCssValue *value) +{ + g_return_val_if_fail (value != NULL, FALSE); + + return value == &inherit; +} |