[gtk+/wip/otte/tokenizer: 47/78] cssstyledeclaration: Make declarations queryable



commit ff7f62b3ca6cd2cfcef5724efdcf5a0c2e36b14f
Author: Benjamin Otte <otte redhat com>
Date:   Mon Mar 21 18:17:54 2016 +0100

    cssstyledeclaration: Make declarations queryable

 gtk/gtkcssstyledeclaration.c        |   27 +++++++++++++++++++++++++++
 gtk/gtkcssstyledeclarationprivate.h |    3 +++
 2 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcssstyledeclaration.c b/gtk/gtkcssstyledeclaration.c
index 9560d33..1dd4a09 100644
--- a/gtk/gtkcssstyledeclaration.c
+++ b/gtk/gtkcssstyledeclaration.c
@@ -103,3 +103,30 @@ gtk_css_style_declaration_parse (GtkCssStyleDeclaration *style,
         }
     }
 }
+
+GtkCssDeclaration *
+gtk_css_style_declaration_get_declaration (GtkCssStyleDeclaration *declaration,
+                                           gssize                  id)
+{
+  GtkCssStyleDeclarationPrivate *priv;
+
+  g_return_val_if_fail (GTK_IS_CSS_STYLE_DECLARATION (declaration), NULL);
+
+  priv = gtk_css_style_declaration_get_instance_private (declaration);
+  g_return_val_if_fail (id < priv->declarations->len, NULL);
+
+  return g_ptr_array_index (priv->declarations, id);
+}
+
+gsize
+gtk_css_style_declaration_get_length (GtkCssStyleDeclaration *declaration)
+{
+  GtkCssStyleDeclarationPrivate *priv;
+
+  g_return_val_if_fail (GTK_IS_CSS_STYLE_DECLARATION (declaration), 0);
+
+  priv = gtk_css_style_declaration_get_instance_private (declaration);
+
+  return priv->declarations->len;
+}
+
diff --git a/gtk/gtkcssstyledeclarationprivate.h b/gtk/gtkcssstyledeclarationprivate.h
index 0db1e5b..d7cb25b 100644
--- a/gtk/gtkcssstyledeclarationprivate.h
+++ b/gtk/gtkcssstyledeclarationprivate.h
@@ -53,6 +53,9 @@ GtkCssStyleDeclaration *gtk_css_style_declaration_new                   (GtkCssR
 void                    gtk_css_style_declaration_parse                 (GtkCssStyleDeclaration *style,
                                                                          GtkCssTokenSource      *source);
 
+GtkCssDeclaration *     gtk_css_style_declaration_get_declaration       (GtkCssStyleDeclaration *declaration,
+                                                                         gssize                  id);
+
 /* GtkCssStyleDeclaration DOM */
 void                    gtk_css_style_declaration_print_css_text        (GtkCssStyleDeclaration *declaration,
                                                                          GString                *string);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]