[gtk/kill-containers: 26/43] headerbar: Add gtk_header_bar_remove
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/kill-containers: 26/43] headerbar: Add gtk_header_bar_remove
- Date: Sun, 10 May 2020 03:20:18 +0000 (UTC)
commit d53563cfc2c101209166e6674d1a3ded7111113e
Author: Matthias Clasen <mclasen redhat com>
Date: Fri May 8 09:19:21 2020 -0400
headerbar: Add gtk_header_bar_remove
This is a replacement for gtk_container_remove.
docs/reference/gtk/gtk4-sections.txt | 1 +
gtk/gtkheaderbar.c | 28 ++++++++++++++++++----------
gtk/gtkheaderbar.h | 3 +++
3 files changed, 22 insertions(+), 10 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 0eb8646f9a..1c219b0c76 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -5591,6 +5591,7 @@ gtk_header_bar_set_title_widget
gtk_header_bar_get_title_widget
gtk_header_bar_pack_start
gtk_header_bar_pack_end
+gtk_header_bar_remove
gtk_header_bar_set_show_title_buttons
gtk_header_bar_get_show_title_buttons
gtk_header_bar_set_decoration_layout
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c
index 6952858ea0..2935c6adc8 100644
--- a/gtk/gtkheaderbar.c
+++ b/gtk/gtkheaderbar.c
@@ -492,32 +492,40 @@ gtk_header_bar_add (GtkContainer *container,
gtk_header_bar_pack (GTK_HEADER_BAR (container), child, GTK_PACK_START);
}
-static void
-gtk_header_bar_remove (GtkContainer *container,
- GtkWidget *widget)
+/**
+ * gtk_header_bar_remove:
+ * @bar: a #GtkHeaderBar
+ * @child: the child to remove
+ *
+ * Removes a child from @bar, after it has been added
+ * with gtk_header_bar_pack_start(), gtk_header_bar_pack_end()
+ * or gtk_header_bar_set_title_widget().
+ */
+void
+gtk_header_bar_remove (GtkHeaderBar *bar,
+ GtkWidget *child)
{
- GtkHeaderBar *bar = GTK_HEADER_BAR (container);
GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (bar);
GtkLayoutManager *layout = gtk_widget_get_layout_manager (GTK_WIDGET (bar));
GtkWidget *parent;
gboolean removed = FALSE;
- parent = gtk_widget_get_parent (widget);
+ parent = gtk_widget_get_parent (child);
if (parent == priv->start_box)
{
- gtk_container_remove (GTK_CONTAINER (priv->start_box), widget);
+ gtk_container_remove (GTK_CONTAINER (priv->start_box), child);
removed = TRUE;
}
else if (parent == priv->end_box)
{
- gtk_container_remove (GTK_CONTAINER (priv->end_box), widget);
+ gtk_container_remove (GTK_CONTAINER (priv->end_box), child);
removed = TRUE;
}
- else if (parent == GTK_WIDGET (container) &&
- gtk_center_layout_get_center_widget (GTK_CENTER_LAYOUT (layout)) == widget)
+ else if (parent == GTK_WIDGET (bar) &&
+ gtk_center_layout_get_center_widget (GTK_CENTER_LAYOUT (layout)) == child)
{
- gtk_widget_unparent (widget);
+ gtk_widget_unparent (child);
removed = TRUE;
}
diff --git a/gtk/gtkheaderbar.h b/gtk/gtkheaderbar.h
index 23334c5469..0bbd591759 100644
--- a/gtk/gtkheaderbar.h
+++ b/gtk/gtkheaderbar.h
@@ -50,6 +50,9 @@ void gtk_header_bar_pack_start (GtkHeaderBar *bar,
GDK_AVAILABLE_IN_ALL
void gtk_header_bar_pack_end (GtkHeaderBar *bar,
GtkWidget *child);
+GDK_AVAILABLE_IN_ALL
+void gtk_header_bar_remove (GtkHeaderBar *bar,
+ GtkWidget *child);
GDK_AVAILABLE_IN_ALL
gboolean gtk_header_bar_get_show_title_buttons (GtkHeaderBar *bar);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]