[gtk/matthiasc/for-master: 15/15] stackswitcher: Drop the Private struct



commit dc99a7aa61386623a7fa58041b6f3d7d6e824147
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Apr 26 15:48:46 2020 -0400

    stackswitcher: Drop the Private struct

 gtk/gtkstackswitcher.c | 87 +++++++++++++++++---------------------------------
 1 file changed, 30 insertions(+), 57 deletions(-)
---
diff --git a/gtk/gtkstackswitcher.c b/gtk/gtkstackswitcher.c
index 9e0a771f44..3098ffc38c 100644
--- a/gtk/gtkstackswitcher.c
+++ b/gtk/gtkstackswitcher.c
@@ -68,11 +68,14 @@
 #define TIMEOUT_EXPAND 500
 
 typedef struct _GtkStackSwitcherClass   GtkStackSwitcherClass;
-typedef struct _GtkStackSwitcherPrivate GtkStackSwitcherPrivate;
 
 struct _GtkStackSwitcher
 {
   GtkWidget parent_instance;
+
+  GtkStack *stack;
+  GtkSelectionModel *pages;
+  GHashTable *buttons;
 };
 
 struct _GtkStackSwitcherClass
@@ -80,26 +83,17 @@ struct _GtkStackSwitcherClass
   GtkWidgetClass parent_class;
 };
 
-struct _GtkStackSwitcherPrivate
-{
-  GtkStack *stack;
-  GtkSelectionModel *pages;
-  GHashTable *buttons;
-};
-
 enum {
   PROP_0,
   PROP_STACK
 };
 
-G_DEFINE_TYPE_WITH_PRIVATE (GtkStackSwitcher, gtk_stack_switcher, GTK_TYPE_WIDGET)
+G_DEFINE_TYPE (GtkStackSwitcher, gtk_stack_switcher, GTK_TYPE_WIDGET)
 
 static void
 gtk_stack_switcher_init (GtkStackSwitcher *switcher)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
-  priv->buttons = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
+  switcher->buttons = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
 
   gtk_widget_add_css_class (GTK_WIDGET (switcher), "linked");
 }
@@ -109,7 +103,6 @@ on_button_toggled (GtkWidget        *button,
                    GParamSpec       *pspec,
                    GtkStackSwitcher *self)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
   gboolean active;
   guint index;
 
@@ -118,11 +111,11 @@ on_button_toggled (GtkWidget        *button,
 
   if (active)
     {
-      gtk_selection_model_select_item (priv->pages, index, TRUE);
+      gtk_selection_model_select_item (self->pages, index, TRUE);
     }
   else
     {
-      gboolean selected = gtk_selection_model_is_selected (priv->pages, index);
+      gboolean selected = gtk_selection_model_is_selected (self->pages, index);
       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected);
     }
 }
@@ -201,10 +194,9 @@ on_page_updated (GtkStackPage     *page,
                  GParamSpec       *pspec,
                  GtkStackSwitcher *self)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
   GtkWidget *button;
 
-  button = g_hash_table_lookup (priv->buttons, page);
+  button = g_hash_table_lookup (self->buttons, page);
   update_button (self, page, button);
 }
 
@@ -255,7 +247,6 @@ static void
 add_child (guint             position,
            GtkStackSwitcher *self)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
   GtkWidget *button;
   gboolean selected;
   GtkStackPage *page;
@@ -269,19 +260,19 @@ add_child (guint             position,
   g_signal_connect (controller, "leave", G_CALLBACK (gtk_stack_switcher_drag_leave), NULL);
   gtk_widget_add_controller (button, controller);
 
-  page = g_list_model_get_item (G_LIST_MODEL (priv->pages), position);
+  page = g_list_model_get_item (G_LIST_MODEL (self->pages), position);
   update_button (self, page, button);
 
   gtk_widget_set_parent (button, GTK_WIDGET (self));
 
   g_object_set_data (G_OBJECT (button), "child-index", GUINT_TO_POINTER (position));
-  selected = gtk_selection_model_is_selected (priv->pages, position);
+  selected = gtk_selection_model_is_selected (self->pages, position);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected);
 
   g_signal_connect (button, "notify::active", G_CALLBACK (on_button_toggled), self);
   g_signal_connect (page, "notify", G_CALLBACK (on_page_updated), self);
 
-  g_hash_table_insert (priv->buttons, g_object_ref (page), button);
+  g_hash_table_insert (self->buttons, g_object_ref (page), button);
 
   g_object_unref (page);
 }
@@ -289,22 +280,20 @@ add_child (guint             position,
 static void
 populate_switcher (GtkStackSwitcher *self)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
   guint i;
 
-  for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (priv->pages)); i++)
+  for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (self->pages)); i++)
     add_child (i, self);
 }
 
 static void
 clear_switcher (GtkStackSwitcher *self)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
   GHashTableIter iter;
   GtkWidget *page;
   GtkWidget *button;
 
-  g_hash_table_iter_init (&iter, priv->buttons);
+  g_hash_table_iter_init (&iter, self->buttons);
   while (g_hash_table_iter_next (&iter, (gpointer *)&page, (gpointer *)&button))
     {
       gtk_widget_unparent (button);
@@ -330,7 +319,6 @@ selection_changed_cb (GtkSelectionModel *model,
                       guint              n_items,
                       GtkStackSwitcher  *switcher)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
   guint i;
 
   for (i = position; i < position + n_items; i++)
@@ -339,11 +327,11 @@ selection_changed_cb (GtkSelectionModel *model,
       GtkWidget *button;
       gboolean selected;
 
-      page = g_list_model_get_item (G_LIST_MODEL (priv->pages), i);
-      button = g_hash_table_lookup (priv->buttons, page);
+      page = g_list_model_get_item (G_LIST_MODEL (switcher->pages), i);
+      button = g_hash_table_lookup (switcher->buttons, page);
       if (button)
         {
-          selected = gtk_selection_model_is_selected (priv->pages, i);
+          selected = gtk_selection_model_is_selected (switcher->pages, i);
           gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected);
         }
       g_object_unref (page);
@@ -353,31 +341,25 @@ selection_changed_cb (GtkSelectionModel *model,
 static void
 disconnect_stack_signals (GtkStackSwitcher *switcher)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
-  g_signal_handlers_disconnect_by_func (priv->pages, items_changed_cb, switcher);
-  g_signal_handlers_disconnect_by_func (priv->pages, selection_changed_cb, switcher);
+  g_signal_handlers_disconnect_by_func (switcher->pages, items_changed_cb, switcher);
+  g_signal_handlers_disconnect_by_func (switcher->pages, selection_changed_cb, switcher);
 }
 
 static void
 connect_stack_signals (GtkStackSwitcher *switcher)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
-  g_signal_connect (priv->pages, "items-changed", G_CALLBACK (items_changed_cb), switcher);
-  g_signal_connect (priv->pages, "selection-changed", G_CALLBACK (selection_changed_cb), switcher);
+  g_signal_connect (switcher->pages, "items-changed", G_CALLBACK (items_changed_cb), switcher);
+  g_signal_connect (switcher->pages, "selection-changed", G_CALLBACK (selection_changed_cb), switcher);
 }
 
 static void
 set_stack (GtkStackSwitcher *switcher,
            GtkStack         *stack)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
   if (stack)
     {
-      priv->stack = g_object_ref (stack);
-      priv->pages = gtk_stack_get_pages (stack);
+      switcher->stack = g_object_ref (stack);
+      switcher->pages = gtk_stack_get_pages (stack);
       populate_switcher (switcher);
       connect_stack_signals (switcher);
     }
@@ -386,14 +368,12 @@ set_stack (GtkStackSwitcher *switcher,
 static void
 unset_stack (GtkStackSwitcher *switcher)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
-  if (priv->stack)
+  if (switcher->stack)
     {
       disconnect_stack_signals (switcher);
       clear_switcher (switcher);
-      g_clear_object (&priv->stack);
-      g_clear_object (&priv->pages);
+      g_clear_object (&switcher->stack);
+      g_clear_object (&switcher->pages);
     }
 }
 
@@ -408,12 +388,10 @@ void
 gtk_stack_switcher_set_stack (GtkStackSwitcher *switcher,
                               GtkStack         *stack)
 {
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
   g_return_if_fail (GTK_IS_STACK_SWITCHER (switcher));
   g_return_if_fail (GTK_IS_STACK (stack) || stack == NULL);
 
-  if (priv->stack == stack)
+  if (switcher->stack == stack)
     return;
 
   unset_stack (switcher);
@@ -437,11 +415,9 @@ gtk_stack_switcher_set_stack (GtkStackSwitcher *switcher,
 GtkStack *
 gtk_stack_switcher_get_stack (GtkStackSwitcher *switcher)
 {
-  GtkStackSwitcherPrivate *priv;
   g_return_val_if_fail (GTK_IS_STACK_SWITCHER (switcher), NULL);
 
-  priv = gtk_stack_switcher_get_instance_private (switcher);
-  return priv->stack;
+  return switcher->stack;
 }
 
 static void
@@ -451,13 +427,11 @@ gtk_stack_switcher_get_property (GObject      *object,
                                  GParamSpec   *pspec)
 {
   GtkStackSwitcher *switcher = GTK_STACK_SWITCHER (object);
-  GtkStackSwitcherPrivate *priv;
 
-  priv = gtk_stack_switcher_get_instance_private (switcher);
   switch (prop_id)
     {
     case PROP_STACK:
-      g_value_set_object (value, priv->stack);
+      g_value_set_object (value, switcher->stack);
       break;
 
     default:
@@ -500,9 +474,8 @@ static void
 gtk_stack_switcher_finalize (GObject *object)
 {
   GtkStackSwitcher *switcher = GTK_STACK_SWITCHER (object);
-  GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
 
-  g_hash_table_destroy (priv->buttons);
+  g_hash_table_destroy (switcher->buttons);
 
   G_OBJECT_CLASS (gtk_stack_switcher_parent_class)->finalize (object);
 }


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