[gtk+/refactor: 68/106] GtkLayout: move public members to private structure
- From: Javier Jardón <jjardon src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/refactor: 68/106] GtkLayout: move public members to private structure
- Date: Tue, 13 Jul 2010 17:35:43 +0000 (UTC)
commit d4c4541b347682144c54d5cb47dacbfceb94f231
Author: Javier Jardón <jjardon gnome org>
Date: Mon Jun 28 04:22:50 2010 +0200
GtkLayout: move public members to private structure
gtk/gtklayout.c | 293 +++++++++++++++++++++++++++++++++---------------------
gtk/gtklayout.h | 22 +----
2 files changed, 183 insertions(+), 132 deletions(-)
---
diff --git a/gtk/gtklayout.c b/gtk/gtklayout.c
index deb4206..fb87768 100644
--- a/gtk/gtklayout.c
+++ b/gtk/gtklayout.c
@@ -39,6 +39,27 @@
typedef struct _GtkLayoutChild GtkLayoutChild;
+struct _GtkLayoutPriv
+{
+ /* Properties */
+ guint width;
+ guint height;
+
+ GtkAdjustment *hadjustment;
+ GtkAdjustment *vadjustment;
+ /* Properties */
+
+ GdkVisibilityState visibility;
+ GdkWindow *bin_window;
+
+ GList *children;
+
+ gint scroll_x;
+ gint scroll_y;
+
+ guint freeze_count;
+};
+
struct _GtkLayoutChild {
GtkWidget *widget;
gint x;
@@ -157,7 +178,7 @@ gtk_layout_get_bin_window (GtkLayout *layout)
{
g_return_val_if_fail (GTK_IS_LAYOUT (layout), NULL);
- return layout->bin_window;
+ return layout->priv->bin_window;
}
/**
@@ -178,7 +199,7 @@ gtk_layout_get_hadjustment (GtkLayout *layout)
{
g_return_val_if_fail (GTK_IS_LAYOUT (layout), NULL);
- return layout->hadjustment;
+ return layout->priv->hadjustment;
}
/**
* gtk_layout_get_vadjustment:
@@ -198,7 +219,7 @@ gtk_layout_get_vadjustment (GtkLayout *layout)
{
g_return_val_if_fail (GTK_IS_LAYOUT (layout), NULL);
- return layout->vadjustment;
+ return layout->priv->vadjustment;
}
static GtkAdjustment *
@@ -212,54 +233,53 @@ gtk_layout_set_adjustments (GtkLayout *layout,
GtkAdjustment *hadj,
GtkAdjustment *vadj)
{
+ GtkLayoutPriv *priv = layout->priv;
gboolean need_adjust = FALSE;
- g_return_if_fail (GTK_IS_LAYOUT (layout));
-
if (hadj)
g_return_if_fail (GTK_IS_ADJUSTMENT (hadj));
- else if (layout->hadjustment)
+ else if (priv->hadjustment)
hadj = new_default_adjustment ();
if (vadj)
g_return_if_fail (GTK_IS_ADJUSTMENT (vadj));
- else if (layout->vadjustment)
+ else if (priv->vadjustment)
vadj = new_default_adjustment ();
-
- if (layout->hadjustment && (layout->hadjustment != hadj))
+
+ if (priv->hadjustment && (priv->hadjustment != hadj))
{
- g_signal_handlers_disconnect_by_func (layout->hadjustment,
+ g_signal_handlers_disconnect_by_func (priv->hadjustment,
gtk_layout_adjustment_changed,
layout);
- g_object_unref (layout->hadjustment);
+ g_object_unref (priv->hadjustment);
}
-
- if (layout->vadjustment && (layout->vadjustment != vadj))
+
+ if (priv->vadjustment && (priv->vadjustment != vadj))
{
- g_signal_handlers_disconnect_by_func (layout->vadjustment,
+ g_signal_handlers_disconnect_by_func (priv->vadjustment,
gtk_layout_adjustment_changed,
layout);
- g_object_unref (layout->vadjustment);
+ g_object_unref (priv->vadjustment);
}
-
- if (layout->hadjustment != hadj)
+
+ if (priv->hadjustment != hadj)
{
- layout->hadjustment = hadj;
- g_object_ref_sink (layout->hadjustment);
- gtk_layout_set_adjustment_upper (layout->hadjustment, layout->width, FALSE);
-
- g_signal_connect (layout->hadjustment, "value-changed",
+ priv->hadjustment = hadj;
+ g_object_ref_sink (priv->hadjustment);
+ gtk_layout_set_adjustment_upper (priv->hadjustment, priv->width, FALSE);
+
+ g_signal_connect (priv->hadjustment, "value-changed",
G_CALLBACK (gtk_layout_adjustment_changed),
layout);
need_adjust = TRUE;
}
-
- if (layout->vadjustment != vadj)
+
+ if (priv->vadjustment != vadj)
{
- layout->vadjustment = vadj;
- g_object_ref_sink (layout->vadjustment);
- gtk_layout_set_adjustment_upper (layout->vadjustment, layout->height, FALSE);
-
- g_signal_connect (layout->vadjustment, "value-changed",
+ priv->vadjustment = vadj;
+ g_object_ref_sink (priv->vadjustment);
+ gtk_layout_set_adjustment_upper (priv->vadjustment, priv->height, FALSE);
+
+ g_signal_connect (priv->vadjustment, "value-changed",
G_CALLBACK (gtk_layout_adjustment_changed),
layout);
need_adjust = TRUE;
@@ -275,9 +295,10 @@ static void
gtk_layout_finalize (GObject *object)
{
GtkLayout *layout = GTK_LAYOUT (object);
+ GtkLayoutPriv *priv = layout->priv;
- g_object_unref (layout->hadjustment);
- g_object_unref (layout->vadjustment);
+ g_object_unref (priv->hadjustment);
+ g_object_unref (priv->vadjustment);
G_OBJECT_CLASS (gtk_layout_parent_class)->finalize (object);
}
@@ -296,9 +317,13 @@ void
gtk_layout_set_hadjustment (GtkLayout *layout,
GtkAdjustment *adjustment)
{
+ GtkLayoutPriv *priv;
+
g_return_if_fail (GTK_IS_LAYOUT (layout));
- gtk_layout_set_adjustments (layout, adjustment, layout->vadjustment);
+ priv = layout->priv;
+
+ gtk_layout_set_adjustments (layout, adjustment, priv->vadjustment);
g_object_notify (G_OBJECT (layout), "hadjustment");
}
@@ -316,9 +341,13 @@ void
gtk_layout_set_vadjustment (GtkLayout *layout,
GtkAdjustment *adjustment)
{
+ GtkLayoutPriv *priv;
+
g_return_if_fail (GTK_IS_LAYOUT (layout));
-
- gtk_layout_set_adjustments (layout, layout->hadjustment, adjustment);
+
+ priv = layout->priv;
+
+ gtk_layout_set_adjustments (layout, priv->hadjustment, adjustment);
g_object_notify (G_OBJECT (layout), "vadjustment");
}
@@ -326,9 +355,10 @@ static GtkLayoutChild*
get_child (GtkLayout *layout,
GtkWidget *widget)
{
+ GtkLayoutPriv *priv = layout->priv;
GList *children;
-
- children = layout->children;
+
+ children = priv->children;
while (children)
{
GtkLayoutChild *child;
@@ -360,21 +390,24 @@ gtk_layout_put (GtkLayout *layout,
gint x,
gint y)
{
+ GtkLayoutPriv *priv;
GtkLayoutChild *child;
g_return_if_fail (GTK_IS_LAYOUT (layout));
g_return_if_fail (GTK_IS_WIDGET (child_widget));
-
+
+ priv = layout->priv;
+
child = g_new (GtkLayoutChild, 1);
child->widget = child_widget;
child->x = x;
child->y = y;
- layout->children = g_list_append (layout->children, child);
-
+ priv->children = g_list_append (priv->children, child);
+
if (gtk_widget_get_realized (GTK_WIDGET (layout)))
- gtk_widget_set_parent_window (child->widget, layout->bin_window);
+ gtk_widget_set_parent_window (child->widget, priv->bin_window);
gtk_widget_set_parent (child_widget, GTK_WIDGET (layout));
}
@@ -479,35 +512,37 @@ gtk_layout_set_size (GtkLayout *layout,
guint width,
guint height)
{
+ GtkLayoutPriv *priv;
GtkWidget *widget;
-
+
g_return_if_fail (GTK_IS_LAYOUT (layout));
-
+
+ priv = layout->priv;
widget = GTK_WIDGET (layout);
-
+
g_object_freeze_notify (G_OBJECT (layout));
- if (width != layout->width)
+ if (width != priv->width)
{
- layout->width = width;
+ priv->width = width;
g_object_notify (G_OBJECT (layout), "width");
}
- if (height != layout->height)
+ if (height != priv->height)
{
- layout->height = height;
+ priv->height = height;
g_object_notify (G_OBJECT (layout), "height");
}
g_object_thaw_notify (G_OBJECT (layout));
- if (layout->hadjustment)
- gtk_layout_set_adjustment_upper (layout->hadjustment, layout->width, FALSE);
- if (layout->vadjustment)
- gtk_layout_set_adjustment_upper (layout->vadjustment, layout->height, FALSE);
+ if (priv->hadjustment)
+ gtk_layout_set_adjustment_upper (priv->hadjustment, priv->width, FALSE);
+ if (priv->vadjustment)
+ gtk_layout_set_adjustment_upper (priv->vadjustment, priv->height, FALSE);
if (gtk_widget_get_realized (widget))
{
width = MAX (width, widget->allocation.width);
height = MAX (height, widget->allocation.height);
- gdk_window_resize (layout->bin_window, width, height);
+ gdk_window_resize (priv->bin_window, width, height);
}
}
@@ -526,12 +561,16 @@ gtk_layout_get_size (GtkLayout *layout,
guint *width,
guint *height)
{
+ GtkLayoutPriv *priv;
+
g_return_if_fail (GTK_IS_LAYOUT (layout));
+ priv = layout->priv;
+
if (width)
- *width = layout->width;
+ *width = priv->width;
if (height)
- *height = layout->height;
+ *height = priv->height;
}
/* Basic Object handling procedures
@@ -642,6 +681,8 @@ gtk_layout_class_init (GtkLayoutClass *class)
G_TYPE_NONE, 2,
GTK_TYPE_ADJUSTMENT,
GTK_TYPE_ADJUSTMENT);
+
+ g_type_class_add_private (class, sizeof (GtkLayoutPriv));
}
static void
@@ -651,20 +692,21 @@ gtk_layout_get_property (GObject *object,
GParamSpec *pspec)
{
GtkLayout *layout = GTK_LAYOUT (object);
-
+ GtkLayoutPriv *priv = layout->priv;
+
switch (prop_id)
{
case PROP_HADJUSTMENT:
- g_value_set_object (value, layout->hadjustment);
+ g_value_set_object (value, priv->hadjustment);
break;
case PROP_VADJUSTMENT:
- g_value_set_object (value, layout->vadjustment);
+ g_value_set_object (value, priv->vadjustment);
break;
case PROP_WIDTH:
- g_value_set_uint (value, layout->width);
+ g_value_set_uint (value, priv->width);
break;
case PROP_HEIGHT:
- g_value_set_uint (value, layout->height);
+ g_value_set_uint (value, priv->height);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -679,7 +721,8 @@ gtk_layout_set_property (GObject *object,
GParamSpec *pspec)
{
GtkLayout *layout = GTK_LAYOUT (object);
-
+ GtkLayoutPriv *priv = layout->priv;
+
switch (prop_id)
{
case PROP_HADJUSTMENT:
@@ -692,10 +735,10 @@ gtk_layout_set_property (GObject *object,
break;
case PROP_WIDTH:
gtk_layout_set_size (layout, g_value_get_uint (value),
- layout->height);
+ priv->height);
break;
case PROP_HEIGHT:
- gtk_layout_set_size (layout, layout->width,
+ gtk_layout_set_size (layout, priv->width,
g_value_get_uint (value));
break;
default:
@@ -759,21 +802,28 @@ gtk_layout_get_child_property (GtkContainer *container,
static void
gtk_layout_init (GtkLayout *layout)
{
- layout->children = NULL;
+ GtkLayoutPriv *priv;
- layout->width = 100;
- layout->height = 100;
+ layout->priv = G_TYPE_INSTANCE_GET_PRIVATE (layout,
+ GTK_TYPE_LAYOUT,
+ GtkLayoutPriv);
+ priv = layout->priv;
- layout->hadjustment = NULL;
- layout->vadjustment = NULL;
+ priv->children = NULL;
- layout->bin_window = NULL;
+ priv->width = 100;
+ priv->height = 100;
- layout->scroll_x = 0;
- layout->scroll_y = 0;
- layout->visibility = GDK_VISIBILITY_PARTIAL;
+ priv->hadjustment = NULL;
+ priv->vadjustment = NULL;
- layout->freeze_count = 0;
+ priv->bin_window = NULL;
+
+ priv->scroll_x = 0;
+ priv->scroll_y = 0;
+ priv->visibility = GDK_VISIBILITY_PARTIAL;
+
+ priv->freeze_count = 0;
}
static GObject *
@@ -781,6 +831,7 @@ gtk_layout_constructor (GType type,
guint n_properties,
GObjectConstructParam *properties)
{
+ GtkLayoutPriv *priv;
GtkLayout *layout;
GObject *object;
GtkAdjustment *hadj, *vadj;
@@ -790,11 +841,12 @@ gtk_layout_constructor (GType type,
properties);
layout = GTK_LAYOUT (object);
+ priv = layout->priv;
- hadj = layout->hadjustment ? layout->hadjustment : new_default_adjustment ();
- vadj = layout->vadjustment ? layout->vadjustment : new_default_adjustment ();
+ hadj = priv->hadjustment ? priv->hadjustment : new_default_adjustment ();
+ vadj = priv->vadjustment ? priv->vadjustment : new_default_adjustment ();
- if (!layout->hadjustment || !layout->vadjustment)
+ if (!priv->hadjustment || !priv->vadjustment)
gtk_layout_set_adjustments (layout, hadj, vadj);
return object;
@@ -807,6 +859,7 @@ static void
gtk_layout_realize (GtkWidget *widget)
{
GtkLayout *layout = GTK_LAYOUT (widget);
+ GtkLayoutPriv *priv = layout->priv;
GList *tmp_list;
GdkWindowAttr attributes;
gint attributes_mask;
@@ -830,27 +883,27 @@ gtk_layout_realize (GtkWidget *widget)
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
gdk_window_set_user_data (widget->window, widget);
- attributes.x = - layout->hadjustment->value,
- attributes.y = - layout->vadjustment->value;
- attributes.width = MAX (layout->width, widget->allocation.width);
- attributes.height = MAX (layout->height, widget->allocation.height);
+ attributes.x = - priv->hadjustment->value,
+ attributes.y = - priv->vadjustment->value;
+ attributes.width = MAX (priv->width, widget->allocation.width);
+ attributes.height = MAX (priv->height, widget->allocation.height);
attributes.event_mask = GDK_EXPOSURE_MASK | GDK_SCROLL_MASK |
gtk_widget_get_events (widget);
- layout->bin_window = gdk_window_new (widget->window,
+ priv->bin_window = gdk_window_new (widget->window,
&attributes, attributes_mask);
- gdk_window_set_user_data (layout->bin_window, widget);
+ gdk_window_set_user_data (priv->bin_window, widget);
widget->style = gtk_style_attach (widget->style, widget->window);
- gtk_style_set_background (widget->style, layout->bin_window, GTK_STATE_NORMAL);
+ gtk_style_set_background (widget->style, priv->bin_window, GTK_STATE_NORMAL);
- tmp_list = layout->children;
+ tmp_list = priv->children;
while (tmp_list)
{
GtkLayoutChild *child = tmp_list->data;
tmp_list = tmp_list->next;
- gtk_widget_set_parent_window (child->widget, layout->bin_window);
+ gtk_widget_set_parent_window (child->widget, priv->bin_window);
}
}
@@ -858,11 +911,14 @@ static void
gtk_layout_style_set (GtkWidget *widget,
GtkStyle *old_style)
{
+ GtkLayoutPriv *priv;
+
GTK_WIDGET_CLASS (gtk_layout_parent_class)->style_set (widget, old_style);
if (gtk_widget_get_realized (widget))
{
- gtk_style_set_background (widget->style, GTK_LAYOUT (widget)->bin_window, GTK_STATE_NORMAL);
+ priv = GTK_LAYOUT (widget)->priv;
+ gtk_style_set_background (widget->style, priv->bin_window, GTK_STATE_NORMAL);
}
}
@@ -870,11 +926,12 @@ static void
gtk_layout_map (GtkWidget *widget)
{
GtkLayout *layout = GTK_LAYOUT (widget);
+ GtkLayoutPriv *priv = layout->priv;
GList *tmp_list;
gtk_widget_set_mapped (widget, TRUE);
- tmp_list = layout->children;
+ tmp_list = priv->children;
while (tmp_list)
{
GtkLayoutChild *child = tmp_list->data;
@@ -887,7 +944,7 @@ gtk_layout_map (GtkWidget *widget)
}
}
- gdk_window_show (layout->bin_window);
+ gdk_window_show (priv->bin_window);
gdk_window_show (widget->window);
}
@@ -895,10 +952,11 @@ static void
gtk_layout_unrealize (GtkWidget *widget)
{
GtkLayout *layout = GTK_LAYOUT (widget);
+ GtkLayoutPriv *priv = layout->priv;
- gdk_window_set_user_data (layout->bin_window, NULL);
- gdk_window_destroy (layout->bin_window);
- layout->bin_window = NULL;
+ gdk_window_set_user_data (priv->bin_window, NULL);
+ gdk_window_destroy (priv->bin_window);
+ priv->bin_window = NULL;
GTK_WIDGET_CLASS (gtk_layout_parent_class)->unrealize (widget);
}
@@ -908,12 +966,13 @@ gtk_layout_size_request (GtkWidget *widget,
GtkRequisition *requisition)
{
GtkLayout *layout = GTK_LAYOUT (widget);
+ GtkLayoutPriv *priv = layout->priv;
GList *tmp_list;
requisition->width = 0;
requisition->height = 0;
- tmp_list = layout->children;
+ tmp_list = priv->children;
while (tmp_list)
{
@@ -931,11 +990,12 @@ gtk_layout_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
GtkLayout *layout = GTK_LAYOUT (widget);
+ GtkLayoutPriv *priv = layout->priv;
GList *tmp_list;
widget->allocation = *allocation;
- tmp_list = layout->children;
+ tmp_list = priv->children;
while (tmp_list)
{
@@ -951,22 +1011,22 @@ gtk_layout_size_allocate (GtkWidget *widget,
allocation->x, allocation->y,
allocation->width, allocation->height);
- gdk_window_resize (layout->bin_window,
- MAX (layout->width, allocation->width),
- MAX (layout->height, allocation->height));
+ gdk_window_resize (priv->bin_window,
+ MAX (priv->width, allocation->width),
+ MAX (priv->height, allocation->height));
}
- layout->hadjustment->page_size = allocation->width;
- layout->hadjustment->page_increment = allocation->width * 0.9;
- layout->hadjustment->lower = 0;
+ priv->hadjustment->page_size = allocation->width;
+ priv->hadjustment->page_increment = allocation->width * 0.9;
+ priv->hadjustment->lower = 0;
/* set_adjustment_upper() emits ::changed */
- gtk_layout_set_adjustment_upper (layout->hadjustment, MAX (allocation->width, layout->width), TRUE);
+ gtk_layout_set_adjustment_upper (priv->hadjustment, MAX (allocation->width, priv->width), TRUE);
- layout->vadjustment->page_size = allocation->height;
- layout->vadjustment->page_increment = allocation->height * 0.9;
- layout->vadjustment->lower = 0;
- layout->vadjustment->upper = MAX (allocation->height, layout->height);
- gtk_layout_set_adjustment_upper (layout->vadjustment, MAX (allocation->height, layout->height), TRUE);
+ priv->vadjustment->page_size = allocation->height;
+ priv->vadjustment->page_increment = allocation->height * 0.9;
+ priv->vadjustment->lower = 0;
+ priv->vadjustment->upper = MAX (allocation->height, priv->height);
+ gtk_layout_set_adjustment_upper (priv->vadjustment, MAX (allocation->height, priv->height), TRUE);
}
static gint
@@ -974,8 +1034,9 @@ gtk_layout_expose (GtkWidget *widget,
GdkEventExpose *event)
{
GtkLayout *layout = GTK_LAYOUT (widget);
+ GtkLayoutPriv *priv = layout->priv;
- if (event->window != layout->bin_window)
+ if (event->window != priv->bin_window)
return FALSE;
GTK_WIDGET_CLASS (gtk_layout_parent_class)->expose_event (widget, event);
@@ -997,10 +1058,11 @@ gtk_layout_remove (GtkContainer *container,
GtkWidget *widget)
{
GtkLayout *layout = GTK_LAYOUT (container);
+ GtkLayoutPriv *priv = layout->priv;
GList *tmp_list;
GtkLayoutChild *child = NULL;
- tmp_list = layout->children;
+ tmp_list = priv->children;
while (tmp_list)
{
child = tmp_list->data;
@@ -1013,7 +1075,7 @@ gtk_layout_remove (GtkContainer *container,
{
gtk_widget_unparent (widget);
- layout->children = g_list_remove_link (layout->children, tmp_list);
+ priv->children = g_list_remove_link (priv->children, tmp_list);
g_list_free_1 (tmp_list);
g_free (child);
}
@@ -1026,10 +1088,11 @@ gtk_layout_forall (GtkContainer *container,
gpointer callback_data)
{
GtkLayout *layout = GTK_LAYOUT (container);
+ GtkLayoutPriv *priv = layout->priv;
GtkLayoutChild *child;
GList *tmp_list;
- tmp_list = layout->children;
+ tmp_list = priv->children;
while (tmp_list)
{
child = tmp_list->data;
@@ -1064,15 +1127,17 @@ static void
gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
GtkLayout *layout)
{
- if (layout->freeze_count)
+ GtkLayoutPriv *priv = layout->priv;
+
+ if (priv->freeze_count)
return;
if (gtk_widget_get_realized (GTK_WIDGET (layout)))
{
- gdk_window_move (layout->bin_window,
- - layout->hadjustment->value,
- - layout->vadjustment->value);
-
- gdk_window_process_updates (layout->bin_window, TRUE);
+ gdk_window_move (priv->bin_window,
+ - priv->hadjustment->value,
+ - priv->vadjustment->value);
+
+ gdk_window_process_updates (priv->bin_window, TRUE);
}
}
diff --git a/gtk/gtklayout.h b/gtk/gtklayout.h
index b446fb3..ae1fb25 100644
--- a/gtk/gtklayout.h
+++ b/gtk/gtklayout.h
@@ -51,29 +51,15 @@ G_BEGIN_DECLS
typedef struct _GtkLayout GtkLayout;
+typedef struct _GtkLayoutPriv GtkLayoutPriv;
typedef struct _GtkLayoutClass GtkLayoutClass;
struct _GtkLayout
{
- GtkContainer GSEAL (container);
+ GtkContainer container;
- GList *GSEAL (children);
-
- guint GSEAL (width);
- guint GSEAL (height);
-
- GtkAdjustment *GSEAL (hadjustment);
- GtkAdjustment *GSEAL (vadjustment);
-
- /*< public >*/
- GdkWindow *GSEAL (bin_window);
-
- /*< private >*/
- GdkVisibilityState GSEAL (visibility);
- gint GSEAL (scroll_x);
- gint GSEAL (scroll_y);
-
- guint GSEAL (freeze_count);
+ /* <private> */
+ GtkLayoutPriv *priv;
};
struct _GtkLayoutClass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]