[gtk/kill-containers: 6/8] grid: Add gtk_grid_remove



commit 95b6d09d62f213286fcefcae2a04ec3592f46cce
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu May 7 14:22:12 2020 -0400

    grid: Add gtk_grid_remove
    
    This is a replacement for gtk_container_remove.

 docs/reference/gtk/gtk4-sections.txt |  1 +
 gtk/gtkgrid.c                        | 25 ++++++++++++++++++++++---
 gtk/gtkgrid.h                        | 12 ++++++++----
 3 files changed, 31 insertions(+), 7 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 7f34d15c51..ff6eb43237 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -5280,6 +5280,7 @@ GtkGridClass
 gtk_grid_new
 gtk_grid_attach
 gtk_grid_attach_next_to
+gtk_grid_remove
 gtk_grid_get_child_at
 gtk_grid_insert_row
 gtk_grid_insert_column
diff --git a/gtk/gtkgrid.c b/gtk/gtkgrid.c
index 89af6bc311..d14860fe8f 100644
--- a/gtk/gtkgrid.c
+++ b/gtk/gtkgrid.c
@@ -287,8 +287,8 @@ gtk_grid_add (GtkContainer *container,
 }
 
 static void
-gtk_grid_remove (GtkContainer *container,
-                 GtkWidget    *child)
+gtk_grid_real_remove (GtkContainer *container,
+                      GtkWidget    *child)
 {
   GtkGrid *grid = GTK_GRID (container);
   gboolean was_visible;
@@ -335,7 +335,7 @@ gtk_grid_class_init (GtkGridClass *class)
   object_class->set_property = gtk_grid_set_property;
 
   container_class->add = gtk_grid_add;
-  container_class->remove = gtk_grid_remove;
+  container_class->remove = gtk_grid_real_remove;
   container_class->forall = gtk_grid_forall;
   container_class->child_type = gtk_grid_child_type;
 
@@ -580,6 +580,25 @@ gtk_grid_get_child_at (GtkGrid *grid,
   return NULL;
 }
 
+/**
+ * gtk_grid_remove:
+ * @grid: a #GtkGrid
+ * @child: the child widget to remove
+ *
+ * Removes a child from @grid, after it has been added
+ * with gtk_grid_attach() or gtk_grid_attach_next_to().
+ */
+void
+gtk_grid_remove (GtkGrid   *grid,
+                 GtkWidget *child)
+{
+  g_return_if_fail (GTK_IS_GRID (grid));
+  g_return_if_fail (GTK_IS_WIDGET (child));
+  g_return_if_fail (gtk_widget_get_parent (child) == grid);
+
+  gtk_widget_unparent (child);
+}
+
 /**
  * gtk_grid_insert_row:
  * @grid: a #GtkGrid
diff --git a/gtk/gtkgrid.h b/gtk/gtkgrid.h
index 243e11c17a..294e9942fa 100644
--- a/gtk/gtkgrid.h
+++ b/gtk/gtkgrid.h
@@ -82,6 +82,10 @@ GtkWidget *gtk_grid_get_child_at           (GtkGrid         *grid,
                                             gint             left,
                                             gint             top);
 GDK_AVAILABLE_IN_ALL
+void       gtk_grid_remove                 (GtkGrid         *grid,
+                                            GtkWidget       *child);
+
+GDK_AVAILABLE_IN_ALL
 void       gtk_grid_insert_row             (GtkGrid         *grid,
                                             gint             position);
 GDK_AVAILABLE_IN_ALL
@@ -119,14 +123,14 @@ GDK_AVAILABLE_IN_ALL
 guint      gtk_grid_get_column_spacing     (GtkGrid         *grid);
 GDK_AVAILABLE_IN_ALL
 void       gtk_grid_set_row_baseline_position (GtkGrid      *grid,
-                                              gint          row,
-                                              GtkBaselinePosition pos);
+                                               gint          row,
+                                               GtkBaselinePosition pos);
 GDK_AVAILABLE_IN_ALL
 GtkBaselinePosition gtk_grid_get_row_baseline_position (GtkGrid      *grid,
-                                                       gint          row);
+                                                        gint          row);
 GDK_AVAILABLE_IN_ALL
 void       gtk_grid_set_baseline_row       (GtkGrid         *grid,
-                                           gint             row);
+                                            gint             row);
 GDK_AVAILABLE_IN_ALL
 gint       gtk_grid_get_baseline_row       (GtkGrid         *grid);
 


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