From 454ca897bb0d41f0926c91d6668440470e7855bf Mon Sep 17 00:00:00 2001 From: Christopher Davis Date: Wed, 29 Sep 2021 19:45:45 -0700 Subject: [PATCH] gtkflowbox: Add prepend() and append() These functions are common across container implementations, but GtkFlowBox was missing them. Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4277 --- gtk/gtkflowbox.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ gtk/gtkflowbox.h | 6 ++++++ 2 files changed, 54 insertions(+) diff --git a/gtk/gtkflowbox.c b/gtk/gtkflowbox.c index 188b76c562..a3de9deaaa 100644 --- a/gtk/gtkflowbox.c +++ b/gtk/gtkflowbox.c @@ -4072,6 +4072,54 @@ gtk_flow_box_insert_widget (GtkFlowBox *box, gtk_widget_insert_after (child, GTK_WIDGET (box), sibling); } +/** + * gtk_flow_box_prepend: + * @self: a `GtkFlowBox + * @child: the `GtkWidget` to add + * + * Adds @child to the start of @self. + * + * If a sort function is set, the widget will + * actually be inserted at the calculated position. + * + * See also: [method@Gtk.FlowBox.insert]. + * + * Since: 4.6 + */ +void +gtk_flow_box_prepend (GtkFlowBox *self, + GtkWidget *child) +{ + g_return_if_fail (GTK_IS_FLOW_BOX (self)); + g_return_if_fail (GTK_IS_WIDGET (child)); + + gtk_flow_box_insert (self, child, 0); +} + +/** + * gtk_flow_box_append: + * @self: a `GtkFlowBox + * @child: the `GtkWidget` to add + * + * Adds @child to the end of @self. + * + * If a sort function is set, the widget will + * actually be inserted at the calculated position. + * + * See also: [method@Gtk.FlowBox.insert]. + * + * Since: 4.6 + */ +void +gtk_flow_box_append (GtkFlowBox *self, + GtkWidget *child) +{ + g_return_if_fail (GTK_IS_FLOW_BOX (self)); + g_return_if_fail (GTK_IS_WIDGET (child)); + + gtk_flow_box_insert (self, child, -1); +} + /** * gtk_flow_box_insert: * @box: a `GtkFlowBox` diff --git a/gtk/gtkflowbox.h b/gtk/gtkflowbox.h index 3625d18ddf..a8f3da2eda 100644 --- a/gtk/gtkflowbox.h +++ b/gtk/gtkflowbox.h @@ -147,6 +147,12 @@ void gtk_flow_box_set_activate_on_single_click (GtkFlowBox GDK_AVAILABLE_IN_ALL gboolean gtk_flow_box_get_activate_on_single_click (GtkFlowBox *box); +GDK_AVAILABLE_IN_4_6 +void gtk_flow_box_prepend (GtkFlowBox *self, + GtkWidget *child); +GDK_AVAILABLE_IN_4_6 +void gtk_flow_box_append (GtkFlowBox *self, + GtkWidget *child); GDK_AVAILABLE_IN_ALL void gtk_flow_box_insert (GtkFlowBox *box, GtkWidget *widget,