From 9b7640b898c61eb4ff49140880f2bb2b70eb9f0b Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 26 Mar 2012 17:24:02 +0200 Subject: styleproperty: Make _gtk_style_property_parse_value() return a CssValue Also split out initial/inherit handling into a custom GtkCssValue class. --- gtk/gtkcssinheritvalue.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 gtk/gtkcssinheritvalue.c (limited to 'gtk/gtkcssinheritvalue.c') 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 . + */ + +#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; +} -- cgit v1.2.1