summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkcsstypesprivate.h1
-rw-r--r--gtk/gtkstylecontext.c20
-rw-r--r--gtk/gtkstyleproviderprivate.c4
-rw-r--r--gtk/gtkstyleproviderprivate.h2
-rw-r--r--gtk/gtksymboliccolor.c37
-rw-r--r--gtk/gtksymboliccolorprivate.h5
6 files changed, 23 insertions, 46 deletions
diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h
index 958485f13e..91c259ce41 100644
--- a/gtk/gtkcsstypesprivate.h
+++ b/gtk/gtkcsstypesprivate.h
@@ -25,6 +25,7 @@ G_BEGIN_DECLS
/* forward declaration for GtkCssValue */
typedef struct _GtkCssComputedValues GtkCssComputedValues;
+typedef struct _GtkStyleProviderPrivate GtkStyleProviderPrivate; /* dummy typedef */
typedef enum { /*< skip >*/
GTK_CSS_CHANGE_CLASS = (1 << 0),
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index f4606f1304..99b2091741 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -399,9 +399,6 @@ static void gtk_style_context_impl_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec);
-static GtkSymbolicColor *
- gtk_style_context_color_lookup_func (gpointer contextp,
- const char *name);
static StyleData *style_data_lookup (GtkStyleContext *context);
@@ -2708,15 +2705,6 @@ gtk_style_context_get_junction_sides (GtkStyleContext *context)
return context->priv->info->junction_sides;
}
-static GtkSymbolicColor *
-gtk_style_context_color_lookup_func (gpointer contextp,
- const char *name)
-{
- GtkStyleContext *context = contextp;
-
- return _gtk_style_provider_private_get_color (GTK_STYLE_PROVIDER_PRIVATE (context->priv->cascade), name);
-}
-
GtkCssValue *
_gtk_style_context_resolve_color_value (GtkStyleContext *context,
GtkCssValue *current,
@@ -2729,10 +2717,9 @@ _gtk_style_context_resolve_color_value (GtkStyleContext *context,
g_return_val_if_fail (color != NULL, FALSE);
return _gtk_symbolic_color_resolve_full ((GtkSymbolicColor *) color,
+ GTK_STYLE_PROVIDER_PRIVATE (context->priv->cascade),
current,
current_deps,
- gtk_style_context_color_lookup_func,
- context,
dependencies);
}
@@ -2750,10 +2737,9 @@ _gtk_style_context_resolve_color (GtkStyleContext *context,
g_return_val_if_fail (result != NULL, FALSE);
val = _gtk_symbolic_color_resolve_full (color,
+ GTK_STYLE_PROVIDER_PRIVATE (context->priv->cascade),
_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR),
GTK_CSS_DEPENDS_ON_COLOR,
- gtk_style_context_color_lookup_func,
- context,
dependencies);
if (val == NULL)
return FALSE;
@@ -2784,7 +2770,7 @@ gtk_style_context_lookup_color (GtkStyleContext *context,
g_return_val_if_fail (color_name != NULL, FALSE);
g_return_val_if_fail (color != NULL, FALSE);
- sym_color = gtk_style_context_color_lookup_func (context, color_name);
+ sym_color = _gtk_style_provider_private_get_color (GTK_STYLE_PROVIDER_PRIVATE (context->priv->cascade), color_name);
if (sym_color == NULL)
return FALSE;
diff --git a/gtk/gtkstyleproviderprivate.c b/gtk/gtkstyleproviderprivate.c
index a0b75a9618..936f191190 100644
--- a/gtk/gtkstyleproviderprivate.c
+++ b/gtk/gtkstyleproviderprivate.c
@@ -50,6 +50,10 @@ _gtk_style_provider_private_get_color (GtkStyleProviderPrivate *provider,
{
GtkStyleProviderPrivateInterface *iface;
+ /* for compat with gtk_symbolic_color_resolve() */
+ if (provider == NULL)
+ return NULL;
+
g_return_val_if_fail (GTK_IS_STYLE_PROVIDER_PRIVATE (provider), NULL);
iface = GTK_STYLE_PROVIDER_PRIVATE_GET_INTERFACE (provider);
diff --git a/gtk/gtkstyleproviderprivate.h b/gtk/gtkstyleproviderprivate.h
index 43675d135e..75a6049360 100644
--- a/gtk/gtkstyleproviderprivate.h
+++ b/gtk/gtkstyleproviderprivate.h
@@ -34,7 +34,7 @@ G_BEGIN_DECLS
#define GTK_STYLE_PROVIDER_PRIVATE_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GTK_TYPE_STYLE_PROVIDER_PRIVATE, GtkStyleProviderPrivateInterface))
typedef struct _GtkStyleProviderPrivateInterface GtkStyleProviderPrivateInterface;
-typedef struct _GtkStyleProviderPrivate GtkStyleProviderPrivate; /* dummy typedef */
+/* typedef struct _GtkStyleProviderPrivate GtkStyleProviderPrivate; */ /* dummy typedef */
struct _GtkStyleProviderPrivateInterface
{
diff --git a/gtk/gtksymboliccolor.c b/gtk/gtksymboliccolor.c
index 1cca34c47e..6a7b4c11fe 100644
--- a/gtk/gtksymboliccolor.c
+++ b/gtk/gtksymboliccolor.c
@@ -674,15 +674,6 @@ _shade_color (GdkRGBA *color,
*color = temp;
}
-static GtkSymbolicColor *
-resolve_lookup_color (gpointer data, const char *name)
-{
- if (data == NULL)
- return NULL;
-
- return gtk_style_properties_lookup_color (data, name);
-}
-
/**
* gtk_symbolic_color_resolve:
* @color: a #GtkSymbolicColor
@@ -717,10 +708,9 @@ gtk_symbolic_color_resolve (GtkSymbolicColor *color,
current = _gtk_css_rgba_value_new_from_rgba (&pink);
v =_gtk_symbolic_color_resolve_full (color,
+ GTK_STYLE_PROVIDER_PRIVATE (props),
current,
0,
- resolve_lookup_color,
- props,
NULL);
_gtk_css_value_unref (current);
if (v == NULL)
@@ -732,19 +722,18 @@ gtk_symbolic_color_resolve (GtkSymbolicColor *color,
}
GtkCssValue *
-_gtk_symbolic_color_resolve_full (GtkSymbolicColor *color,
- GtkCssValue *current,
- GtkCssDependencies current_deps,
- GtkSymbolicColorLookupFunc func,
- gpointer data,
- GtkCssDependencies *dependencies)
+_gtk_symbolic_color_resolve_full (GtkSymbolicColor *color,
+ GtkStyleProviderPrivate *provider,
+ GtkCssValue *current,
+ GtkCssDependencies current_deps,
+ GtkCssDependencies *dependencies)
{
GtkCssDependencies unused;
GtkCssValue *value;
g_return_val_if_fail (color != NULL, FALSE);
+ g_return_val_if_fail (GTK_IS_STYLE_PROVIDER_PRIVATE (provider), FALSE);
g_return_val_if_fail (current != NULL, FALSE);
- g_return_val_if_fail (func != NULL, FALSE);
if (dependencies == NULL)
dependencies = &unused;
@@ -759,12 +748,12 @@ _gtk_symbolic_color_resolve_full (GtkSymbolicColor *color,
{
GtkSymbolicColor *named_color;
- named_color = func (data, color->name);
+ named_color = _gtk_style_provider_private_get_color (provider, color->name);
if (!named_color)
return NULL;
- return _gtk_symbolic_color_resolve_full (named_color, current, current_deps, func, data, dependencies);
+ return _gtk_symbolic_color_resolve_full (named_color, provider, current, current_deps, dependencies);
}
break;
@@ -773,7 +762,7 @@ _gtk_symbolic_color_resolve_full (GtkSymbolicColor *color,
GtkCssValue *val;
GdkRGBA shade;
- val = _gtk_symbolic_color_resolve_full (color->shade.color, current, current_deps, func, data, dependencies);
+ val = _gtk_symbolic_color_resolve_full (color->shade.color, provider, current, current_deps, dependencies);
if (val == NULL)
return NULL;
@@ -792,7 +781,7 @@ _gtk_symbolic_color_resolve_full (GtkSymbolicColor *color,
GtkCssValue *val;
GdkRGBA alpha;
- val = _gtk_symbolic_color_resolve_full (color->alpha.color, current, current_deps, func, data, dependencies);
+ val = _gtk_symbolic_color_resolve_full (color->alpha.color, provider, current, current_deps, dependencies);
if (val == NULL)
return NULL;
@@ -812,13 +801,13 @@ _gtk_symbolic_color_resolve_full (GtkSymbolicColor *color,
GdkRGBA color1, color2, res;
GtkCssDependencies dep1, dep2;
- val = _gtk_symbolic_color_resolve_full (color->mix.color1, current, current_deps, func, data, &dep1);
+ val = _gtk_symbolic_color_resolve_full (color->mix.color1, provider, current, current_deps, &dep1);
if (val == NULL)
return NULL;
color1 = *_gtk_css_rgba_value_get_rgba (val);
_gtk_css_value_unref (val);
- val = _gtk_symbolic_color_resolve_full (color->mix.color2, current, current_deps, func, data, &dep2);
+ val = _gtk_symbolic_color_resolve_full (color->mix.color2, provider, current, current_deps, &dep2);
if (val == NULL)
return NULL;
color2 = *_gtk_css_rgba_value_get_rgba (val);
diff --git a/gtk/gtksymboliccolorprivate.h b/gtk/gtksymboliccolorprivate.h
index fb1f6b72ab..70cac9a8ef 100644
--- a/gtk/gtksymboliccolorprivate.h
+++ b/gtk/gtksymboliccolorprivate.h
@@ -24,13 +24,10 @@
G_BEGIN_DECLS
-typedef GtkSymbolicColor * (* GtkSymbolicColorLookupFunc) (gpointer data, const char *name);
-
GtkCssValue * _gtk_symbolic_color_resolve_full (GtkSymbolicColor *color,
+ GtkStyleProviderPrivate *provider,
GtkCssValue *current,
GtkCssDependencies current_deps,
- GtkSymbolicColorLookupFunc func,
- gpointer data,
GtkCssDependencies *dependencies);
GtkSymbolicColor * _gtk_symbolic_color_get_current_color (void);