diff options
author | Benjamin Otte <otte@redhat.com> | 2014-05-11 04:00:55 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2014-05-11 04:00:55 +0200 |
commit | 2dc100fa7624bb7ab90a4fb156dabfba564ab0ec (patch) | |
tree | 586f6512688e4e3798c9d96010407d9c1c8f88ad /gtk/gtkcssunsetvalue.c | |
parent | 0e462f0d2d03631a2ad7d38ef7dfc4292de5f9c7 (diff) | |
download | gtk+-2dc100fa7624bb7ab90a4fb156dabfba564ab0ec.tar.gz |
css: Add forgotten files
Forgot to add those files in 3a72e2fb2483d4dd26eb74319613ffb505d89128
Diffstat (limited to 'gtk/gtkcssunsetvalue.c')
-rw-r--r-- | gtk/gtkcssunsetvalue.c | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/gtk/gtkcssunsetvalue.c b/gtk/gtkcssunsetvalue.c new file mode 100644 index 0000000000..dda5c73a7e --- /dev/null +++ b/gtk/gtkcssunsetvalue.c @@ -0,0 +1,102 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2014 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 "gtkcssunsetvalueprivate.h" + +#include "gtkcssinheritvalueprivate.h" +#include "gtkcssinitialvalueprivate.h" +#include "gtkcssstylepropertyprivate.h" + +struct _GtkCssValue { + GTK_CSS_VALUE_BASE +}; + +static void +gtk_css_value_unset_free (GtkCssValue *value) +{ + /* Can only happen if the unique value gets unreffed too often */ + g_assert_not_reached (); +} + +static GtkCssValue * +gtk_css_value_unset_compute (GtkCssValue *value, + guint property_id, + GtkStyleProviderPrivate *provider, + int scale, + GtkCssComputedValues *values, + GtkCssComputedValues *parent_values, + GtkCssDependencies *dependencies) +{ + GtkCssStyleProperty *property; + GtkCssValue *unset_value; + + property = _gtk_css_style_property_lookup_by_id (property_id); + + if (_gtk_css_style_property_is_inherit (property)) + unset_value = _gtk_css_inherit_value_get (); + else + unset_value = _gtk_css_initial_value_get (); + + return _gtk_css_value_compute (unset_value, + property_id, + provider, + scale, + values, + parent_values, + dependencies); +} + +static gboolean +gtk_css_value_unset_equal (const GtkCssValue *value1, + const GtkCssValue *value2) +{ + return TRUE; +} + +static GtkCssValue * +gtk_css_value_unset_transition (GtkCssValue *start, + GtkCssValue *end, + guint property_id, + double progress) +{ + return NULL; +} + +static void +gtk_css_value_unset_print (const GtkCssValue *value, + GString *string) +{ + g_string_append (string, "unset"); +} + +static const GtkCssValueClass GTK_CSS_VALUE_UNSET = { + gtk_css_value_unset_free, + gtk_css_value_unset_compute, + gtk_css_value_unset_equal, + gtk_css_value_unset_transition, + gtk_css_value_unset_print +}; + +static GtkCssValue unset = { >K_CSS_VALUE_UNSET, 1 }; + +GtkCssValue * +_gtk_css_unset_value_new (void) +{ + return _gtk_css_value_ref (&unset); +} |