From: Matthias Clasen Date: Wed, 15 Jan 2020 03:29:56 +0000 (-0500) Subject: css: Add a matcher type enum X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~20^2~312^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=007713c0ba62ab1d0497f593fc621a271521f53d;p=gtk4.git css: Add a matcher type enum For now, this just replaces the is_any boolean by a type field in the class. It will be used in future commits. --- diff --git a/gtk/gtkcssmatcher.c b/gtk/gtkcssmatcher.c index 6329029589..8665d9f2a1 100644 --- a/gtk/gtkcssmatcher.c +++ b/gtk/gtkcssmatcher.c @@ -159,14 +159,14 @@ gtk_css_matcher_widget_path_has_position (const GtkCssMatcher *matcher, } 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_get_previous, gtk_css_matcher_widget_path_get_state, 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, - FALSE + gtk_css_matcher_widget_path_has_position }; gboolean @@ -335,14 +335,14 @@ gtk_css_matcher_node_has_position (const GtkCssMatcher *matcher, } static const GtkCssMatcherClass GTK_CSS_MATCHER_NODE = { + GTK_CSS_MATCHER_TYPE_NODE, gtk_css_matcher_node_get_parent, gtk_css_matcher_node_get_previous, gtk_css_matcher_node_get_state, gtk_css_matcher_node_has_name, gtk_css_matcher_node_has_class, gtk_css_matcher_node_has_id, - gtk_css_matcher_node_has_position, - FALSE + gtk_css_matcher_node_has_position }; void @@ -430,14 +430,14 @@ gtk_css_matcher_any_has_position (const GtkCssMatcher *matcher, } static const GtkCssMatcherClass GTK_CSS_MATCHER_ANY = { + GTK_CSS_MATCHER_TYPE_ANY, gtk_css_matcher_any_get_parent, gtk_css_matcher_any_get_previous, gtk_css_matcher_any_get_state, gtk_css_matcher_any_has_name, gtk_css_matcher_any_has_class, gtk_css_matcher_any_has_id, - gtk_css_matcher_any_has_position, - TRUE + gtk_css_matcher_any_has_position }; void @@ -518,14 +518,14 @@ gtk_css_matcher_superset_has_position (const GtkCssMatcher *matcher, } static const GtkCssMatcherClass GTK_CSS_MATCHER_SUPERSET = { + GTK_CSS_MATCHER_TYPE_SUPERSET, gtk_css_matcher_superset_get_parent, gtk_css_matcher_superset_get_previous, gtk_css_matcher_superset_get_state, gtk_css_matcher_superset_has_name, gtk_css_matcher_superset_has_class, gtk_css_matcher_superset_has_id, - gtk_css_matcher_superset_has_position, - FALSE + gtk_css_matcher_superset_has_position }; void diff --git a/gtk/gtkcssmatcherprivate.h b/gtk/gtkcssmatcherprivate.h index 4be2b3ff64..2a211ec424 100644 --- a/gtk/gtkcssmatcherprivate.h +++ b/gtk/gtkcssmatcherprivate.h @@ -29,7 +29,15 @@ typedef struct _GtkCssMatcherSuperset GtkCssMatcherSuperset; typedef struct _GtkCssMatcherWidgetPath GtkCssMatcherWidgetPath; typedef struct _GtkCssMatcherClass GtkCssMatcherClass; +typedef enum { + GTK_CSS_MATCHER_TYPE_NODE, + GTK_CSS_MATCHER_TYPE_WIDGET_PATH, + GTK_CSS_MATCHER_TYPE_ANY, + GTK_CSS_MATCHER_TYPE_SUPERSET +} GtkCssMatcherType; + struct _GtkCssMatcherClass { + GtkCssMatcherType type; gboolean (* get_parent) (GtkCssMatcher *matcher, const GtkCssMatcher *child); gboolean (* get_previous) (GtkCssMatcher *matcher, @@ -46,7 +54,6 @@ struct _GtkCssMatcherClass { gboolean forward, int a, int b); - gboolean is_any; }; struct _GtkCssMatcherWidgetPath { @@ -142,7 +149,7 @@ _gtk_css_matcher_has_position (const GtkCssMatcher *matcher, static inline gboolean _gtk_css_matcher_matches_any (const GtkCssMatcher *matcher) { - return matcher->klass->is_any; + return matcher->klass->type == GTK_CSS_MATCHER_TYPE_ANY; }