diff --git a/gtk/gtkflowbox.c b/gtk/gtkflowbox.c index 188b76c562290dbee01c8473bbd1794147d64630..8b281b860cfc04c28991deb32f1889b41639bbab 100644 --- a/gtk/gtkflowbox.c +++ b/gtk/gtkflowbox.c @@ -3085,6 +3085,23 @@ gtk_flow_box_remove (GtkFlowBox *box, g_signal_emit (box, signals[SELECTED_CHILDREN_CHANGED], 0); } +/** + * gtk_flow_box_remove_all: + * @box: a `GtkFlowBox` + * + * Removes all children from @box. + */ +void +gtk_flow_box_remove_all (GtkFlowBox *box) +{ + GtkWidget *child; + + g_return_if_fail (GTK_IS_FLOW_BOX (box)); + + while ((child = gtk_widget_get_first_child (GTK_WIDGET (box)))) + gtk_flow_box_remove (box, child); +} + /* Keynav {{{2 */ static gboolean diff --git a/gtk/gtkflowbox.h b/gtk/gtkflowbox.h index 3625d18ddf278c4cd3bd8a7f77c2f9ad9f6b9d77..2283138206c2b00b388191812cf203df66575367 100644 --- a/gtk/gtkflowbox.h +++ b/gtk/gtkflowbox.h @@ -154,6 +154,9 @@ void gtk_flow_box_insert (GtkFlowBox GDK_AVAILABLE_IN_ALL void gtk_flow_box_remove (GtkFlowBox *box, GtkWidget *widget); +GDK_AVAILABLE_IN_ALL +void gtk_flow_box_remove_all (GtkFlowBox *box); + GDK_AVAILABLE_IN_ALL GtkFlowBoxChild *gtk_flow_box_get_child_at_index (GtkFlowBox *box, int idx); diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c index 95120f8cef21a07b69ca467fca7b239d439c32e0..5013f2210cba9201fe03016f9479936b6e1dcdcd 100644 --- a/gtk/gtklistbox.c +++ b/gtk/gtklistbox.c @@ -431,10 +431,7 @@ gtk_list_box_set_property (GObject *obj, static void gtk_list_box_dispose (GObject *object) { - GtkWidget *child; - - while ((child = gtk_widget_get_first_child (GTK_WIDGET (object)))) - gtk_list_box_remove (GTK_LIST_BOX (object), child); + gtk_list_box_remove_all (GTK_LIST_BOX (object)); G_OBJECT_CLASS (gtk_list_box_parent_class)->dispose (object); } @@ -2428,6 +2425,23 @@ gtk_list_box_remove (GtkListBox *box, } } +/** + * gtk_list_box_remove_all: + * @box: a `GtkListBox` + * + * Removes all rows from @box. + */ +void +gtk_list_box_remove_all (GtkListBox *box) +{ + GtkWidget *child; + + g_return_if_fail (GTK_IS_LIST_BOX (box)); + + while ((child = gtk_widget_get_first_child (GTK_WIDGET (box)))) + gtk_list_box_remove (box, child); +} + static void gtk_list_box_compute_expand (GtkWidget *widget, gboolean *hexpand_p, diff --git a/gtk/gtklistbox.h b/gtk/gtklistbox.h index 0e41498bda11d81bd91b4faade944d40852080ae..f14a30fbe3c9c57c68e124ba1d44a52b7ad27de1 100644 --- a/gtk/gtklistbox.h +++ b/gtk/gtklistbox.h @@ -178,6 +178,9 @@ void gtk_list_box_insert (GtkListBox GDK_AVAILABLE_IN_ALL void gtk_list_box_remove (GtkListBox *box, GtkWidget *child); +GDK_AVAILABLE_IN_ALL +void gtk_list_box_remove_all (GtkListBox *box); + GDK_AVAILABLE_IN_ALL GtkListBoxRow* gtk_list_box_get_selected_row (GtkListBox *box); GDK_AVAILABLE_IN_ALL