diff options
author | Matthias Clasen <mclasen@redhat.com> | 2017-08-22 14:15:28 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2017-08-22 14:18:15 -0400 |
commit | b76b7e5cac1d2208a7bc96c392e882879fd91540 (patch) | |
tree | f39ba454650b1227f247b67736e424d916d3eaee | |
parent | 7937da632ad0f1c4891f0d4e15ae8da27df47837 (diff) | |
download | gtk+-wip/matthiasc/n-children.tar.gz |
Add a getter for the number of childrenwip/matthiasc/n-children
Having this api will let us optimize things later.
For now, just iterate over the children.
-rw-r--r-- | docs/reference/gtk/gtk4-sections.txt | 1 | ||||
-rw-r--r-- | gtk/gtkwidget.c | 22 | ||||
-rw-r--r-- | 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 d84ddf5bff..325226dd13 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 dbfaa8cb12..02f4145835 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 ff2aa771ba..89e51cf6bd 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 |