API: range: Remove update policy
It's unused and complicates code a lot. In particular, it breaks the adjustment/range abstractions.
This commit is contained in:
parent
e608cc4eaf
commit
c43a31ea33
@ -2449,11 +2449,9 @@ gtk_range_set_fill_level
|
|||||||
gtk_range_set_restrict_to_fill_level
|
gtk_range_set_restrict_to_fill_level
|
||||||
gtk_range_set_show_fill_level
|
gtk_range_set_show_fill_level
|
||||||
gtk_range_get_adjustment
|
gtk_range_get_adjustment
|
||||||
gtk_range_set_update_policy
|
|
||||||
gtk_range_set_adjustment
|
gtk_range_set_adjustment
|
||||||
gtk_range_get_inverted
|
gtk_range_get_inverted
|
||||||
gtk_range_set_inverted
|
gtk_range_set_inverted
|
||||||
gtk_range_get_update_policy
|
|
||||||
gtk_range_get_value
|
gtk_range_get_value
|
||||||
gtk_range_set_increments
|
gtk_range_set_increments
|
||||||
gtk_range_set_range
|
gtk_range_set_range
|
||||||
@ -5984,7 +5982,6 @@ GtkShadowType
|
|||||||
GtkStateType
|
GtkStateType
|
||||||
GtkStateFlags
|
GtkStateFlags
|
||||||
GtkToolbarStyle
|
GtkToolbarStyle
|
||||||
GtkUpdateType
|
|
||||||
GtkWindowPosition
|
GtkWindowPosition
|
||||||
GtkWindowType
|
GtkWindowType
|
||||||
GtkSortType
|
GtkSortType
|
||||||
|
@ -2053,7 +2053,6 @@ 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
|
||||||
gtk_range_get_type G_GNUC_CONST
|
gtk_range_get_type G_GNUC_CONST
|
||||||
gtk_range_get_update_policy
|
|
||||||
gtk_range_get_upper_stepper_sensitivity
|
gtk_range_get_upper_stepper_sensitivity
|
||||||
gtk_range_get_value
|
gtk_range_get_value
|
||||||
gtk_range_set_adjustment
|
gtk_range_set_adjustment
|
||||||
@ -2067,7 +2066,6 @@ gtk_range_set_range
|
|||||||
gtk_range_set_restrict_to_fill_level
|
gtk_range_set_restrict_to_fill_level
|
||||||
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_update_policy
|
|
||||||
gtk_range_set_upper_stepper_sensitivity
|
gtk_range_set_upper_stepper_sensitivity
|
||||||
gtk_range_set_value
|
gtk_range_set_value
|
||||||
gtk_rc_add_default_file
|
gtk_rc_add_default_file
|
||||||
|
@ -401,14 +401,6 @@ typedef enum
|
|||||||
GTK_TOOLBAR_BOTH_HORIZ
|
GTK_TOOLBAR_BOTH_HORIZ
|
||||||
} GtkToolbarStyle;
|
} GtkToolbarStyle;
|
||||||
|
|
||||||
/* Data update types (for ranges) */
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
GTK_UPDATE_CONTINUOUS,
|
|
||||||
GTK_UPDATE_DISCONTINUOUS,
|
|
||||||
GTK_UPDATE_DELAYED
|
|
||||||
} GtkUpdateType;
|
|
||||||
|
|
||||||
/* Window position types */
|
/* Window position types */
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
157
gtk/gtkrange.c
157
gtk/gtkrange.c
@ -87,7 +87,6 @@ struct _GtkRangePrivate
|
|||||||
GtkOrientation orientation;
|
GtkOrientation orientation;
|
||||||
GtkSensitivityType lower_sensitivity;
|
GtkSensitivityType lower_sensitivity;
|
||||||
GtkSensitivityType upper_sensitivity;
|
GtkSensitivityType upper_sensitivity;
|
||||||
GtkUpdateType update_policy;
|
|
||||||
|
|
||||||
GdkDevice *grab_device;
|
GdkDevice *grab_device;
|
||||||
GdkRectangle range_rect; /* Area of entire stepper + trough assembly in widget->window coords */
|
GdkRectangle range_rect; /* Area of entire stepper + trough assembly in widget->window coords */
|
||||||
@ -118,7 +117,6 @@ struct _GtkRangePrivate
|
|||||||
gint slider_end;
|
gint slider_end;
|
||||||
|
|
||||||
guint repaint_id;
|
guint repaint_id;
|
||||||
guint update_timeout_id;
|
|
||||||
|
|
||||||
/* Steppers are: < > ---- < >
|
/* Steppers are: < > ---- < >
|
||||||
* a b c d
|
* a b c d
|
||||||
@ -133,7 +131,6 @@ struct _GtkRangePrivate
|
|||||||
guint need_recalc : 1;
|
guint need_recalc : 1;
|
||||||
guint slider_size_fixed : 1;
|
guint slider_size_fixed : 1;
|
||||||
guint trough_click_forward : 1; /* trough click was on the forward side of slider */
|
guint trough_click_forward : 1; /* trough click was on the forward side of slider */
|
||||||
guint update_pending : 1; /* need to emit value_changed */
|
|
||||||
|
|
||||||
/* Stepper sensitivity */
|
/* Stepper sensitivity */
|
||||||
guint lower_sensitive : 1;
|
guint lower_sensitive : 1;
|
||||||
@ -148,7 +145,6 @@ struct _GtkRangePrivate
|
|||||||
enum {
|
enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_ORIENTATION,
|
PROP_ORIENTATION,
|
||||||
PROP_UPDATE_POLICY,
|
|
||||||
PROP_ADJUSTMENT,
|
PROP_ADJUSTMENT,
|
||||||
PROP_INVERTED,
|
PROP_INVERTED,
|
||||||
PROP_LOWER_STEPPER_SENSITIVITY,
|
PROP_LOWER_STEPPER_SENSITIVITY,
|
||||||
@ -266,14 +262,11 @@ static void gtk_range_adjustment_changed (GtkAdjustment *adjustme
|
|||||||
static void gtk_range_add_step_timer (GtkRange *range,
|
static void gtk_range_add_step_timer (GtkRange *range,
|
||||||
GtkScrollType step);
|
GtkScrollType step);
|
||||||
static void gtk_range_remove_step_timer (GtkRange *range);
|
static void gtk_range_remove_step_timer (GtkRange *range);
|
||||||
static void gtk_range_reset_update_timer (GtkRange *range);
|
|
||||||
static void gtk_range_remove_update_timer (GtkRange *range);
|
|
||||||
static GdkRectangle* get_area (GtkRange *range,
|
static GdkRectangle* get_area (GtkRange *range,
|
||||||
MouseLocation location);
|
MouseLocation location);
|
||||||
static gboolean gtk_range_real_change_value (GtkRange *range,
|
static gboolean gtk_range_real_change_value (GtkRange *range,
|
||||||
GtkScrollType scroll,
|
GtkScrollType scroll,
|
||||||
gdouble value);
|
gdouble value);
|
||||||
static void gtk_range_update_value (GtkRange *range);
|
|
||||||
static gboolean gtk_range_key_press (GtkWidget *range,
|
static gboolean gtk_range_key_press (GtkWidget *range,
|
||||||
GdkEventKey *event);
|
GdkEventKey *event);
|
||||||
|
|
||||||
@ -416,15 +409,6 @@ gtk_range_class_init (GtkRangeClass *class)
|
|||||||
PROP_ORIENTATION,
|
PROP_ORIENTATION,
|
||||||
"orientation");
|
"orientation");
|
||||||
|
|
||||||
g_object_class_install_property (gobject_class,
|
|
||||||
PROP_UPDATE_POLICY,
|
|
||||||
g_param_spec_enum ("update-policy",
|
|
||||||
P_("Update policy"),
|
|
||||||
P_("How the range should be updated on the screen"),
|
|
||||||
GTK_TYPE_UPDATE_TYPE,
|
|
||||||
GTK_UPDATE_CONTINUOUS,
|
|
||||||
GTK_PARAM_READWRITE));
|
|
||||||
|
|
||||||
g_object_class_install_property (gobject_class,
|
g_object_class_install_property (gobject_class,
|
||||||
PROP_ADJUSTMENT,
|
PROP_ADJUSTMENT,
|
||||||
g_param_spec_object ("adjustment",
|
g_param_spec_object ("adjustment",
|
||||||
@ -624,9 +608,6 @@ gtk_range_set_property (GObject *object,
|
|||||||
|
|
||||||
gtk_widget_queue_resize (GTK_WIDGET (range));
|
gtk_widget_queue_resize (GTK_WIDGET (range));
|
||||||
break;
|
break;
|
||||||
case PROP_UPDATE_POLICY:
|
|
||||||
gtk_range_set_update_policy (range, g_value_get_enum (value));
|
|
||||||
break;
|
|
||||||
case PROP_ADJUSTMENT:
|
case PROP_ADJUSTMENT:
|
||||||
gtk_range_set_adjustment (range, g_value_get_object (value));
|
gtk_range_set_adjustment (range, g_value_get_object (value));
|
||||||
break;
|
break;
|
||||||
@ -668,9 +649,6 @@ gtk_range_get_property (GObject *object,
|
|||||||
case PROP_ORIENTATION:
|
case PROP_ORIENTATION:
|
||||||
g_value_set_enum (value, priv->orientation);
|
g_value_set_enum (value, priv->orientation);
|
||||||
break;
|
break;
|
||||||
case PROP_UPDATE_POLICY:
|
|
||||||
g_value_set_enum (value, priv->update_policy);
|
|
||||||
break;
|
|
||||||
case PROP_ADJUSTMENT:
|
case PROP_ADJUSTMENT:
|
||||||
g_value_set_object (value, priv->adjustment);
|
g_value_set_object (value, priv->adjustment);
|
||||||
break;
|
break;
|
||||||
@ -712,7 +690,6 @@ gtk_range_init (GtkRange *range)
|
|||||||
|
|
||||||
priv->orientation = GTK_ORIENTATION_HORIZONTAL;
|
priv->orientation = GTK_ORIENTATION_HORIZONTAL;
|
||||||
priv->adjustment = NULL;
|
priv->adjustment = NULL;
|
||||||
priv->update_policy = GTK_UPDATE_CONTINUOUS;
|
|
||||||
priv->inverted = FALSE;
|
priv->inverted = FALSE;
|
||||||
priv->flippable = FALSE;
|
priv->flippable = FALSE;
|
||||||
priv->min_slider_size = 1;
|
priv->min_slider_size = 1;
|
||||||
@ -763,53 +740,6 @@ gtk_range_get_adjustment (GtkRange *range)
|
|||||||
return priv->adjustment;
|
return priv->adjustment;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_range_set_update_policy:
|
|
||||||
* @range: a #GtkRange
|
|
||||||
* @policy: update policy
|
|
||||||
*
|
|
||||||
* Sets the update policy for the range. #GTK_UPDATE_CONTINUOUS means that
|
|
||||||
* anytime the range slider is moved, the range value will change and the
|
|
||||||
* value_changed signal will be emitted. #GTK_UPDATE_DELAYED means that
|
|
||||||
* the value will be updated after a brief timeout where no slider motion
|
|
||||||
* occurs, so updates are spaced by a short time rather than
|
|
||||||
* continuous. #GTK_UPDATE_DISCONTINUOUS means that the value will only
|
|
||||||
* be updated when the user releases the button and ends the slider
|
|
||||||
* drag operation.
|
|
||||||
**/
|
|
||||||
void
|
|
||||||
gtk_range_set_update_policy (GtkRange *range,
|
|
||||||
GtkUpdateType policy)
|
|
||||||
{
|
|
||||||
GtkRangePrivate *priv;
|
|
||||||
|
|
||||||
g_return_if_fail (GTK_IS_RANGE (range));
|
|
||||||
|
|
||||||
priv = range->priv;
|
|
||||||
|
|
||||||
if (priv->update_policy != policy)
|
|
||||||
{
|
|
||||||
priv->update_policy = policy;
|
|
||||||
g_object_notify (G_OBJECT (range), "update-policy");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_range_get_update_policy:
|
|
||||||
* @range: a #GtkRange
|
|
||||||
*
|
|
||||||
* Gets the update policy of @range. See gtk_range_set_update_policy().
|
|
||||||
*
|
|
||||||
* Return value: the current update policy
|
|
||||||
**/
|
|
||||||
GtkUpdateType
|
|
||||||
gtk_range_get_update_policy (GtkRange *range)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GTK_IS_RANGE (range), GTK_UPDATE_CONTINUOUS);
|
|
||||||
|
|
||||||
return range->priv->update_policy;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gtk_range_set_adjustment:
|
* gtk_range_set_adjustment:
|
||||||
* @range: a #GtkRange
|
* @range: a #GtkRange
|
||||||
@ -1528,7 +1458,6 @@ gtk_range_destroy (GtkWidget *widget)
|
|||||||
GtkRangePrivate *priv = range->priv;
|
GtkRangePrivate *priv = range->priv;
|
||||||
|
|
||||||
gtk_range_remove_step_timer (range);
|
gtk_range_remove_step_timer (range);
|
||||||
gtk_range_remove_update_timer (range);
|
|
||||||
|
|
||||||
if (priv->repaint_id)
|
if (priv->repaint_id)
|
||||||
g_source_remove (priv->repaint_id);
|
g_source_remove (priv->repaint_id);
|
||||||
@ -1780,7 +1709,6 @@ gtk_range_unrealize (GtkWidget *widget)
|
|||||||
GtkRangePrivate *priv = range->priv;
|
GtkRangePrivate *priv = range->priv;
|
||||||
|
|
||||||
gtk_range_remove_step_timer (range);
|
gtk_range_remove_step_timer (range);
|
||||||
gtk_range_remove_update_timer (range);
|
|
||||||
|
|
||||||
gdk_window_set_user_data (priv->event_window, NULL);
|
gdk_window_set_user_data (priv->event_window, NULL);
|
||||||
gdk_window_destroy (priv->event_window);
|
gdk_window_destroy (priv->event_window);
|
||||||
@ -2682,8 +2610,6 @@ stop_scrolling (GtkRange *range)
|
|||||||
{
|
{
|
||||||
range_grab_remove (range);
|
range_grab_remove (range);
|
||||||
gtk_range_remove_step_timer (range);
|
gtk_range_remove_step_timer (range);
|
||||||
/* Flush any pending discontinuous/delayed updates */
|
|
||||||
gtk_range_update_value (range);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@ -2800,13 +2726,6 @@ gtk_range_scroll_event (GtkWidget *widget,
|
|||||||
g_signal_emit (range, signals[CHANGE_VALUE], 0,
|
g_signal_emit (range, signals[CHANGE_VALUE], 0,
|
||||||
GTK_SCROLL_JUMP, adj->value + delta,
|
GTK_SCROLL_JUMP, adj->value + delta,
|
||||||
&handled);
|
&handled);
|
||||||
|
|
||||||
/* Policy DELAYED makes sense with scroll events,
|
|
||||||
* but DISCONTINUOUS doesn't, so we update immediately
|
|
||||||
* for DISCONTINUOUS
|
|
||||||
*/
|
|
||||||
if (priv->update_policy == GTK_UPDATE_DISCONTINUOUS)
|
|
||||||
gtk_range_update_value (range);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -3234,13 +3153,6 @@ gtk_range_move_slider (GtkRange *range,
|
|||||||
|
|
||||||
if (! gtk_range_scroll (range, scroll))
|
if (! gtk_range_scroll (range, scroll))
|
||||||
gtk_widget_error_bell (GTK_WIDGET (range));
|
gtk_widget_error_bell (GTK_WIDGET (range));
|
||||||
|
|
||||||
/* Policy DELAYED makes sense with key events,
|
|
||||||
* but DISCONTINUOUS doesn't, so we update immediately
|
|
||||||
* for DISCONTINUOUS
|
|
||||||
*/
|
|
||||||
if (priv->update_policy == GTK_UPDATE_DISCONTINUOUS)
|
|
||||||
gtk_range_update_value (range);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -4022,43 +3934,11 @@ gtk_range_real_change_value (GtkRange *range,
|
|||||||
|
|
||||||
gtk_widget_queue_draw (GTK_WIDGET (range));
|
gtk_widget_queue_draw (GTK_WIDGET (range));
|
||||||
|
|
||||||
switch (priv->update_policy)
|
|
||||||
{
|
|
||||||
case GTK_UPDATE_CONTINUOUS:
|
|
||||||
gtk_adjustment_set_value (priv->adjustment, value);
|
gtk_adjustment_set_value (priv->adjustment, value);
|
||||||
break;
|
|
||||||
|
|
||||||
/* Delayed means we update after a period of inactivity */
|
|
||||||
case GTK_UPDATE_DELAYED:
|
|
||||||
gtk_range_reset_update_timer (range);
|
|
||||||
/* FALL THRU */
|
|
||||||
|
|
||||||
/* Discontinuous means we update on button release */
|
|
||||||
case GTK_UPDATE_DISCONTINUOUS:
|
|
||||||
/* don't emit value_changed signal */
|
|
||||||
priv->adjustment->value = value;
|
|
||||||
priv->update_pending = TRUE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_range_update_value (GtkRange *range)
|
|
||||||
{
|
|
||||||
GtkRangePrivate *priv = range->priv;
|
|
||||||
|
|
||||||
gtk_range_remove_update_timer (range);
|
|
||||||
|
|
||||||
if (priv->update_pending)
|
|
||||||
{
|
|
||||||
gtk_adjustment_value_changed (priv->adjustment);
|
|
||||||
|
|
||||||
priv->update_pending = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct _GtkRangeStepTimer
|
struct _GtkRangeStepTimer
|
||||||
{
|
{
|
||||||
guint timeout_id;
|
guint timeout_id;
|
||||||
@ -4134,43 +4014,6 @@ gtk_range_remove_step_timer (GtkRange *range)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
update_timeout (gpointer data)
|
|
||||||
{
|
|
||||||
GtkRange *range = GTK_RANGE (data);
|
|
||||||
GtkRangePrivate *priv = range->priv;
|
|
||||||
|
|
||||||
gtk_range_update_value (range);
|
|
||||||
priv->update_timeout_id = 0;
|
|
||||||
|
|
||||||
/* self-remove */
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_range_reset_update_timer (GtkRange *range)
|
|
||||||
{
|
|
||||||
GtkRangePrivate *priv = range->priv;
|
|
||||||
|
|
||||||
gtk_range_remove_update_timer (range);
|
|
||||||
|
|
||||||
priv->update_timeout_id = gdk_threads_add_timeout (UPDATE_DELAY,
|
|
||||||
update_timeout,
|
|
||||||
range);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_range_remove_update_timer (GtkRange *range)
|
|
||||||
{
|
|
||||||
GtkRangePrivate *priv = range->priv;
|
|
||||||
|
|
||||||
if (priv->update_timeout_id != 0)
|
|
||||||
{
|
|
||||||
g_source_remove (priv->update_timeout_id);
|
|
||||||
priv->update_timeout_id = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
_gtk_range_set_stop_values (GtkRange *range,
|
_gtk_range_set_stop_values (GtkRange *range,
|
||||||
gdouble *values,
|
gdouble *values,
|
||||||
|
@ -91,10 +91,6 @@ struct _GtkRangeClass
|
|||||||
|
|
||||||
GType gtk_range_get_type (void) G_GNUC_CONST;
|
GType gtk_range_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
void gtk_range_set_update_policy (GtkRange *range,
|
|
||||||
GtkUpdateType policy);
|
|
||||||
GtkUpdateType gtk_range_get_update_policy (GtkRange *range);
|
|
||||||
|
|
||||||
void gtk_range_set_adjustment (GtkRange *range,
|
void gtk_range_set_adjustment (GtkRange *range,
|
||||||
GtkAdjustment *adjustment);
|
GtkAdjustment *adjustment);
|
||||||
GtkAdjustment* gtk_range_get_adjustment (GtkRange *range);
|
GtkAdjustment* gtk_range_get_adjustment (GtkRange *range);
|
||||||
|
@ -5867,15 +5867,12 @@ create_range_controls (GtkWidget *widget)
|
|||||||
|
|
||||||
scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
|
scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
|
||||||
gtk_widget_set_size_request (GTK_WIDGET (scale), 150, -1);
|
gtk_widget_set_size_request (GTK_WIDGET (scale), 150, -1);
|
||||||
gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_DELAYED);
|
|
||||||
gtk_scale_set_digits (GTK_SCALE (scale), 1);
|
gtk_scale_set_digits (GTK_SCALE (scale), 1);
|
||||||
gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
|
gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
|
||||||
gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
|
||||||
gtk_widget_show (scale);
|
gtk_widget_show (scale);
|
||||||
|
|
||||||
scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
|
scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
|
||||||
gtk_range_set_update_policy (GTK_RANGE (scrollbar),
|
|
||||||
GTK_UPDATE_CONTINUOUS);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box2), scrollbar, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (box2), scrollbar, TRUE, TRUE, 0);
|
||||||
gtk_widget_show (scrollbar);
|
gtk_widget_show (scrollbar);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user