styleproperties: Add a hacky function to redirect color lookups

This will soon be necessary.
FIXME: Make sure this gets removed again.
This commit is contained in:
Benjamin Otte 2011-12-28 22:05:35 +01:00
parent c048aac1d9
commit 38a9b28a0e
2 changed files with 24 additions and 0 deletions

View File

@ -379,6 +379,23 @@ gtk_style_properties_new (void)
return g_object_new (GTK_TYPE_STYLE_PROPERTIES, NULL); 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: * gtk_style_properties_map_color:
* @props: a #GtkStyleProperties * @props: a #GtkStyleProperties
@ -402,6 +419,7 @@ gtk_style_properties_map_color (GtkStyleProperties *props,
g_return_if_fail (color != NULL); g_return_if_fail (color != NULL);
priv = props->priv; priv = props->priv;
g_return_if_fail (priv->color_lookup_func == NULL);
if (G_UNLIKELY (!priv->color_map)) if (G_UNLIKELY (!priv->color_map))
priv->color_map = g_hash_table_new_full (g_str_hash, 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; priv = props->priv;
if (priv->color_lookup_func)
return priv->color_lookup_func (priv->color_lookup_data, name);
if (!priv->color_map) if (!priv->color_map)
return NULL; return NULL;

View File

@ -30,6 +30,9 @@ void _gtk_style_properties_get (GtkStylePropertie
GtkStateFlags state, GtkStateFlags state,
GtkStylePropertyContext *context, GtkStylePropertyContext *context,
...); ...);
void _gtk_style_properties_set_color_lookup_func (GtkStyleProperties *props,
GtkSymbolicColorLookupFunc func,
gpointer data);
void _gtk_style_properties_get_valist (GtkStyleProperties *props, void _gtk_style_properties_get_valist (GtkStyleProperties *props,
GtkStateFlags state, GtkStateFlags state,
GtkStylePropertyContext *context, GtkStylePropertyContext *context,