summaryrefslogtreecommitdiff
path: root/gtk/gtkstyleproperties.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-12-28 22:05:35 +0100
committerBenjamin Otte <otte@redhat.com>2012-01-09 18:37:49 +0100
commit38a9b28a0edfdf8fd6749815bfc3c8edf457e3ec (patch)
tree6766b5cab944d68b6125e6232de44a1005581540 /gtk/gtkstyleproperties.c
parentc048aac1d91f2a4ae9c229eafc6268ead4025027 (diff)
downloadgtk+-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.c21
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;