* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GTK_CSS_SELECTOR_PRIVATE_H__
#define __GTK_CSS_SELECTOR_PRIVATE_H__
-#include <gtk/gtkenums.h>
-#include <gtk/gtkwidgetpath.h>
+#include "gtk/gtkcssmatcherprivate.h"
+#include "gtk/gtkcssparserprivate.h"
G_BEGIN_DECLS
-typedef enum {
- GTK_CSS_COMBINE_DESCANDANT,
- GTK_CSS_COMBINE_CHILD
-} GtkCssCombinator;
-
typedef struct _GtkCssSelector GtkCssSelector;
+typedef struct _GtkCssSelectorTree GtkCssSelectorTree;
+typedef struct _GtkCssSelectorTreeBuilder GtkCssSelectorTreeBuilder;
-GtkCssSelector * _gtk_css_selector_new (GtkCssSelector *previous,
- GtkCssCombinator combine,
- const char * name,
- GQuark * ids,
- GQuark * classes,
- GtkRegionFlags pseudo_classes,
- GtkStateFlags state);
+GtkCssSelector * _gtk_css_selector_parse (GtkCssParser *parser);
void _gtk_css_selector_free (GtkCssSelector *selector);
char * _gtk_css_selector_to_string (const GtkCssSelector *selector);
void _gtk_css_selector_print (const GtkCssSelector *selector,
GString *str);
-GtkStateFlags _gtk_css_selector_get_state_flags (GtkCssSelector *selector);
-
gboolean _gtk_css_selector_matches (const GtkCssSelector *selector,
- const GtkWidgetPath *path,
- GtkStateFlags state);
+ const GtkCssMatcher *matcher);
int _gtk_css_selector_compare (const GtkCssSelector *a,
const GtkCssSelector *b);
+void _gtk_css_selector_tree_free (GtkCssSelectorTree *tree);
+GPtrArray * _gtk_css_selector_tree_match_all (const GtkCssSelectorTree *tree,
+ const GtkCssMatcher *matcher);
+GtkCssChange _gtk_css_selector_tree_get_change_all (const GtkCssSelectorTree *tree,
+ const GtkCssMatcher *matcher);
+void _gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree,
+ GString *str);
+GtkCssChange _gtk_css_selector_tree_match_get_change (const GtkCssSelectorTree *tree);
+
+
+GtkCssSelectorTreeBuilder *_gtk_css_selector_tree_builder_new (void);
+void _gtk_css_selector_tree_builder_add (GtkCssSelectorTreeBuilder *builder,
+ GtkCssSelector *selectors,
+ GtkCssSelectorTree **selector_match,
+ gpointer match);
+GtkCssSelectorTree * _gtk_css_selector_tree_builder_build (GtkCssSelectorTreeBuilder *builder);
+void _gtk_css_selector_tree_builder_free (GtkCssSelectorTreeBuilder *builder);
+
G_END_DECLS
#endif /* __GTK_CSS_SELECTOR_PRIVATE_H__ */