stack: Use new private model, remove priv pointer
This commit is contained in:
parent
09d22284f7
commit
06a808cf2a
118
gtk/gtkstack.c
118
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;
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user