1 /* GTK - The GIMP Toolkit 2 * Copyright (C) 2011 Red Hat, Inc. 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_SECTION_H__ 19 #define __GTK_CSS_SECTION_H__ 20 21 #include <gio/gio.h> 22 #include <gdk/gdk.h> 23 24 G_BEGIN_DECLS 25 26 #define GTK_TYPE_CSS_SECTION (gtk_css_section_get_type ()) 27 28 /** 29 * GtkCssSectionType: 30 * @GTK_CSS_SECTION_DOCUMENT: The section describes a complete document. 31 * This section time is the only one where gtk_css_section_get_parent() 32 * might return %NULL. 33 * @GTK_CSS_SECTION_IMPORT: The section defines an import rule. 34 * @GTK_CSS_SECTION_COLOR_DEFINITION: The section defines a color. This 35 * is a GTK extension to CSS. 36 * @GTK_CSS_SECTION_BINDING_SET: The section defines a binding set. This 37 * is a GTK extension to CSS. 38 * @GTK_CSS_SECTION_RULESET: The section defines a CSS ruleset. 39 * @GTK_CSS_SECTION_SELECTOR: The section defines a CSS selector. 40 * @GTK_CSS_SECTION_DECLARATION: The section defines the declaration of 41 * a CSS variable. 42 * @GTK_CSS_SECTION_VALUE: The section defines the value of a CSS declaration. 43 * @GTK_CSS_SECTION_KEYFRAMES: The section defines keyframes. See [CSS 44 * Animations](http://dev.w3.org/csswg/css3-animations/#keyframes) for details. Since 3.6 45 * 46 * The different types of sections indicate parts of a CSS document as 47 * parsed by GTK’s CSS parser. They are oriented towards the 48 * [CSS Grammar](http://www.w3.org/TR/CSS21/grammar.html), 49 * but may contain extensions. 50 * 51 * More types might be added in the future as the parser incorporates 52 * more features. 53 * 54 * Since: 3.2 55 */ 56 typedef enum 57 { 58 GTK_CSS_SECTION_DOCUMENT, 59 GTK_CSS_SECTION_IMPORT, 60 GTK_CSS_SECTION_COLOR_DEFINITION, 61 GTK_CSS_SECTION_BINDING_SET, 62 GTK_CSS_SECTION_RULESET, 63 GTK_CSS_SECTION_SELECTOR, 64 GTK_CSS_SECTION_DECLARATION, 65 GTK_CSS_SECTION_VALUE, 66 GTK_CSS_SECTION_KEYFRAMES 67 } GtkCssSectionType; 68 69 /** 70 * GtkCssSection: 71 * 72 * Defines a part of a CSS document. Because sections are nested into 73 * one another, you can use gtk_css_section_get_parent() to get the 74 * containing region. 75 * 76 * Since: 3.2 77 */ 78 typedef struct _GtkCssSection GtkCssSection; 79 80 GDK_AVAILABLE_IN_3_2 81 GType gtk_css_section_get_type (void) G_GNUC_CONST; 82 83 GDK_AVAILABLE_IN_3_2 84 GtkCssSection * gtk_css_section_ref (GtkCssSection *section); 85 GDK_AVAILABLE_IN_3_2 86 void gtk_css_section_unref (GtkCssSection *section); 87 88 GDK_AVAILABLE_IN_3_2 89 GtkCssSectionType gtk_css_section_get_section_type (const GtkCssSection *section); 90 GDK_AVAILABLE_IN_3_2 91 GtkCssSection * gtk_css_section_get_parent (const GtkCssSection *section); 92 GDK_AVAILABLE_IN_3_2 93 GFile * gtk_css_section_get_file (const GtkCssSection *section); 94 GDK_AVAILABLE_IN_3_2 95 guint gtk_css_section_get_start_line (const GtkCssSection *section); 96 GDK_AVAILABLE_IN_3_2 97 guint gtk_css_section_get_start_position (const GtkCssSection *section); 98 GDK_AVAILABLE_IN_3_2 99 guint gtk_css_section_get_end_line (const GtkCssSection *section); 100 GDK_AVAILABLE_IN_3_2 101 guint gtk_css_section_get_end_position (const GtkCssSection *section); 102 103 G_END_DECLS 104 105 #endif /* __GTK_CSS_SECTION_H__ */ 106