[gtk+] range: Convert to g_object_notify_by_pspec
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] range: Convert to g_object_notify_by_pspec
- Date: Sun, 6 Sep 2015 21:15:51 +0000 (UTC)
commit c3038c2fe146fddb1d75181eb7fb2f3dc60c6c3c
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Sep 6 10:42:50 2015 -0400
range: Convert to g_object_notify_by_pspec
This avoids pspec lookup overhead in g_object_notify.
gtk/gtkrange.c | 151 +++++++++++++++++++++++++++-----------------------------
1 files changed, 72 insertions(+), 79 deletions(-)
---
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index b006382..6217ae0 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -157,7 +157,6 @@ struct _GtkRangePrivate
enum {
PROP_0,
- PROP_ORIENTATION,
PROP_ADJUSTMENT,
PROP_INVERTED,
PROP_LOWER_STEPPER_SENSITIVITY,
@@ -165,7 +164,9 @@ enum {
PROP_SHOW_FILL_LEVEL,
PROP_RESTRICT_TO_FILL_LEVEL,
PROP_FILL_LEVEL,
- PROP_ROUND_DIGITS
+ PROP_ROUND_DIGITS,
+ PROP_ORIENTATION,
+ LAST_PROP = PROP_ORIENTATION
};
enum {
@@ -304,7 +305,7 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GtkRange, gtk_range, GTK_TYPE_WIDGET,
NULL))
static guint signals[LAST_SIGNAL];
-
+static GParamSpec *properties[LAST_PROP];
static void
gtk_range_class_init (GtkRangeClass *class)
@@ -366,7 +367,7 @@ gtk_range_class_init (GtkRangeClass *class)
_gtk_marshal_VOID__DOUBLE,
G_TYPE_NONE, 1,
G_TYPE_DOUBLE);
-
+
/**
* GtkRange::move-slider:
* @range: the #GtkRange that received the signal
@@ -422,43 +423,37 @@ gtk_range_class_init (GtkRangeClass *class)
GTK_TYPE_SCROLL_TYPE,
G_TYPE_DOUBLE);
- g_object_class_override_property (gobject_class,
- PROP_ORIENTATION,
- "orientation");
-
- g_object_class_install_property (gobject_class,
- PROP_ADJUSTMENT,
- g_param_spec_object ("adjustment",
- P_("Adjustment"),
- P_("The GtkAdjustment that contains the current value
of this range object"),
- GTK_TYPE_ADJUSTMENT,
- GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (gobject_class,
- PROP_INVERTED,
- g_param_spec_boolean ("inverted",
- P_("Inverted"),
- P_("Invert direction slider moves to increase range
value"),
- FALSE,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
-
- g_object_class_install_property (gobject_class,
- PROP_LOWER_STEPPER_SENSITIVITY,
- g_param_spec_enum ("lower-stepper-sensitivity",
- P_("Lower stepper sensitivity"),
- P_("The sensitivity policy for the stepper that points
to the adjustment's lower side"),
- GTK_TYPE_SENSITIVITY_TYPE,
- GTK_SENSITIVITY_AUTO,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
-
- g_object_class_install_property (gobject_class,
- PROP_UPPER_STEPPER_SENSITIVITY,
- g_param_spec_enum ("upper-stepper-sensitivity",
- P_("Upper stepper sensitivity"),
- P_("The sensitivity policy for the stepper that points
to the adjustment's upper side"),
- GTK_TYPE_SENSITIVITY_TYPE,
- GTK_SENSITIVITY_AUTO,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+ g_object_class_override_property (gobject_class, PROP_ORIENTATION, "orientation");
+
+ properties[PROP_ADJUSTMENT] =
+ g_param_spec_object ("adjustment",
+ P_("Adjustment"),
+ P_("The GtkAdjustment that contains the current value of this range object"),
+ GTK_TYPE_ADJUSTMENT,
+ GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT);
+
+ properties[PROP_INVERTED] =
+ g_param_spec_boolean ("inverted",
+ P_("Inverted"),
+ P_("Invert direction slider moves to increase range value"),
+ FALSE,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
+
+ properties[PROP_LOWER_STEPPER_SENSITIVITY] =
+ g_param_spec_enum ("lower-stepper-sensitivity",
+ P_("Lower stepper sensitivity"),
+ P_("The sensitivity policy for the stepper that points to the adjustment's lower
side"),
+ GTK_TYPE_SENSITIVITY_TYPE,
+ GTK_SENSITIVITY_AUTO,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
+
+ properties[PROP_UPPER_STEPPER_SENSITIVITY] =
+ g_param_spec_enum ("upper-stepper-sensitivity",
+ P_("Upper stepper sensitivity"),
+ P_("The sensitivity policy for the stepper that points to the adjustment's upper
side"),
+ GTK_TYPE_SENSITIVITY_TYPE,
+ GTK_SENSITIVITY_AUTO,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkRange:show-fill-level:
@@ -469,13 +464,12 @@ gtk_range_class_init (GtkRangeClass *class)
*
* Since: 2.12
**/
- g_object_class_install_property (gobject_class,
- PROP_SHOW_FILL_LEVEL,
- g_param_spec_boolean ("show-fill-level",
- P_("Show Fill Level"),
- P_("Whether to display a fill level indicator
graphics on trough."),
- FALSE,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+ properties[PROP_SHOW_FILL_LEVEL] =
+ g_param_spec_boolean ("show-fill-level",
+ P_("Show Fill Level"),
+ P_("Whether to display a fill level indicator graphics on trough."),
+ FALSE,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkRange:restrict-to-fill-level:
@@ -486,13 +480,12 @@ gtk_range_class_init (GtkRangeClass *class)
*
* Since: 2.12
**/
- g_object_class_install_property (gobject_class,
- PROP_RESTRICT_TO_FILL_LEVEL,
- g_param_spec_boolean ("restrict-to-fill-level",
- P_("Restrict to Fill Level"),
- P_("Whether to restrict the upper boundary to the
fill level."),
- TRUE,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+ properties[PROP_RESTRICT_TO_FILL_LEVEL] =
+ g_param_spec_boolean ("restrict-to-fill-level",
+ P_("Restrict to Fill Level"),
+ P_("Whether to restrict the upper boundary to the fill level."),
+ TRUE,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkRange:fill-level:
@@ -502,15 +495,13 @@ gtk_range_class_init (GtkRangeClass *class)
*
* Since: 2.12
**/
- g_object_class_install_property (gobject_class,
- PROP_FILL_LEVEL,
- g_param_spec_double ("fill-level",
- P_("Fill Level"),
- P_("The fill level."),
- -G_MAXDOUBLE,
- G_MAXDOUBLE,
- G_MAXDOUBLE,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+ properties[PROP_FILL_LEVEL] =
+ g_param_spec_double ("fill-level",
+ P_("Fill Level"),
+ P_("The fill level."),
+ -G_MAXDOUBLE, G_MAXDOUBLE,
+ G_MAXDOUBLE,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkRange:round-digits:
@@ -520,13 +511,15 @@ gtk_range_class_init (GtkRangeClass *class)
*
* Since: 2.24
*/
- g_object_class_install_property (gobject_class,
- PROP_ROUND_DIGITS,
- g_param_spec_int ("round-digits",
- P_("Round Digits"),
- P_("The number of digits to round the value to."),
- -1, G_MAXINT, -1,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+ properties[PROP_ROUND_DIGITS] =
+ g_param_spec_int ("round-digits",
+ P_("Round Digits"),
+ P_("The number of digits to round the value to."),
+ -1, G_MAXINT,
+ -1,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
+
+ g_object_class_install_properties (gobject_class, LAST_PROP, properties);
gtk_widget_class_install_style_property (widget_class,
g_param_spec_int ("slider-width",
@@ -853,7 +846,7 @@ gtk_range_set_adjustment (GtkRange *range,
range);
gtk_range_adjustment_changed (adjustment, range);
- g_object_notify (G_OBJECT (range), "adjustment");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_ADJUSTMENT]);
}
}
@@ -882,7 +875,7 @@ gtk_range_set_inverted (GtkRange *range,
if (setting != priv->inverted)
{
priv->inverted = setting;
- g_object_notify (G_OBJECT (range), "inverted");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_INVERTED]);
gtk_widget_queue_resize (GTK_WIDGET (range));
}
}
@@ -1152,7 +1145,7 @@ gtk_range_set_lower_stepper_sensitivity (GtkRange *range,
gtk_range_calc_stepper_sensitivity (range);
- g_object_notify (G_OBJECT (range), "lower-stepper-sensitivity");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_LOWER_STEPPER_SENSITIVITY]);
}
}
@@ -1201,7 +1194,7 @@ gtk_range_set_upper_stepper_sensitivity (GtkRange *range,
gtk_range_calc_stepper_sensitivity (range);
- g_object_notify (G_OBJECT (range), "upper-stepper-sensitivity");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_UPPER_STEPPER_SENSITIVITY]);
}
}
@@ -1363,7 +1356,7 @@ gtk_range_set_show_fill_level (GtkRange *range,
if (show_fill_level != priv->show_fill_level)
{
priv->show_fill_level = show_fill_level;
- g_object_notify (G_OBJECT (range), "show-fill-level");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_SHOW_FILL_LEVEL]);
gtk_widget_queue_draw (GTK_WIDGET (range));
}
}
@@ -1412,7 +1405,7 @@ gtk_range_set_restrict_to_fill_level (GtkRange *range,
if (restrict_to_fill_level != priv->restrict_to_fill_level)
{
priv->restrict_to_fill_level = restrict_to_fill_level;
- g_object_notify (G_OBJECT (range), "restrict-to-fill-level");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_RESTRICT_TO_FILL_LEVEL]);
gtk_range_set_value (range, gtk_range_get_value (range));
}
@@ -1474,7 +1467,7 @@ gtk_range_set_fill_level (GtkRange *range,
if (fill_level != priv->fill_level)
{
priv->fill_level = fill_level;
- g_object_notify (G_OBJECT (range), "fill-level");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_FILL_LEVEL]);
if (priv->show_fill_level)
gtk_widget_queue_draw (GTK_WIDGET (range));
@@ -4244,7 +4237,7 @@ gtk_range_set_round_digits (GtkRange *range,
if (range->priv->round_digits != round_digits)
{
range->priv->round_digits = round_digits;
- g_object_notify (G_OBJECT (range), "round-digits");
+ g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_ROUND_DIGITS]);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]