diff options
author | Benjamin Otte <otte@redhat.com> | 2011-05-14 13:27:31 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-05-18 22:17:55 +0200 |
commit | fc88b0f47c7dc198cc6674cb8819f5b43e45ef3c (patch) | |
tree | 3e8fa8c8a3a35ddc0a46db858dfa35a67462eaef /gtk/gtkcssselectorprivate.h | |
parent | 4e2d3f5d181f84523d3ab13aa18e15a8062dcd1a (diff) | |
download | gtk+-fc88b0f47c7dc198cc6674cb8819f5b43e45ef3c.tar.gz |
css: Rewrite selectors
Selectors now go into their own C file. The new selectors are modeled a
lot closer to the CSS spec. In particular the specificity computation
matches CSS 2.1 exactly.
For details about the why, see also:
http://mail.gnome.org/archives/gtk-devel-list/2011-May/msg00061.html
https://bugzilla.gnome.org/show_bug.cgi?id=649798
Diffstat (limited to 'gtk/gtkcssselectorprivate.h')
-rw-r--r-- | gtk/gtkcssselectorprivate.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gtk/gtkcssselectorprivate.h b/gtk/gtkcssselectorprivate.h new file mode 100644 index 0000000000..70c5e600cf --- /dev/null +++ b/gtk/gtkcssselectorprivate.h @@ -0,0 +1,57 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2011 Benjamin Otte <otte@gnome.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * 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. + */ + +#ifndef __GTK_CSS_SELECTOR_PRIVATE_H__ +#define __GTK_CSS_SELECTOR_PRIVATE_H__ + +#include <gtk/gtkenums.h> +#include <gtk/gtkwidgetpath.h> + +G_BEGIN_DECLS + +typedef enum { + GTK_CSS_COMBINE_DESCANDANT, + GTK_CSS_COMBINE_CHILD +} GtkCssCombinator; + +typedef struct _GtkCssSelector GtkCssSelector; + +GtkCssSelector * _gtk_css_selector_new (GtkCssSelector *previous, + GtkCssCombinator combine, + const char * name, + GQuark * ids, + GQuark * classes, + GtkRegionFlags pseudo_classes, + GtkStateFlags state); +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); +int _gtk_css_selector_compare (const GtkCssSelector *a, + const GtkCssSelector *b); + +G_END_DECLS + +#endif /* __GTK_CSS_SELECTOR_PRIVATE_H__ */ |