[gtk+] API: range: Remove update policy



commit c43a31ea33fe048fe74cd669418bea58d544ffab
Author: Benjamin Otte <otte redhat com>
Date:   Tue Jan 4 17:23:07 2011 +0100

    API: range: Remove update policy
    
    It's unused and complicates code a lot. In particular, it breaks the
    adjustment/range abstractions.

 docs/reference/gtk/gtk3-sections.txt |    3 -
 gtk/gtk.symbols                      |    2 -
 gtk/gtkenums.h                       |    8 --
 gtk/gtkrange.c                       |  159 +---------------------------------
 gtk/gtkrange.h                       |    4 -
 tests/testgtk.c                      |    3 -
 6 files changed, 1 insertions(+), 178 deletions(-)
---
diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt
index 9b56551..a85aef7 100644
--- a/docs/reference/gtk/gtk3-sections.txt
+++ b/docs/reference/gtk/gtk3-sections.txt
@@ -2449,11 +2449,9 @@ gtk_range_set_fill_level
 gtk_range_set_restrict_to_fill_level
 gtk_range_set_show_fill_level
 gtk_range_get_adjustment
-gtk_range_set_update_policy
 gtk_range_set_adjustment
 gtk_range_get_inverted
 gtk_range_set_inverted
-gtk_range_get_update_policy
 gtk_range_get_value
 gtk_range_set_increments
 gtk_range_set_range
@@ -5984,7 +5982,6 @@ GtkShadowType
 GtkStateType
 GtkStateFlags
 GtkToolbarStyle
-GtkUpdateType
 GtkWindowPosition
 GtkWindowType
 GtkSortType
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 954e17c..5cf8525 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -2053,7 +2053,6 @@ gtk_range_get_show_fill_level
 gtk_range_get_slider_range
 gtk_range_get_slider_size_fixed
 gtk_range_get_type G_GNUC_CONST
-gtk_range_get_update_policy
 gtk_range_get_upper_stepper_sensitivity
 gtk_range_get_value
 gtk_range_set_adjustment
@@ -2067,7 +2066,6 @@ gtk_range_set_range
 gtk_range_set_restrict_to_fill_level
 gtk_range_set_show_fill_level
 gtk_range_set_slider_size_fixed
-gtk_range_set_update_policy
 gtk_range_set_upper_stepper_sensitivity
 gtk_range_set_value
 gtk_rc_add_default_file
diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h
index 2a02925..1eb3b9f 100644
--- a/gtk/gtkenums.h
+++ b/gtk/gtkenums.h
@@ -401,14 +401,6 @@ typedef enum
   GTK_TOOLBAR_BOTH_HORIZ
 } GtkToolbarStyle;
 
-/* Data update types (for ranges) */
-typedef enum
-{
-  GTK_UPDATE_CONTINUOUS,
-  GTK_UPDATE_DISCONTINUOUS,
-  GTK_UPDATE_DELAYED
-} GtkUpdateType;
-
 /* Window position types */
 typedef enum
 {
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index ffd45e9..8499432 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -87,7 +87,6 @@ struct _GtkRangePrivate
   GtkOrientation     orientation;
   GtkSensitivityType lower_sensitivity;
   GtkSensitivityType upper_sensitivity;
-  GtkUpdateType      update_policy;
 
   GdkDevice         *grab_device;
   GdkRectangle       range_rect;     /* Area of entire stepper + trough assembly in widget->window coords */
@@ -118,7 +117,6 @@ struct _GtkRangePrivate
   gint  slider_end;
 
   guint repaint_id;
-  guint update_timeout_id;
 
   /* Steppers are: < > ---- < >
    *               a b      c d
@@ -133,7 +131,6 @@ struct _GtkRangePrivate
   guint need_recalc            : 1;
   guint slider_size_fixed      : 1;
   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 */
   guint lower_sensitive        : 1;
@@ -148,7 +145,6 @@ struct _GtkRangePrivate
 enum {
   PROP_0,
   PROP_ORIENTATION,
-  PROP_UPDATE_POLICY,
   PROP_ADJUSTMENT,
   PROP_INVERTED,
   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,
                                                          GtkScrollType  step);
 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,
                                                          MouseLocation  location);
 static gboolean      gtk_range_real_change_value        (GtkRange      *range,
                                                          GtkScrollType  scroll,
                                                          gdouble        value);
-static void          gtk_range_update_value             (GtkRange      *range);
 static gboolean      gtk_range_key_press                (GtkWidget     *range,
 							 GdkEventKey   *event);
 
@@ -417,15 +410,6 @@ gtk_range_class_init (GtkRangeClass *class)
                                     "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,
                                    PROP_ADJUSTMENT,
                                    g_param_spec_object ("adjustment",
 							P_("Adjustment"),
@@ -624,9 +608,6 @@ gtk_range_set_property (GObject      *object,
 
       gtk_widget_queue_resize (GTK_WIDGET (range));
       break;
-    case PROP_UPDATE_POLICY:
-      gtk_range_set_update_policy (range, g_value_get_enum (value));
-      break;
     case PROP_ADJUSTMENT:
       gtk_range_set_adjustment (range, g_value_get_object (value));
       break;
@@ -668,9 +649,6 @@ gtk_range_get_property (GObject      *object,
     case PROP_ORIENTATION:
       g_value_set_enum (value, priv->orientation);
       break;
-    case PROP_UPDATE_POLICY:
-      g_value_set_enum (value, priv->update_policy);
-      break;
     case PROP_ADJUSTMENT:
       g_value_set_object (value, priv->adjustment);
       break;
@@ -712,7 +690,6 @@ gtk_range_init (GtkRange *range)
 
   priv->orientation = GTK_ORIENTATION_HORIZONTAL;
   priv->adjustment = NULL;
-  priv->update_policy = GTK_UPDATE_CONTINUOUS;
   priv->inverted = FALSE;
   priv->flippable = FALSE;
   priv->min_slider_size = 1;
@@ -764,53 +741,6 @@ gtk_range_get_adjustment (GtkRange *range)
 }
 
 /**
- * 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:
  * @range: a #GtkRange
  * @adjustment: a #GtkAdjustment
@@ -1528,7 +1458,6 @@ gtk_range_destroy (GtkWidget *widget)
   GtkRangePrivate *priv = range->priv;
 
   gtk_range_remove_step_timer (range);
-  gtk_range_remove_update_timer (range);
 
   if (priv->repaint_id)
     g_source_remove (priv->repaint_id);
@@ -1780,7 +1709,6 @@ gtk_range_unrealize (GtkWidget *widget)
   GtkRangePrivate *priv = range->priv;
 
   gtk_range_remove_step_timer (range);
-  gtk_range_remove_update_timer (range);
 
   gdk_window_set_user_data (priv->event_window, NULL);
   gdk_window_destroy (priv->event_window);
@@ -2682,8 +2610,6 @@ stop_scrolling (GtkRange *range)
 {
   range_grab_remove (range);
   gtk_range_remove_step_timer (range);
-  /* Flush any pending discontinuous/delayed updates */
-  gtk_range_update_value (range);
 }
 
 static gboolean
@@ -2800,13 +2726,6 @@ gtk_range_scroll_event (GtkWidget      *widget,
       g_signal_emit (range, signals[CHANGE_VALUE], 0,
                      GTK_SCROLL_JUMP, adj->value + delta,
                      &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;
@@ -3234,13 +3153,6 @@ gtk_range_move_slider (GtkRange     *range,
 
   if (! gtk_range_scroll (range, scroll))
     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
@@ -4022,43 +3934,11 @@ gtk_range_real_change_value (GtkRange     *range,
 
       gtk_widget_queue_draw (GTK_WIDGET (range));
 
-      switch (priv->update_policy)
-        {
-        case GTK_UPDATE_CONTINUOUS:
-          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;
-        }
+      gtk_adjustment_set_value (priv->adjustment, value);
     }
   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
 {
   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
 _gtk_range_set_stop_values (GtkRange *range,
                             gdouble  *values,
diff --git a/gtk/gtkrange.h b/gtk/gtkrange.h
index 55f2328..92ac96f 100644
--- a/gtk/gtkrange.h
+++ b/gtk/gtkrange.h
@@ -91,10 +91,6 @@ struct _GtkRangeClass
 
 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,
                                                             GtkAdjustment *adjustment);
 GtkAdjustment*     gtk_range_get_adjustment                (GtkRange      *range);
diff --git a/tests/testgtk.c b/tests/testgtk.c
index bded12d..aee2ced 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -5867,15 +5867,12 @@ create_range_controls (GtkWidget *widget)
 
       scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
       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_draw_value (GTK_SCALE (scale), TRUE);
       gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
       gtk_widget_show (scale);
 
       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_widget_show (scrollbar);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]