summaryrefslogtreecommitdiff
path: root/gtk/gtkscale.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2002-01-29 11:35:28 +0000
committerTim Janik <timj@src.gnome.org>2002-01-29 11:35:28 +0000
commitc8a1ae5bce1297a23590f2bce2286a9e41beb6cf (patch)
tree8a463f4198dde82b85db78444cdb3baed1f0b239 /gtk/gtkscale.c
parent5d82c0a4b6d25448ac712f97a34c4d55d2180f6c (diff)
downloadgdk-pixbuf-c8a1ae5bce1297a23590f2bce2286a9e41beb6cf.tar.gz
fix default value for ::digits property, leave as 1 as per havoc's
Tue Jan 29 11:51:14 2002 Tim Janik <timj@gtk.org> * gtk/gtkscale.[hc]: fix default value for ::digits property, leave as 1 as per havoc's request. don't apply the draw_digits value to range->round_digits, so we don't perform gross quantization by default.
Diffstat (limited to 'gtk/gtkscale.c')
-rw-r--r--gtk/gtkscale.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c
index c03aa1410..d971a80d9 100644
--- a/gtk/gtkscale.c
+++ b/gtk/gtkscale.c
@@ -32,6 +32,13 @@
#include "gdk/gdkkeysyms.h"
#include "gtkbindings.h"
+
+#define MAX_DIGITS (64) /* don't change this,
+ * a) you don't need to and
+ * b) you might cause buffer owerflows in
+ * unrelated code portions otherwise
+ */
+
enum {
PROP_0,
PROP_DIGITS,
@@ -147,9 +154,9 @@ gtk_scale_class_init (GtkScaleClass *class)
g_param_spec_int ("digits",
_("Digits"),
_("The number of decimal places that are displayed in the value"),
- 0,
- G_MAXINT,
- 0,
+ -1,
+ MAX_DIGITS,
+ 1,
G_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
@@ -346,7 +353,7 @@ gtk_scale_get_property (GObject *object,
switch (prop_id)
{
case PROP_DIGITS:
- g_value_set_int (value, scale->digits);
+ g_value_set_int (value, scale->draw_digits);
break;
case PROP_DRAW_VALUE:
g_value_set_boolean (value, scale->draw_value);
@@ -374,11 +381,10 @@ gtk_scale_init (GtkScale *scale)
range->has_stepper_b = FALSE;
range->has_stepper_c = FALSE;
range->has_stepper_d = FALSE;
-
+
+ scale->draw_digits = 1;
scale->draw_value = TRUE;
scale->value_pos = GTK_POS_TOP;
- scale->digits = 1;
- range->round_digits = scale->digits;
}
void
@@ -391,12 +397,11 @@ gtk_scale_set_digits (GtkScale *scale,
range = GTK_RANGE (scale);
- digits = CLAMP (digits, -1, 16);
+ digits = CLAMP (digits, -1, MAX_DIGITS);
- if (scale->digits != digits)
+ if (scale->draw_digits != digits)
{
- scale->digits = digits;
- range->round_digits = digits;
+ scale->draw_digits = digits;
gtk_widget_queue_resize (GTK_WIDGET (scale));
@@ -409,7 +414,7 @@ gtk_scale_get_digits (GtkScale *scale)
{
g_return_val_if_fail (GTK_IS_SCALE (scale), -1);
- return scale->digits;
+ return scale->draw_digits;
}
void
@@ -602,6 +607,6 @@ _gtk_scale_format_value (GtkScale *scale,
if (fmt)
return fmt;
else
- return g_strdup_printf ("%0.*f", scale->digits,
+ return g_strdup_printf ("%0.*f", scale->draw_digits,
value);
}