diff options
author | Jody Goldberg <jody@gnome.org> | 2002-02-15 05:53:08 +0000 |
---|---|---|
committer | Jody Goldberg <jody@src.gnome.org> | 2002-02-15 05:53:08 +0000 |
commit | f0ed36b324217f0eca2057f8fa64a498fe40033f (patch) | |
tree | 7d556dd99433681c2a35b414fd6fc9a89ffecf1f /gtk/gtkrange.c | |
parent | 27455dcd9001e2eaec592b35a2023e8df44ad0ce (diff) | |
download | gtk+-f0ed36b324217f0eca2057f8fa64a498fe40033f.tar.gz |
add new signal 'adjust_bounds' to potentialy change the bounds before
2002-02-14 Jody Goldberg <jody@gnome.org>
* gtk/gtkrange.c (gtk_range_class_init) : add new signal
'adjust_bounds' to potentialy change the bounds before assigning the
new value and camping it to the existing bounds.
(gtk_range_internal_set_value) : used here. #68800.
* gtk/gtkmarshalers.list : add VOID:DOUBLE
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r-- | gtk/gtkrange.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index 064c1840b4..de04272f5a 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -46,6 +46,7 @@ enum { enum { VALUE_CHANGED, + ADJUST_BOUNDS, MOVE_SLIDER, LAST_SIGNAL }; @@ -244,6 +245,16 @@ gtk_range_class_init (GtkRangeClass *class) _gtk_marshal_NONE__NONE, G_TYPE_NONE, 0); + signals[ADJUST_BOUNDS] = + g_signal_new ("adjust_bounds", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkRangeClass, adjust_bounds), + NULL, NULL, + _gtk_marshal_VOID__DOUBLE, + G_TYPE_NONE, 1, + G_TYPE_DOUBLE); + signals[MOVE_SLIDER] = g_signal_new ("move_slider", G_TYPE_FROM_CLASS (object_class), @@ -254,7 +265,6 @@ gtk_range_class_init (GtkRangeClass *class) G_TYPE_NONE, 1, GTK_TYPE_SCROLL_TYPE); - g_object_class_install_property (gobject_class, PROP_UPDATE_POLICY, g_param_spec_enum ("update_policy", @@ -2149,6 +2159,9 @@ static void gtk_range_internal_set_value (GtkRange *range, gdouble value) { + /* potentially adjust the bounds _before we clamp */ + g_signal_emit (G_OBJECT (range), signals[ADJUST_BOUNDS], 0, value); + value = CLAMP (value, range->adjustment->lower, (range->adjustment->upper - range->adjustment->page_size)); |