[gtk+] stack: Use new private model, remove priv pointer



commit 06a808cf2ac58ae4e37e7b4e30391bc0df86a718
Author: Alexander Larsson <alexl redhat com>
Date:   Tue Jul 2 13:43:20 2013 +0200

    stack: Use new private model, remove priv pointer

 gtk/gtkstack.c |  118 ++++++++++++++++++++++++++++++--------------------------
 gtk/gtkstack.h |    2 -
 2 files changed, 63 insertions(+), 57 deletions(-)
---
diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c
index b481896..0be5b8d 100644
--- a/gtk/gtkstack.c
+++ b/gtk/gtkstack.c
@@ -94,7 +94,7 @@ struct _GtkStackChildInfo {
   gchar *icon_name;
 };
 
-struct _GtkStackPrivate {
+typedef struct {
   GList *children;
 
   GdkWindow* bin_window;
@@ -116,7 +116,7 @@ struct _GtkStackPrivate {
   gint64 end_time;
 
   GtkStackTransitionType active_transition_type;
-};
+} GtkStackPrivate;
 
 static void     gtk_stack_add                            (GtkContainer  *widget,
                                                           GtkWidget     *child);
@@ -172,13 +172,11 @@ static gint     get_bin_window_x                         (GtkStack      *stack,
 static gint     get_bin_window_y                         (GtkStack      *stack,
                                                           GtkAllocation *allocation);
 
-G_DEFINE_TYPE(GtkStack, gtk_stack, GTK_TYPE_CONTAINER);
+G_DEFINE_TYPE_WITH_PRIVATE(GtkStack, gtk_stack, GTK_TYPE_CONTAINER);
 
 static void
 gtk_stack_init (GtkStack *stack)
 {
-  stack->priv = G_TYPE_INSTANCE_GET_PRIVATE (stack, GTK_TYPE_STACK, GtkStackPrivate);
-
   gtk_widget_set_has_window ((GtkWidget*) stack, TRUE);
   gtk_widget_set_redraw_on_allocate ((GtkWidget*) stack, TRUE);
 }
@@ -187,7 +185,7 @@ static void
 gtk_stack_finalize (GObject *obj)
 {
   GtkStack *stack = GTK_STACK (obj);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   gtk_stack_unschedule_ticks (stack);
 
@@ -204,7 +202,7 @@ gtk_stack_get_property (GObject   *object,
                        GParamSpec *pspec)
 {
   GtkStack *stack = GTK_STACK (object);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   switch (property_id)
     {
@@ -264,7 +262,7 @@ static void
 gtk_stack_realize (GtkWidget *widget)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkAllocation allocation;
   GdkWindowAttr attributes = { 0 };
   GdkWindowAttributesType attributes_mask;
@@ -315,7 +313,7 @@ static void
 gtk_stack_unrealize (GtkWidget *widget)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   gtk_widget_unregister_window (widget, priv->bin_window);
   gdk_window_destroy (priv->bin_window);
@@ -418,8 +416,6 @@ gtk_stack_class_init (GtkStackClass *klass)
                       P_("The index of the child in the parent"),
                       -1, G_MAXINT, 0,
                       GTK_PARAM_READWRITE));
-
-  g_type_class_add_private (klass, sizeof (GtkStackPrivate));
 }
 
 /**
@@ -441,7 +437,7 @@ static GtkStackChildInfo *
 find_child_info_for_widget (GtkStack  *stack,
                             GtkWidget *child)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *info;
   GList *l;
 
@@ -460,15 +456,13 @@ reorder_child (GtkStack  *stack,
                GtkWidget *child,
                gint       position)
 {
-  GtkStackPrivate *priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GList *l;
   GList *old_link = NULL;
   GList *new_link = NULL;
   GtkStackChildInfo *child_info = NULL;
   gint num = 0;
 
-  priv = stack->priv;
-
   l = priv->children;
 
   /* Loop to find the old position and link of child, new link of child and
@@ -517,6 +511,7 @@ gtk_stack_get_child_property (GtkContainer *container,
                               GParamSpec   *pspec)
 {
   GtkStack *stack = GTK_STACK (container);
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *info;
   GList *list;
   guint i;
@@ -544,7 +539,7 @@ gtk_stack_get_child_property (GtkContainer *container,
 
     case CHILD_PROP_POSITION:
       i = 0;
-      for (list = stack->priv->children; list != NULL; list = g_list_next (list))
+      for (list = priv->children; list != NULL; list = g_list_next (list))
         {
           if (info == list->data)
             break;
@@ -567,7 +562,7 @@ gtk_stack_set_child_property (GtkContainer *container,
                               GParamSpec   *pspec)
 {
   GtkStack *stack = GTK_STACK (container);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *info;
   GtkStackChildInfo *info2;
   gchar *name;
@@ -640,7 +635,7 @@ static gint
 get_bin_window_x (GtkStack      *stack,
                   GtkAllocation *allocation)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   int x = 0;
 
   if (priv->transition_pos < 1.0)
@@ -658,7 +653,7 @@ static gint
 get_bin_window_y (GtkStack      *stack,
                   GtkAllocation *allocation)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   int y = 0;
 
   if (priv->transition_pos < 1.0)
@@ -676,7 +671,7 @@ static gboolean
 gtk_stack_set_transition_position (GtkStack *stack,
                                    gdouble   pos)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   gboolean done;
 
   priv->transition_pos = pos;
@@ -724,7 +719,7 @@ gtk_stack_transition_cb (GtkStack      *stack,
                          GdkFrameClock *frame_clock,
                          gpointer       user_data)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   gint64 now;
   gdouble t;
 
@@ -752,7 +747,7 @@ gtk_stack_transition_cb (GtkStack      *stack,
 static void
 gtk_stack_schedule_ticks (GtkStack *stack)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   if (priv->tick_id == 0)
     {
@@ -764,7 +759,7 @@ gtk_stack_schedule_ticks (GtkStack *stack)
 static void
 gtk_stack_unschedule_ticks (GtkStack *stack)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   if (priv->tick_id != 0)
     {
@@ -793,7 +788,7 @@ gtk_stack_start_transition (GtkStack               *stack,
                             GtkStackTransitionType  transition_type,
                             guint                   transition_duration)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkWidget *widget = GTK_WIDGET (stack);
   gboolean animations_enabled;
 
@@ -829,7 +824,7 @@ set_visible_child (GtkStack               *stack,
                    GtkStackTransitionType  transition_type,
                    guint                   transition_duration)
 {
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *info;
   GtkWidget *widget = GTK_WIDGET (stack);
   GList *l;
@@ -918,7 +913,7 @@ stack_child_visibility_notify_cb (GObject    *obj,
                                   gpointer    user_data)
 {
   GtkStack *stack = GTK_STACK (user_data);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkWidget *child = GTK_WIDGET (obj);
   GtkStackChildInfo *child_info;
 
@@ -998,7 +993,7 @@ gtk_stack_add (GtkContainer *container,
               GtkWidget     *child)
 {
   GtkStack *stack = GTK_STACK (container);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
 
   g_return_if_fail (child != NULL);
@@ -1034,7 +1029,7 @@ gtk_stack_remove (GtkContainer *container,
                   GtkWidget    *child)
 {
   GtkStack *stack = GTK_STACK (container);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
   gboolean was_visible;
 
@@ -1085,12 +1080,10 @@ void
 gtk_stack_set_homogeneous (GtkStack *stack,
                            gboolean  homogeneous)
 {
-  GtkStackPrivate *priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   g_return_if_fail (GTK_IS_STACK (stack));
 
-  priv = stack->priv;
-
   homogeneous = !!homogeneous;
 
   if (priv->homogeneous == homogeneous)
@@ -1118,9 +1111,11 @@ gtk_stack_set_homogeneous (GtkStack *stack,
 gboolean
 gtk_stack_get_homogeneous (GtkStack *stack)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
   g_return_val_if_fail (GTK_IS_STACK (stack), FALSE);
 
-  return stack->priv->homogeneous;
+  return priv->homogeneous;
 }
 
 /**
@@ -1137,9 +1132,11 @@ gtk_stack_get_homogeneous (GtkStack *stack)
 guint
 gtk_stack_get_transition_duration (GtkStack *stack)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
   g_return_val_if_fail (GTK_IS_STACK (stack), 0);
 
-  return stack->priv->transition_duration;
+  return priv->transition_duration;
 }
 
 /**
@@ -1156,9 +1153,11 @@ void
 gtk_stack_set_transition_duration (GtkStack *stack,
                                    guint     duration)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
   g_return_if_fail (GTK_IS_STACK (stack));
 
-  stack->priv->transition_duration = duration;
+  priv->transition_duration = duration;
   g_object_notify (G_OBJECT (stack), "transition-duration");
 }
 
@@ -1176,9 +1175,11 @@ gtk_stack_set_transition_duration (GtkStack *stack,
 GtkStackTransitionType
 gtk_stack_get_transition_type (GtkStack *stack)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
   g_return_val_if_fail (GTK_IS_STACK (stack), GTK_STACK_TRANSITION_TYPE_NONE);
 
-  return stack->priv->transition_type;
+  return priv->transition_type;
 }
 
 /**
@@ -1200,9 +1201,11 @@ void
 gtk_stack_set_transition_type (GtkStack              *stack,
                               GtkStackTransitionType  transition)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
   g_return_if_fail (GTK_IS_STACK (stack));
 
-  stack->priv->transition_type = transition;
+  priv->transition_type = transition;
   g_object_notify (G_OBJECT (stack), "transition-type");
 }
 
@@ -1220,9 +1223,11 @@ gtk_stack_set_transition_type (GtkStack              *stack,
 GtkWidget *
 gtk_stack_get_visible_child (GtkStack *stack)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
   g_return_val_if_fail (GTK_IS_STACK (stack), NULL);
 
-  return stack->priv->visible_child ? stack->priv->visible_child->widget : NULL;
+  return priv->visible_child ? priv->visible_child->widget : NULL;
 }
 
 /**
@@ -1239,10 +1244,12 @@ gtk_stack_get_visible_child (GtkStack *stack)
 const gchar *
 gtk_stack_get_visible_child_name (GtkStack *stack)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
   g_return_val_if_fail (GTK_IS_STACK (stack), NULL);
 
-  if (stack->priv->visible_child)
-    return stack->priv->visible_child->name;
+  if (priv->visible_child)
+    return priv->visible_child->name;
 
   return NULL;
 }
@@ -1265,6 +1272,7 @@ void
 gtk_stack_set_visible_child (GtkStack  *stack,
                              GtkWidget *child)
 {
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
 
   g_return_if_fail (GTK_IS_STACK (stack));
@@ -1276,8 +1284,8 @@ gtk_stack_set_visible_child (GtkStack  *stack,
 
   if (gtk_widget_get_visible (child_info->widget))
     set_visible_child (stack, child_info,
-                       stack->priv->transition_type,
-                       stack->priv->transition_duration);
+                       priv->transition_type,
+                       priv->transition_duration);
 }
 
 /**
@@ -1298,7 +1306,9 @@ void
 gtk_stack_set_visible_child_name (GtkStack   *stack,
                                  const gchar *name)
 {
-  gtk_stack_set_visible_child_full (stack, name, stack->priv->transition_type);
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
+  gtk_stack_set_visible_child_full (stack, name, priv->transition_type);
 }
 
 /**
@@ -1316,15 +1326,13 @@ gtk_stack_set_visible_child_full (GtkStack               *stack,
                                   const gchar            *name,
                                   GtkStackTransitionType  transition)
 {
-  GtkStackPrivate *priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info, *info;
   GList *l;
 
   g_return_if_fail (GTK_IS_STACK (stack));
   g_return_if_fail (name != NULL);
 
-  priv = stack->priv;
-
   child_info = NULL;
   for (l = priv->children; l != NULL; l = l->next)
     {
@@ -1348,7 +1356,7 @@ gtk_stack_forall (GtkContainer *container,
                   gpointer      callback_data)
 {
   GtkStack *stack = GTK_STACK (container);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
   GList *l;
 
@@ -1368,7 +1376,7 @@ gtk_stack_compute_expand (GtkWidget *widget,
                           gboolean  *vexpand_p)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   gboolean hexpand, vexpand;
   GtkStackChildInfo *child_info;
   GtkWidget *child;
@@ -1402,7 +1410,7 @@ gtk_stack_draw_crossfade (GtkWidget *widget,
                           cairo_t   *cr)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   if (priv->last_visible_surface)
     {
@@ -1428,7 +1436,7 @@ gtk_stack_draw_slide (GtkWidget *widget,
                       cairo_t   *cr)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkAllocation allocation;
   gint x = 0;
   gint y = 0;
@@ -1470,7 +1478,7 @@ gtk_stack_draw (GtkWidget *widget,
                 cairo_t   *cr)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   cairo_t *pattern_cr;
 
   if (priv->visible_child)
@@ -1526,7 +1534,7 @@ gtk_stack_size_allocate (GtkWidget     *widget,
                          GtkAllocation *allocation)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkAllocation child_allocation;
 
   g_return_if_fail (allocation != NULL);
@@ -1560,7 +1568,7 @@ gtk_stack_get_preferred_height (GtkWidget *widget,
                                 gint      *natural_height)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
   GtkWidget *child;
   gint child_min, child_nat;
@@ -1601,7 +1609,7 @@ gtk_stack_get_preferred_height_for_width (GtkWidget *widget,
                                           gint      *natural_height)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
   GtkWidget *child;
   gint child_min, child_nat;
@@ -1641,7 +1649,7 @@ gtk_stack_get_preferred_width (GtkWidget *widget,
                                gint      *natural_width)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
   GtkWidget *child;
   gint child_min, child_nat;
@@ -1682,7 +1690,7 @@ gtk_stack_get_preferred_width_for_height (GtkWidget *widget,
                                           gint      *natural_width)
 {
   GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = stack->priv;
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
   GtkStackChildInfo *child_info;
   GtkWidget *child;
   gint child_min, child_nat;
diff --git a/gtk/gtkstack.h b/gtk/gtkstack.h
index baff1cd..77d7337 100644
--- a/gtk/gtkstack.h
+++ b/gtk/gtkstack.h
@@ -36,7 +36,6 @@ G_BEGIN_DECLS
 
 typedef struct _GtkStack GtkStack;
 typedef struct _GtkStackClass GtkStackClass;
-typedef struct _GtkStackPrivate GtkStackPrivate;
 
 typedef enum {
   GTK_STACK_TRANSITION_TYPE_NONE,
@@ -51,7 +50,6 @@ typedef enum {
 
 struct _GtkStack {
   GtkContainer parent_instance;
-  GtkStackPrivate *priv;
 };
 
 struct _GtkStackClass {


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