diff options
author | Benjamin Otte <otte@redhat.com> | 2011-12-28 22:05:35 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-01-09 18:37:49 +0100 |
commit | 38a9b28a0edfdf8fd6749815bfc3c8edf457e3ec (patch) | |
tree | 6766b5cab944d68b6125e6232de44a1005581540 /gtk/gtkstyleproperties.c | |
parent | c048aac1d91f2a4ae9c229eafc6268ead4025027 (diff) | |
download | gtk+-38a9b28a0edfdf8fd6749815bfc3c8edf457e3ec.tar.gz |
styleproperties: Add a hacky function to redirect color lookups
This will soon be necessary.
FIXME: Make sure this gets removed again.
Diffstat (limited to 'gtk/gtkstyleproperties.c')
-rw-r--r-- | gtk/gtkstyleproperties.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gtk/gtkstyleproperties.c b/gtk/gtkstyleproperties.c index 906ded776b..5470bf5829 100644 --- a/gtk/gtkstyleproperties.c +++ b/gtk/gtkstyleproperties.c @@ -379,6 +379,23 @@ gtk_style_properties_new (void) return g_object_new (GTK_TYPE_STYLE_PROPERTIES, NULL); } +void +_gtk_style_properties_set_color_lookup_func (GtkStyleProperties *props, + GtkSymbolicColorLookupFunc func, + gpointer data) +{ + GtkStylePropertiesPrivate *priv; + + g_return_if_fail (GTK_IS_STYLE_PROPERTIES (props)); + g_return_if_fail (func != NULL); + + priv = props->priv; + g_return_if_fail (priv->color_map == NULL); + + priv->color_lookup_func = func; + priv->color_lookup_data = data; +} + /** * gtk_style_properties_map_color: * @props: a #GtkStyleProperties @@ -402,6 +419,7 @@ gtk_style_properties_map_color (GtkStyleProperties *props, g_return_if_fail (color != NULL); priv = props->priv; + g_return_if_fail (priv->color_lookup_func == NULL); if (G_UNLIKELY (!priv->color_map)) priv->color_map = g_hash_table_new_full (g_str_hash, @@ -437,6 +455,9 @@ gtk_style_properties_lookup_color (GtkStyleProperties *props, priv = props->priv; + if (priv->color_lookup_func) + return priv->color_lookup_func (priv->color_lookup_data, name); + if (!priv->color_map) return NULL; |