forked from AuroraMiddleware/gtk
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:
parent
c048aac1d9
commit
38a9b28a0e
@ -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;
|
||||
|
||||
|
@ -30,6 +30,9 @@ void _gtk_style_properties_get (GtkStylePropertie
|
||||
GtkStateFlags state,
|
||||
GtkStylePropertyContext *context,
|
||||
...);
|
||||
void _gtk_style_properties_set_color_lookup_func (GtkStyleProperties *props,
|
||||
GtkSymbolicColorLookupFunc func,
|
||||
gpointer data);
|
||||
void _gtk_style_properties_get_valist (GtkStyleProperties *props,
|
||||
GtkStateFlags state,
|
||||
GtkStylePropertyContext *context,
|
||||
|
Loading…
Reference in New Issue
Block a user