Add accessors for GtkRange::round-digits
Patch by Christian Dywan, https://bugzilla.gnome.org/show_bug.cgi?id=351755
This commit is contained in:
@ -2482,9 +2482,11 @@ gtk_range_set_adjustment
|
|||||||
gtk_range_get_inverted
|
gtk_range_get_inverted
|
||||||
gtk_range_set_inverted
|
gtk_range_set_inverted
|
||||||
gtk_range_get_value
|
gtk_range_get_value
|
||||||
|
gtk_range_set_value
|
||||||
gtk_range_set_increments
|
gtk_range_set_increments
|
||||||
gtk_range_set_range
|
gtk_range_set_range
|
||||||
gtk_range_set_value
|
gtk_range_get_round_digits
|
||||||
|
gtk_range_set_round_digits
|
||||||
GtkSensitivityType
|
GtkSensitivityType
|
||||||
gtk_range_set_lower_stepper_sensitivity
|
gtk_range_set_lower_stepper_sensitivity
|
||||||
gtk_range_get_lower_stepper_sensitivity
|
gtk_range_get_lower_stepper_sensitivity
|
||||||
|
@ -2050,6 +2050,7 @@ gtk_range_get_lower_stepper_sensitivity
|
|||||||
gtk_range_get_min_slider_size
|
gtk_range_get_min_slider_size
|
||||||
gtk_range_get_range_rect
|
gtk_range_get_range_rect
|
||||||
gtk_range_get_restrict_to_fill_level
|
gtk_range_get_restrict_to_fill_level
|
||||||
|
gtk_range_get_round_digits
|
||||||
gtk_range_get_show_fill_level
|
gtk_range_get_show_fill_level
|
||||||
gtk_range_get_slider_range
|
gtk_range_get_slider_range
|
||||||
gtk_range_get_slider_size_fixed
|
gtk_range_get_slider_size_fixed
|
||||||
@ -2065,6 +2066,7 @@ gtk_range_set_lower_stepper_sensitivity
|
|||||||
gtk_range_set_min_slider_size
|
gtk_range_set_min_slider_size
|
||||||
gtk_range_set_range
|
gtk_range_set_range
|
||||||
gtk_range_set_restrict_to_fill_level
|
gtk_range_set_restrict_to_fill_level
|
||||||
|
gtk_range_set_round_digits
|
||||||
gtk_range_set_show_fill_level
|
gtk_range_set_show_fill_level
|
||||||
gtk_range_set_slider_size_fixed
|
gtk_range_set_slider_size_fixed
|
||||||
gtk_range_set_upper_stepper_sensitivity
|
gtk_range_set_upper_stepper_sensitivity
|
||||||
|
@ -151,7 +151,8 @@ enum {
|
|||||||
PROP_UPPER_STEPPER_SENSITIVITY,
|
PROP_UPPER_STEPPER_SENSITIVITY,
|
||||||
PROP_SHOW_FILL_LEVEL,
|
PROP_SHOW_FILL_LEVEL,
|
||||||
PROP_RESTRICT_TO_FILL_LEVEL,
|
PROP_RESTRICT_TO_FILL_LEVEL,
|
||||||
PROP_FILL_LEVEL
|
PROP_FILL_LEVEL,
|
||||||
|
PROP_ROUND_DIGITS
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -376,7 +377,7 @@ gtk_range_class_init (GtkRangeClass *class)
|
|||||||
* @returns: %TRUE to prevent other handlers from being invoked for the
|
* @returns: %TRUE to prevent other handlers from being invoked for the
|
||||||
* signal, %FALSE to propagate the signal further
|
* signal, %FALSE to propagate the signal further
|
||||||
*
|
*
|
||||||
* The ::change-value signal is emitted when a scroll action is
|
* The #GtkRange::change-value signal is emitted when a scroll action is
|
||||||
* performed on a range. It allows an application to determine the
|
* performed on a range. It allows an application to determine the
|
||||||
* type of scroll event that occurred and the resultant new value.
|
* type of scroll event that occurred and the resultant new value.
|
||||||
* The application can handle the event itself and return %TRUE to
|
* The application can handle the event itself and return %TRUE to
|
||||||
@ -385,12 +386,12 @@ gtk_range_class_init (GtkRangeClass *class)
|
|||||||
* reached.
|
* reached.
|
||||||
*
|
*
|
||||||
* The value parameter is unrounded. An application that overrides
|
* The value parameter is unrounded. An application that overrides
|
||||||
* the ::change-value signal is responsible for clamping the value to
|
* the GtkRange::change-value signal is responsible for clamping the
|
||||||
* the desired number of decimal digits; the default GTK+ handler
|
* value to the desired number of decimal digits; the default GTK+
|
||||||
* clamps the value based on @range->round_digits.
|
* handler clamps the value based on #GtkRange:round-digits.
|
||||||
*
|
*
|
||||||
* It is not possible to use delayed update policies in an overridden
|
* It is not possible to use delayed update policies in an overridden
|
||||||
* ::change-value handler.
|
* #GtkRange::change-value handler.
|
||||||
*
|
*
|
||||||
* Since: 2.6
|
* Since: 2.6
|
||||||
*/
|
*/
|
||||||
@ -495,6 +496,24 @@ gtk_range_class_init (GtkRangeClass *class)
|
|||||||
G_MAXDOUBLE,
|
G_MAXDOUBLE,
|
||||||
GTK_PARAM_READWRITE));
|
GTK_PARAM_READWRITE));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GtkRange:round-digits:
|
||||||
|
*
|
||||||
|
* The number of digits to round the value to when
|
||||||
|
* it changes, or -1. See #GtkRange::change-value.
|
||||||
|
*
|
||||||
|
* 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 widgets to round the value to."),
|
||||||
|
-1,
|
||||||
|
G_MAXINT,
|
||||||
|
-1,
|
||||||
|
GTK_PARAM_READWRITE));
|
||||||
|
|
||||||
gtk_widget_class_install_style_property (widget_class,
|
gtk_widget_class_install_style_property (widget_class,
|
||||||
g_param_spec_int ("slider-width",
|
g_param_spec_int ("slider-width",
|
||||||
P_("Slider Width"),
|
P_("Slider Width"),
|
||||||
@ -629,6 +648,9 @@ gtk_range_set_property (GObject *object,
|
|||||||
case PROP_FILL_LEVEL:
|
case PROP_FILL_LEVEL:
|
||||||
gtk_range_set_fill_level (range, g_value_get_double (value));
|
gtk_range_set_fill_level (range, g_value_get_double (value));
|
||||||
break;
|
break;
|
||||||
|
case PROP_ROUND_DIGITS:
|
||||||
|
gtk_range_set_round_digits (range, g_value_get_int (value));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -670,6 +692,9 @@ gtk_range_get_property (GObject *object,
|
|||||||
case PROP_FILL_LEVEL:
|
case PROP_FILL_LEVEL:
|
||||||
g_value_set_double (value, gtk_range_get_fill_level (range));
|
g_value_set_double (value, gtk_range_get_fill_level (range));
|
||||||
break;
|
break;
|
||||||
|
case PROP_ROUND_DIGITS:
|
||||||
|
g_value_set_int (value, gtk_range_get_round_digits (range));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -4055,11 +4080,45 @@ _gtk_range_get_stop_positions (GtkRange *range,
|
|||||||
return priv->n_marks;
|
return priv->n_marks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_range_set_round_digits:
|
||||||
|
* @range: a #GtkRange
|
||||||
|
* @round_digits: the precision in digits, or -1
|
||||||
|
*
|
||||||
|
* Sets the number of digits to round the value to when
|
||||||
|
* it changes. See #GtkRange::change-value.
|
||||||
|
*
|
||||||
|
* Since: 2.24
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
_gtk_range_set_round_digits (GtkRange *range,
|
gtk_range_set_round_digits (GtkRange *range,
|
||||||
gint round_digits)
|
gint round_digits)
|
||||||
{
|
{
|
||||||
|
g_return_if_fail (GTK_IS_RANGE (range));
|
||||||
|
g_return_if_fail (round_digits >= -1);
|
||||||
|
|
||||||
range->priv->round_digits = round_digits;
|
range->priv->round_digits = round_digits;
|
||||||
|
|
||||||
|
g_object_notify (G_OBJECT (range), "round-digits");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_range_get_round_digits:
|
||||||
|
* @range: a #GtkRange
|
||||||
|
*
|
||||||
|
* Gets the number of digits to round the value to when
|
||||||
|
* it changes. See #GtkRange::change-value.
|
||||||
|
*
|
||||||
|
* Return value: the number of digits to round to
|
||||||
|
*
|
||||||
|
* Since: 2.24
|
||||||
|
*/
|
||||||
|
gint
|
||||||
|
gtk_range_get_round_digits (GtkRange *range)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GTK_IS_RANGE (range), -1);
|
||||||
|
|
||||||
|
return range->priv->round_digits;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -143,6 +143,9 @@ gboolean gtk_range_get_restrict_to_fill_level (GtkRange *range
|
|||||||
void gtk_range_set_fill_level (GtkRange *range,
|
void gtk_range_set_fill_level (GtkRange *range,
|
||||||
gdouble fill_level);
|
gdouble fill_level);
|
||||||
gdouble gtk_range_get_fill_level (GtkRange *range);
|
gdouble gtk_range_get_fill_level (GtkRange *range);
|
||||||
|
void gtk_range_set_round_digits (GtkRange *range,
|
||||||
|
gint round_digits);
|
||||||
|
gint gtk_range_get_round_digits (GtkRange *range);
|
||||||
|
|
||||||
/* internal API */
|
/* internal API */
|
||||||
gdouble _gtk_range_get_wheel_delta (GtkRange *range,
|
gdouble _gtk_range_get_wheel_delta (GtkRange *range,
|
||||||
@ -153,8 +156,6 @@ void _gtk_range_set_stop_values (GtkRange *range
|
|||||||
gint n_values);
|
gint n_values);
|
||||||
gint _gtk_range_get_stop_positions (GtkRange *range,
|
gint _gtk_range_get_stop_positions (GtkRange *range,
|
||||||
gint **values);
|
gint **values);
|
||||||
void _gtk_range_set_round_digits (GtkRange *range,
|
|
||||||
gint round_digits);
|
|
||||||
void _gtk_range_set_steppers (GtkRange *range,
|
void _gtk_range_set_steppers (GtkRange *range,
|
||||||
gboolean has_a,
|
gboolean has_a,
|
||||||
gboolean has_b,
|
gboolean has_b,
|
||||||
|
@ -443,7 +443,7 @@ gtk_scale_init (GtkScale *scale)
|
|||||||
priv->draw_value = TRUE;
|
priv->draw_value = TRUE;
|
||||||
priv->value_pos = GTK_POS_TOP;
|
priv->value_pos = GTK_POS_TOP;
|
||||||
priv->digits = 1;
|
priv->digits = 1;
|
||||||
_gtk_range_set_round_digits (range, priv->digits);
|
gtk_range_set_round_digits (range, priv->digits);
|
||||||
|
|
||||||
gtk_scale_orientation_notify (range, NULL);
|
gtk_scale_orientation_notify (range, NULL);
|
||||||
g_signal_connect (scale, "notify::orientation",
|
g_signal_connect (scale, "notify::orientation",
|
||||||
@ -613,7 +613,7 @@ gtk_scale_set_digits (GtkScale *scale,
|
|||||||
{
|
{
|
||||||
priv->digits = digits;
|
priv->digits = digits;
|
||||||
if (priv->draw_value)
|
if (priv->draw_value)
|
||||||
_gtk_range_set_round_digits (range, digits);
|
gtk_range_set_round_digits (range, digits);
|
||||||
|
|
||||||
_gtk_scale_clear_layout (scale);
|
_gtk_scale_clear_layout (scale);
|
||||||
gtk_widget_queue_resize (GTK_WIDGET (scale));
|
gtk_widget_queue_resize (GTK_WIDGET (scale));
|
||||||
@ -662,9 +662,9 @@ gtk_scale_set_draw_value (GtkScale *scale,
|
|||||||
{
|
{
|
||||||
priv->draw_value = draw_value;
|
priv->draw_value = draw_value;
|
||||||
if (draw_value)
|
if (draw_value)
|
||||||
_gtk_range_set_round_digits (GTK_RANGE (scale), priv->digits);
|
gtk_range_set_round_digits (GTK_RANGE (scale), priv->digits);
|
||||||
else
|
else
|
||||||
_gtk_range_set_round_digits (GTK_RANGE (scale), -1);
|
gtk_range_set_round_digits (GTK_RANGE (scale), -1);
|
||||||
|
|
||||||
_gtk_scale_clear_layout (scale);
|
_gtk_scale_clear_layout (scale);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user