#include "gtkcssnodeprivate.h"
#include "gtkwidgetpath.h"
+void
+gtk_css_matcher_print (const GtkCssMatcher *matcher,
+ GString *string)
+{
+ matcher->klass->print (matcher, string);
+}
+
+char *
+gtk_css_matcher_to_string (const GtkCssMatcher *matcher)
+{
+ GString *string = g_string_new ("");
+ gtk_css_matcher_print (matcher, string);
+ return g_string_free (string, FALSE);
+}
+
/* GTK_CSS_MATCHER_WIDGET_PATH */
static gboolean
return x / a >= 0;
}
+static void
+gtk_css_matcher_widget_path_print (const GtkCssMatcher *matcher,
+ GString *string)
+{
+ char *s = gtk_widget_path_to_string (matcher->path.path);
+ g_string_append (string, s);
+ g_free (s);
+}
+
static const GtkCssMatcherClass GTK_CSS_MATCHER_WIDGET_PATH = {
GTK_CSS_MATCHER_TYPE_WIDGET_PATH,
gtk_css_matcher_widget_path_get_parent,
gtk_css_matcher_widget_path_has_name,
gtk_css_matcher_widget_path_has_class,
gtk_css_matcher_widget_path_has_id,
- gtk_css_matcher_widget_path_has_position
+ gtk_css_matcher_widget_path_has_position,
+ gtk_css_matcher_widget_path_print
};
gboolean
a, b);
}
+static void
+gtk_css_matcher_node_print (const GtkCssMatcher *matcher,
+ GString *string)
+{
+ gtk_css_node_print (matcher->node.node, 0, string, 0);
+}
+
static const GtkCssMatcherClass GTK_CSS_MATCHER_NODE = {
GTK_CSS_MATCHER_TYPE_NODE,
gtk_css_matcher_node_get_parent,
gtk_css_matcher_node_has_name,
gtk_css_matcher_node_has_class,
gtk_css_matcher_node_has_id,
- gtk_css_matcher_node_has_position
+ gtk_css_matcher_node_has_position,
+ gtk_css_matcher_node_print
};
void
return TRUE;
}
+static void
+gtk_css_matcher_any_print (const GtkCssMatcher *matcher,
+ GString *string)
+{
+ g_string_append (string, "ANY");
+}
+
static const GtkCssMatcherClass GTK_CSS_MATCHER_ANY = {
GTK_CSS_MATCHER_TYPE_ANY,
gtk_css_matcher_any_get_parent,
gtk_css_matcher_any_has_name,
gtk_css_matcher_any_has_class,
gtk_css_matcher_any_has_id,
- gtk_css_matcher_any_has_position
+ gtk_css_matcher_any_has_position,
+ gtk_css_matcher_any_print
};
void
return TRUE;
}
+static void
+gtk_css_matcher_superset_print (const GtkCssMatcher *matcher,
+ GString *string)
+{
+ g_string_append (string, "SUPERSET(");
+ gtk_css_matcher_print (matcher->superset.subset, string);
+ g_string_append (string, ")");
+}
+
static const GtkCssMatcherClass GTK_CSS_MATCHER_SUPERSET = {
GTK_CSS_MATCHER_TYPE_SUPERSET,
gtk_css_matcher_superset_get_parent,
gtk_css_matcher_superset_has_name,
gtk_css_matcher_superset_has_class,
gtk_css_matcher_superset_has_id,
- gtk_css_matcher_superset_has_position
+ gtk_css_matcher_superset_has_position,
+ gtk_css_matcher_superset_print
};
void