[gtk+/wip/matthiasc/n-children] Add a getter for the number of children



commit b76b7e5cac1d2208a7bc96c392e882879fd91540
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Aug 22 14:15:28 2017 -0400

    Add a getter for the number of children
    
    Having this api will let us optimize things later.
    For now, just iterate over the children.

 docs/reference/gtk/gtk4-sections.txt |    1 +
 gtk/gtkwidget.c                      |   22 ++++++++++++++++++++++
 gtk/gtkwidget.h                      |    2 ++
 3 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index d84ddf5..325226d 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -4631,6 +4631,7 @@ gtk_widget_get_next_sibling
 gtk_widget_get_prev_sibling
 gtk_widget_get_first_child
 gtk_widget_get_last_child
+gtk_widget_get_n_children
 gtk_widget_insert_before
 gtk_widget_insert_after
 
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index dbfaa8c..02f4145 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -15307,6 +15307,28 @@ gtk_widget_get_last_child (GtkWidget *widget)
 }
 
 /**
+ * gtk_widget_get_n_children:
+ * @widget: a #GtkWidget
+ *
+ * Returns: the number of children
+ *
+ * Since: 3.92
+ */
+guint
+gtk_widget_get_n_children (GtkWidget *widget)
+{
+  guint n = 0;
+  GtkWidget *child;
+
+  for (child = gtk_widget_get_first_child (widget);
+       child != NULL;
+       child = gtk-widget_get_next_sibling (child))
+    n++;
+
+  return n;
+}
+
+/**
  * gtk_widget_get_next_sibling:
  * @widget: a #GtkWidget
  *
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index ff2aa77..89e51cf 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -1170,6 +1170,8 @@ GDK_AVAILABLE_IN_3_90
 GtkWidget *             gtk_widget_get_first_child      (GtkWidget *widget);
 GDK_AVAILABLE_IN_3_90
 GtkWidget *             gtk_widget_get_last_child       (GtkWidget *widget);
+GDK_AVAILABLE_IN_3_92
+guint                   gtk_widget_get_n_children       (GtkWidget *widget);
 GDK_AVAILABLE_IN_3_90
 GtkWidget *             gtk_widget_get_next_sibling     (GtkWidget *widget);
 GDK_AVAILABLE_IN_3_90


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