[gtk+/refactor: 94/106] GtkScale: move public members to private structure
- From: Javier Jardón <jjardon src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/refactor: 94/106] GtkScale: move public members to private structure
- Date: Tue, 13 Jul 2010 17:49:57 +0000 (UTC)
commit 65acc3641aaba9332579ff1c4b33d709bee93d3f
Author: Javier Jardón <jjardon gnome org>
Date: Thu Jul 8 04:04:24 2010 +0200
GtkScale: move public members to private structure
gtk/gtkscale.c | 128 +++++++++++++++++++++++++++++++++----------------------
gtk/gtkscale.h | 6 +-
2 files changed, 80 insertions(+), 54 deletions(-)
---
diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c
index 628a998..c8a82cc 100644
--- a/gtk/gtkscale.c
+++ b/gtk/gtkscale.c
@@ -47,12 +47,21 @@
* unrelated code portions otherwise
*/
-#define GTK_SCALE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_TYPE_SCALE, GtkScalePrivate))
-
-typedef struct _GtkScalePrivate GtkScalePrivate;
typedef struct _GtkScaleMark GtkScaleMark;
+struct _GtkScalePriv
+{
+ PangoLayout *layout;
+
+ GSList *marks;
+
+ gint digits;
+
+ guint draw_value : 1;
+ guint value_pos : 2;
+};
+
struct _GtkScaleMark
{
gdouble value;
@@ -60,12 +69,6 @@ struct _GtkScaleMark
GtkPositionType position;
};
-struct _GtkScalePrivate
-{
- PangoLayout *layout;
- GSList *marks;
-};
-
enum {
PROP_0,
PROP_DIGITS,
@@ -373,7 +376,7 @@ gtk_scale_class_init (GtkScaleClass *class)
add_slider_binding (binding_set, GDK_KP_End, 0,
GTK_SCROLL_END);
- g_type_class_add_private (gobject_class, sizeof (GtkScalePrivate));
+ g_type_class_add_private (gobject_class, sizeof (GtkScalePriv));
}
static void
@@ -386,8 +389,14 @@ gtk_scale_orientation_notify (GtkRange *range,
static void
gtk_scale_init (GtkScale *scale)
{
+ GtkScalePriv *priv;
GtkRange *range = GTK_RANGE (scale);
+ scale->priv = G_TYPE_INSTANCE_GET_PRIVATE (scale,
+ GTK_TYPE_SCALE,
+ GtkScalePriv);
+ priv = scale->priv;
+
gtk_widget_set_can_focus (GTK_WIDGET (scale), TRUE);
range->slider_size_fixed = TRUE;
@@ -396,10 +405,10 @@ gtk_scale_init (GtkScale *scale)
range->has_stepper_c = FALSE;
range->has_stepper_d = FALSE;
- scale->draw_value = TRUE;
- scale->value_pos = GTK_POS_TOP;
- scale->digits = 1;
- range->round_digits = scale->digits;
+ priv->draw_value = TRUE;
+ priv->value_pos = GTK_POS_TOP;
+ priv->digits = 1;
+ range->round_digits = priv->digits;
gtk_scale_orientation_notify (range, NULL);
g_signal_connect (scale, "notify::orientation",
@@ -440,20 +449,19 @@ gtk_scale_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GtkScale *scale;
-
- scale = GTK_SCALE (object);
+ GtkScale *scale = GTK_SCALE (object);
+ GtkScalePriv *priv = scale->priv;
switch (prop_id)
{
case PROP_DIGITS:
- g_value_set_int (value, scale->digits);
+ g_value_set_int (value, priv->digits);
break;
case PROP_DRAW_VALUE:
- g_value_set_boolean (value, scale->draw_value);
+ g_value_set_boolean (value, priv->draw_value);
break;
case PROP_VALUE_POS:
- g_value_set_enum (value, scale->value_pos);
+ g_value_set_enum (value, priv->value_pos);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -553,18 +561,20 @@ void
gtk_scale_set_digits (GtkScale *scale,
gint digits)
{
+ GtkScalePriv *priv;
GtkRange *range;
-
+
g_return_if_fail (GTK_IS_SCALE (scale));
+ priv = scale->priv;
range = GTK_RANGE (scale);
digits = CLAMP (digits, -1, MAX_DIGITS);
- if (scale->digits != digits)
+ if (priv->digits != digits)
{
- scale->digits = digits;
- if (scale->draw_value)
+ priv->digits = digits;
+ if (priv->draw_value)
range->round_digits = digits;
_gtk_scale_clear_layout (scale);
@@ -587,7 +597,7 @@ gtk_scale_get_digits (GtkScale *scale)
{
g_return_val_if_fail (GTK_IS_SCALE (scale), -1);
- return scale->digits;
+ return scale->priv->digits;
}
/**
@@ -602,15 +612,19 @@ void
gtk_scale_set_draw_value (GtkScale *scale,
gboolean draw_value)
{
+ GtkScalePriv *priv;
+
g_return_if_fail (GTK_IS_SCALE (scale));
+ priv = scale->priv;
+
draw_value = draw_value != FALSE;
- if (scale->draw_value != draw_value)
+ if (priv->draw_value != draw_value)
{
- scale->draw_value = draw_value;
+ priv->draw_value = draw_value;
if (draw_value)
- GTK_RANGE (scale)->round_digits = scale->digits;
+ GTK_RANGE (scale)->round_digits = priv->digits;
else
GTK_RANGE (scale)->round_digits = -1;
@@ -636,7 +650,7 @@ gtk_scale_get_draw_value (GtkScale *scale)
{
g_return_val_if_fail (GTK_IS_SCALE (scale), FALSE);
- return scale->draw_value;
+ return scale->priv->draw_value;
}
/**
@@ -650,13 +664,16 @@ void
gtk_scale_set_value_pos (GtkScale *scale,
GtkPositionType pos)
{
+ GtkScalePriv *priv;
GtkWidget *widget;
g_return_if_fail (GTK_IS_SCALE (scale));
- if (scale->value_pos != pos)
+ priv = scale->priv;
+
+ if (priv->value_pos != pos)
{
- scale->value_pos = pos;
+ priv->value_pos = pos;
widget = GTK_WIDGET (scale);
_gtk_scale_clear_layout (scale);
@@ -680,21 +697,21 @@ gtk_scale_get_value_pos (GtkScale *scale)
{
g_return_val_if_fail (GTK_IS_SCALE (scale), 0);
- return scale->value_pos;
+ return scale->priv->value_pos;
}
static void
gtk_scale_get_range_border (GtkRange *range,
GtkBorder *border)
{
- GtkScalePrivate *priv;
+ GtkScalePriv *priv;
GtkWidget *widget;
GtkScale *scale;
gint w, h;
widget = GTK_WIDGET (range);
scale = GTK_SCALE (range);
- priv = GTK_SCALE_GET_PRIVATE (scale);
+ priv = scale->priv;
_gtk_scale_get_value_size (scale, &w, &h);
@@ -703,12 +720,12 @@ gtk_scale_get_range_border (GtkRange *range,
border->top = 0;
border->bottom = 0;
- if (scale->draw_value)
+ if (priv->draw_value)
{
gint value_spacing;
gtk_widget_style_get (widget, "value-spacing", &value_spacing, NULL);
- switch (scale->value_pos)
+ switch (priv->value_pos)
{
case GTK_POS_LEFT:
border->left += w + value_spacing;
@@ -762,11 +779,10 @@ _gtk_scale_get_value_size (GtkScale *scale,
gint *width,
gint *height)
{
+ GtkScalePriv *priv = scale->priv;
GtkRange *range;
- g_return_if_fail (GTK_IS_SCALE (scale));
-
- if (scale->draw_value)
+ if (priv->draw_value)
{
PangoLayout *layout;
PangoRectangle logical_rect;
@@ -820,7 +836,7 @@ gtk_scale_get_mark_label_size (GtkScale *scale,
gint *width2,
gint *height2)
{
- GtkScalePrivate *priv = GTK_SCALE_GET_PRIVATE (scale);
+ GtkScalePriv *priv = scale->priv;
PangoLayout *layout;
PangoRectangle logical_rect;
GSList *m;
@@ -953,7 +969,7 @@ gtk_scale_expose (GtkWidget *widget,
GdkEventExpose *event)
{
GtkScale *scale = GTK_SCALE (widget);
- GtkScalePrivate *priv = GTK_SCALE_GET_PRIVATE (scale);
+ GtkScalePriv *priv = scale->priv;
GtkRange *range = GTK_RANGE (scale);
GtkStateType state_type;
gint n_marks;
@@ -1103,7 +1119,7 @@ gtk_scale_expose (GtkWidget *widget,
g_free (marks);
}
- if (scale->draw_value)
+ if (priv->draw_value)
{
PangoLayout *layout;
gint x, y;
@@ -1132,6 +1148,7 @@ gtk_scale_real_get_layout_offsets (GtkScale *scale,
gint *x,
gint *y)
{
+ GtkScalePriv *priv = scale->priv;
GtkWidget *widget = GTK_WIDGET (scale);
GtkRange *range = GTK_RANGE (widget);
PangoLayout *layout = gtk_scale_get_layout (scale);
@@ -1152,7 +1169,7 @@ gtk_scale_real_get_layout_offsets (GtkScale *scale,
if (range->orientation == GTK_ORIENTATION_HORIZONTAL)
{
- switch (scale->value_pos)
+ switch (priv->value_pos)
{
case GTK_POS_LEFT:
*x = range->range_rect.x - value_spacing - logical_rect.width;
@@ -1185,7 +1202,7 @@ gtk_scale_real_get_layout_offsets (GtkScale *scale,
}
else
{
- switch (scale->value_pos)
+ switch (priv->value_pos)
{
case GTK_POS_LEFT:
*x = range->range_rect.x - logical_rect.width - value_spacing;
@@ -1232,6 +1249,7 @@ gchar*
_gtk_scale_format_value (GtkScale *scale,
gdouble value)
{
+ GtkScalePriv *priv = scale->priv;
gchar *fmt = NULL;
g_signal_emit (scale,
@@ -1244,7 +1262,7 @@ _gtk_scale_format_value (GtkScale *scale,
return fmt;
else
/* insert a LRM, to prevent -20 to come out as 20- in RTL locales */
- return g_strdup_printf ("\342\200\216%0.*f", scale->digits, value);
+ return g_strdup_printf ("\342\200\216%0.*f", priv->digits, value);
}
static void
@@ -1274,18 +1292,20 @@ gtk_scale_finalize (GObject *object)
PangoLayout *
gtk_scale_get_layout (GtkScale *scale)
{
- GtkScalePrivate *priv = GTK_SCALE_GET_PRIVATE (scale);
+ GtkScalePriv *priv;
gchar *txt;
g_return_val_if_fail (GTK_IS_SCALE (scale), NULL);
+ priv = scale->priv;
+
if (!priv->layout)
{
- if (scale->draw_value)
+ if (priv->draw_value)
priv->layout = gtk_widget_create_pango_layout (GTK_WIDGET (scale), NULL);
}
- if (scale->draw_value)
+ if (priv->draw_value)
{
txt = _gtk_scale_format_value (scale,
GTK_RANGE (scale)->adjustment->value);
@@ -1335,7 +1355,7 @@ gtk_scale_get_layout_offsets (GtkScale *scale,
void
_gtk_scale_clear_layout (GtkScale *scale)
{
- GtkScalePrivate *priv = GTK_SCALE_GET_PRIVATE (scale);
+ GtkScalePriv *priv = scale->priv;
g_return_if_fail (GTK_IS_SCALE (scale));
@@ -1364,10 +1384,12 @@ gtk_scale_mark_free (GtkScaleMark *mark)
void
gtk_scale_clear_marks (GtkScale *scale)
{
- GtkScalePrivate *priv = GTK_SCALE_GET_PRIVATE (scale);
+ GtkScalePriv *priv;
g_return_if_fail (GTK_IS_SCALE (scale));
+ priv = scale->priv;
+
g_slist_foreach (priv->marks, (GFunc)gtk_scale_mark_free, NULL);
g_slist_free (priv->marks);
priv->marks = NULL;
@@ -1417,12 +1439,16 @@ gtk_scale_add_mark (GtkScale *scale,
GtkPositionType position,
const gchar *markup)
{
- GtkScalePrivate *priv = GTK_SCALE_GET_PRIVATE (scale);
+ GtkScalePriv *priv;
GtkScaleMark *mark;
GSList *m;
gdouble *values;
gint n, i;
+ g_return_if_fail (GTK_IS_SCALE (scale));
+
+ priv = scale->priv;
+
mark = g_new (GtkScaleMark, 1);
mark->value = value;
mark->markup = g_strdup (markup);
diff --git a/gtk/gtkscale.h b/gtk/gtkscale.h
index c98b33a..b3ac397 100644
--- a/gtk/gtkscale.h
+++ b/gtk/gtkscale.h
@@ -46,15 +46,15 @@ G_BEGIN_DECLS
typedef struct _GtkScale GtkScale;
+typedef struct _GtkScalePriv GtkScalePriv;
typedef struct _GtkScaleClass GtkScaleClass;
struct _GtkScale
{
GtkRange range;
- gint GSEAL (digits);
- guint GSEAL (draw_value) : 1;
- guint GSEAL (value_pos) : 2;
+ /* <private> */
+ GtkScalePriv *priv;
};
struct _GtkScaleClass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]