1 | /* GTK - The GIMP Toolkit |
2 | * Copyright (C) 2011 Benjamin Otte <otte@gnome.org> |
3 | * |
4 | * This library is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Lesser General Public |
6 | * License as published by the Free Software Foundation; either |
7 | * version 2 of the License, or (at your option) any later version. |
8 | * |
9 | * This library is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Lesser General Public License for more details. |
13 | * |
14 | * You should have received a copy of the GNU Lesser General Public |
15 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. |
16 | */ |
17 | |
18 | #ifndef __GTK_CSS_SELECTOR_PRIVATE_H__ |
19 | #define __GTK_CSS_SELECTOR_PRIVATE_H__ |
20 | |
21 | #include <gtk/css/gtkcss.h> |
22 | #include "gtk/css/gtkcsstokenizerprivate.h" |
23 | #include "gtk/css/gtkcssparserprivate.h" |
24 | #include "gtk/gtkcountingbloomfilterprivate.h" |
25 | #include "gtk/gtkcsstypesprivate.h" |
26 | |
27 | #define GDK_ARRAY_ELEMENT_TYPE gpointer |
28 | #define GDK_ARRAY_TYPE_NAME GtkCssSelectorMatches |
29 | #define GDK_ARRAY_NAME gtk_css_selector_matches |
30 | #define GDK_ARRAY_PREALLOC 32 |
31 | #include "gdk/gdkarrayimpl.c" |
32 | |
33 | G_BEGIN_DECLS |
34 | |
35 | typedef union _GtkCssSelector GtkCssSelector; |
36 | typedef struct _GtkCssSelectorTree GtkCssSelectorTree; |
37 | typedef struct _GtkCssSelectorTreeBuilder GtkCssSelectorTreeBuilder; |
38 | |
39 | GtkCssSelector * _gtk_css_selector_parse (GtkCssParser *parser); |
40 | void _gtk_css_selector_free (GtkCssSelector *selector); |
41 | |
42 | char * _gtk_css_selector_to_string (const GtkCssSelector *selector); |
43 | void _gtk_css_selector_print (const GtkCssSelector *selector, |
44 | GString *str); |
45 | |
46 | gboolean gtk_css_selector_matches (const GtkCssSelector *selector, |
47 | GtkCssNode *node); |
48 | GtkCssChange _gtk_css_selector_get_change (const GtkCssSelector *selector); |
49 | int _gtk_css_selector_compare (const GtkCssSelector *a, |
50 | const GtkCssSelector *b); |
51 | |
52 | void _gtk_css_selector_tree_free (GtkCssSelectorTree *tree); |
53 | void _gtk_css_selector_tree_match_all (const GtkCssSelectorTree *tree, |
54 | const GtkCountingBloomFilter *filter, |
55 | GtkCssNode *node, |
56 | GtkCssSelectorMatches *out_tree_rules); |
57 | GtkCssChange gtk_css_selector_tree_get_change_all (const GtkCssSelectorTree *tree, |
58 | const GtkCountingBloomFilter *filter, |
59 | GtkCssNode *node); |
60 | void _gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree, |
61 | GString *str); |
62 | gboolean _gtk_css_selector_tree_is_empty (const GtkCssSelectorTree *tree) G_GNUC_CONST; |
63 | |
64 | |
65 | |
66 | GtkCssSelectorTreeBuilder *_gtk_css_selector_tree_builder_new (void); |
67 | void _gtk_css_selector_tree_builder_add (GtkCssSelectorTreeBuilder *builder, |
68 | GtkCssSelector *selectors, |
69 | GtkCssSelectorTree **selector_match, |
70 | gpointer match); |
71 | GtkCssSelectorTree * _gtk_css_selector_tree_builder_build (GtkCssSelectorTreeBuilder *builder); |
72 | void _gtk_css_selector_tree_builder_free (GtkCssSelectorTreeBuilder *builder); |
73 | |
74 | G_END_DECLS |
75 | |
76 | #endif /* __GTK_CSS_SELECTOR_PRIVATE_H__ */ |
77 | |