summaryrefslogtreecommitdiff
path: root/gtk/gtkcssprovider.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-03-17 02:36:11 +0100
committerBenjamin Otte <otte@redhat.com>2012-04-17 08:59:07 +0200
commita94b85d37592cb9119216cd9f4820e27edfe5e15 (patch)
tree47ad100f777ac9f52fe977eb3f5264e173f1ad82 /gtk/gtkcssprovider.c
parentc0b7c3321d15daf05a26818745367051300ac176 (diff)
downloadgtk+-a94b85d37592cb9119216cd9f4820e27edfe5e15.tar.gz
css: Make the style provider take a matcher as an input argument
Diffstat (limited to 'gtk/gtkcssprovider.c')
-rw-r--r--gtk/gtkcssprovider.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 9cd891fc81..93201007aa 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -1293,11 +1293,10 @@ gtk_css_ruleset_add (GtkCssRuleset *ruleset,
}
static gboolean
-gtk_css_ruleset_matches (GtkCssRuleset *ruleset,
- GtkWidgetPath *path,
- GtkStateFlags state)
+gtk_css_ruleset_matches (GtkCssRuleset *ruleset,
+ const GtkCssMatcher *matcher)
{
- return _gtk_css_selector_matches (ruleset->selector, path, state);
+ return _gtk_css_selector_matches (ruleset->selector, matcher);
}
static void
@@ -1469,6 +1468,7 @@ static GtkStyleProperties *
gtk_css_provider_get_style (GtkStyleProvider *provider,
GtkWidgetPath *path)
{
+ GtkCssMatcher matcher;
GtkCssProvider *css_provider;
GtkCssProviderPrivate *priv;
GtkStyleProperties *props;
@@ -1479,6 +1479,7 @@ gtk_css_provider_get_style (GtkStyleProvider *provider,
props = gtk_style_properties_new ();
css_provider_dump_symbolic_colors (css_provider, props);
+ _gtk_css_matcher_init (&matcher, path, 0);
for (i = 0; i < priv->rulesets->len; i++)
{
@@ -1489,7 +1490,7 @@ gtk_css_provider_get_style (GtkStyleProvider *provider,
if (ruleset->styles == NULL)
continue;
- if (!gtk_css_ruleset_matches (ruleset, path, 0))
+ if (!gtk_css_ruleset_matches (ruleset, &matcher))
continue;
for (j = 0; j < ruleset->n_styles; j++)
@@ -1512,6 +1513,7 @@ gtk_css_provider_get_style_property (GtkStyleProvider *provider,
GtkCssProvider *css_provider = GTK_CSS_PROVIDER (provider);
GtkCssProviderPrivate *priv = css_provider->priv;
WidgetPropertyValue *val;
+ GtkCssMatcher matcher;
gboolean found = FALSE;
gchar *prop_name;
gint i;
@@ -1519,6 +1521,7 @@ gtk_css_provider_get_style_property (GtkStyleProvider *provider,
prop_name = g_strdup_printf ("-%s-%s",
g_type_name (pspec->owner_type),
pspec->name);
+ _gtk_css_matcher_init (&matcher, path, 0);
for (i = priv->rulesets->len - 1; i >= 0; i--)
{
@@ -1529,7 +1532,7 @@ gtk_css_provider_get_style_property (GtkStyleProvider *provider,
if (ruleset->widget_style == NULL)
continue;
- if (!gtk_css_ruleset_matches (ruleset, path, state))
+ if (!gtk_css_ruleset_matches (ruleset, &matcher))
continue;
for (val = ruleset->widget_style; val != NULL; val = val->next)
@@ -1581,8 +1584,7 @@ gtk_css_style_provider_get_color (GtkStyleProviderPrivate *provider,
static void
gtk_css_style_provider_lookup (GtkStyleProviderPrivate *provider,
- GtkWidgetPath *path,
- GtkStateFlags state,
+ const GtkCssMatcher *matcher,
GtkCssLookup *lookup)
{
GtkCssProvider *css_provider;
@@ -1606,7 +1608,7 @@ gtk_css_style_provider_lookup (GtkStyleProviderPrivate *provider,
ruleset->set_styles))
continue;
- if (!gtk_css_ruleset_matches (ruleset, path, state))
+ if (!gtk_css_ruleset_matches (ruleset, matcher))
continue;
for (j = 0; j < ruleset->n_styles; j++)