[gtk/kill-containers: 24/49] textviewchild: Derive from GtkWidget



commit 45159ae318fb0a3ef463bb5a6ea528b2a609cd71
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri May 8 01:05:06 2020 -0400

    textviewchild: Derive from GtkWidget
    
    GtkContainer is going away.

 gtk/gtktextview.c             |  2 +-
 gtk/gtktextviewchild.c        | 45 ++++++++-----------------------------------
 gtk/gtktextviewchildprivate.h | 11 +++++++++--
 3 files changed, 18 insertions(+), 40 deletions(-)
---
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index a3b8a45ba9..1dfae54ddc 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -4391,7 +4391,7 @@ gtk_text_view_set_gutter (GtkTextView       *text_view,
     return;
 
   new_child = GTK_TEXT_VIEW_CHILD (gtk_text_view_child_new (win));
-  gtk_container_add (GTK_CONTAINER (new_child), widget);
+  gtk_text_view_child_add (new_child, widget);
 
   *childp = g_object_ref (new_child);
   gtk_widget_set_parent (GTK_WIDGET (new_child), GTK_WIDGET (text_view));
diff --git a/gtk/gtktextviewchild.c b/gtk/gtktextviewchild.c
index a8a42278d1..5046a249b9 100644
--- a/gtk/gtktextviewchild.c
+++ b/gtk/gtktextviewchild.c
@@ -37,7 +37,7 @@ typedef struct
 
 struct _GtkTextViewChild
 {
-  GtkContainer       parent_instance;
+  GtkWidget          parent_instance;
   GtkTextWindowType  window_type;
   GQueue             overlays;
   int                xoffset;
@@ -51,7 +51,7 @@ enum {
   N_PROPS
 };
 
-G_DEFINE_TYPE (GtkTextViewChild, gtk_text_view_child, GTK_TYPE_CONTAINER)
+G_DEFINE_TYPE (GtkTextViewChild, gtk_text_view_child, GTK_TYPE_WIDGET)
 
 static GParamSpec *properties[N_PROPS];
 
@@ -107,12 +107,10 @@ gtk_text_view_child_get_overlay (GtkTextViewChild *self,
   return NULL;
 }
 
-static void
-gtk_text_view_child_add (GtkContainer *container,
-                         GtkWidget    *widget)
+void
+gtk_text_view_child_add (GtkTextViewChild *self,
+                         GtkWidget        *widget)
 {
-  GtkTextViewChild *self = GTK_TEXT_VIEW_CHILD (container);
-
   if (self->child != NULL)
     {
       g_warning ("%s allows a single child and already contains a %s",
@@ -125,12 +123,10 @@ gtk_text_view_child_add (GtkContainer *container,
   gtk_widget_set_parent (widget, GTK_WIDGET (self));
 }
 
-static void
-gtk_text_view_child_remove (GtkContainer *container,
-                            GtkWidget    *widget)
+void
+gtk_text_view_child_remove (GtkTextViewChild *self,
+                            GtkWidget        *widget)
 {
-  GtkTextViewChild *self = GTK_TEXT_VIEW_CHILD (container);
-
   if (widget == self->child)
     {
       self->child = NULL;
@@ -146,26 +142,6 @@ gtk_text_view_child_remove (GtkContainer *container,
     }
 }
 
-static void
-gtk_text_view_child_forall (GtkContainer *container,
-                            GtkCallback   callback,
-                            gpointer      callback_data)
-{
-  GtkTextViewChild *self = GTK_TEXT_VIEW_CHILD (container);
-  const GList *iter;
-
-  if (self->child != NULL)
-    callback (self->child, callback_data);
-
-  iter = self->overlays.head;
-  while (iter != NULL)
-    {
-      Overlay *overlay = iter->data;
-      iter = iter->next;
-      callback (overlay->widget, callback_data);
-    }
-}
-
 static void
 gtk_text_view_child_measure (GtkWidget      *widget,
                              GtkOrientation  orientation,
@@ -390,7 +366,6 @@ gtk_text_view_child_class_init (GtkTextViewChildClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-  GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
 
   object_class->dispose = gtk_text_view_child_dispose;
   object_class->constructed = gtk_text_view_child_constructed;
@@ -401,10 +376,6 @@ gtk_text_view_child_class_init (GtkTextViewChildClass *klass)
   widget_class->size_allocate = gtk_text_view_child_size_allocate;
   widget_class->snapshot = gtk_text_view_child_snapshot;
 
-  container_class->add = gtk_text_view_child_add;
-  container_class->remove = gtk_text_view_child_remove;
-  container_class->forall = gtk_text_view_child_forall;
-
   /**
    * GtkTextViewChild:window-type:
    *
diff --git a/gtk/gtktextviewchildprivate.h b/gtk/gtktextviewchildprivate.h
index a7396a48d3..ca6af116ce 100644
--- a/gtk/gtktextviewchildprivate.h
+++ b/gtk/gtktextviewchildprivate.h
@@ -18,18 +18,25 @@
 #ifndef __GTK_TEXT_VIEW_CHILD_PRIVATE_H__
 #define __GTK_TEXT_VIEW_CHILD_PRIVATE_H__
 
-#include <gtk/gtkcontainer.h>
+#include <gtk/gtkwidget.h>
 #include <gtk/gtktextview.h>
 
 #define GTK_TYPE_TEXT_VIEW_CHILD (gtk_text_view_child_get_type())
 
 G_GNUC_INTERNAL
-G_DECLARE_FINAL_TYPE (GtkTextViewChild, gtk_text_view_child, GTK, TEXT_VIEW_CHILD, GtkContainer)
+G_DECLARE_FINAL_TYPE (GtkTextViewChild, gtk_text_view_child, GTK, TEXT_VIEW_CHILD, GtkWidget)
 
 G_GNUC_INTERNAL
 GtkWidget         *gtk_text_view_child_new             (GtkTextWindowType  window_type);
 G_GNUC_INTERNAL
 GtkTextWindowType  gtk_text_view_child_get_window_type (GtkTextViewChild  *self);
+
+G_GNUC_INTERNAL
+void               gtk_text_view_child_add             (GtkTextViewChild  *self,
+                                                        GtkWidget         *widget);
+G_GNUC_INTERNAL
+void               gtk_text_view_child_remove          (GtkTextViewChild  *self,
+                                                        GtkWidget         *widget);
 G_GNUC_INTERNAL
 void               gtk_text_view_child_add_overlay     (GtkTextViewChild  *self,
                                                         GtkWidget         *widget,


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