]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkspinbutton.c
Deprecate widget flag: GTK_WIDGET_MAPPED
[~andy/gtk] / gtk / gtkspinbutton.c
index a2f63e9ec7fd45122f88809e5bd15605cdb01c56..315adc4e4840aadfbcb1c036b8ba526d2aeab13a 100644 (file)
@@ -164,15 +164,11 @@ static void
 gtk_spin_button_class_init (GtkSpinButtonClass *class)
 {
   GObjectClass     *gobject_class = G_OBJECT_CLASS (class);
-  GtkObjectClass   *object_class;
-  GtkWidgetClass   *widget_class;
-  GtkEntryClass    *entry_class;
+  GtkObjectClass   *object_class = GTK_OBJECT_CLASS (class);
+  GtkWidgetClass   *widget_class = GTK_WIDGET_CLASS (class);
+  GtkEntryClass    *entry_class = GTK_ENTRY_CLASS (class);
   GtkBindingSet    *binding_set;
 
-  object_class   = (GtkObjectClass*)   class;
-  widget_class   = (GtkWidgetClass*)   class;
-  entry_class    = (GtkEntryClass*)    class;
-
   gobject_class->finalize = gtk_spin_button_finalize;
 
   gobject_class->set_property = gtk_spin_button_set_property;
@@ -333,7 +329,7 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
                  G_TYPE_BOOLEAN, 0);
 
   spinbutton_signals[VALUE_CHANGED] =
-    g_signal_new (I_("value_changed"),
+    g_signal_new (I_("value-changed"),
                  G_TYPE_FROM_CLASS (gobject_class),
                  G_SIGNAL_RUN_LAST,
                  G_STRUCT_OFFSET (GtkSpinButtonClass, value_changed),
@@ -361,7 +357,7 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
 
   /* Action signals */
   spinbutton_signals[CHANGE_VALUE] =
-    g_signal_new (I_("change_value"),
+    g_signal_new (I_("change-value"),
                   G_TYPE_FROM_CLASS (gobject_class),
                   G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                   G_STRUCT_OFFSET (GtkSpinButtonClass, change_value),
@@ -394,10 +390,8 @@ gtk_spin_button_set_property (GObject      *object,
                              const GValue *value,
                              GParamSpec   *pspec)
 {
-  GtkSpinButton *spin_button;
+  GtkSpinButton *spin_button = GTK_SPIN_BUTTON (object);
 
-  spin_button = GTK_SPIN_BUTTON (object);
-  
   switch (prop_id)
     {
       GtkAdjustment *adjustment;
@@ -447,10 +441,8 @@ gtk_spin_button_get_property (GObject      *object,
                              GValue       *value,
                              GParamSpec   *pspec)
 {
-  GtkSpinButton *spin_button;
+  GtkSpinButton *spin_button = GTK_SPIN_BUTTON (object);
 
-  spin_button = GTK_SPIN_BUTTON (object);
-  
   switch (prop_id)
     {
     case PROP_ADJUSTMENT:
@@ -525,7 +517,7 @@ gtk_spin_button_destroy (GtkObject *object)
 static void
 gtk_spin_button_map (GtkWidget *widget)
 {
-  if (GTK_WIDGET_REALIZED (widget) && !GTK_WIDGET_MAPPED (widget))
+  if (GTK_WIDGET_REALIZED (widget) && !gtk_widget_get_mapped (widget))
     {
       GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->map (widget);
       gdk_window_show (GTK_SPIN_BUTTON (widget)->panel);
@@ -535,7 +527,7 @@ gtk_spin_button_map (GtkWidget *widget)
 static void
 gtk_spin_button_unmap (GtkWidget *widget)
 {
-  if (GTK_WIDGET_MAPPED (widget))
+  if (gtk_widget_get_mapped (widget))
     {
       gtk_spin_button_stop_spinning (GTK_SPIN_BUTTON (widget));
 
@@ -547,13 +539,12 @@ gtk_spin_button_unmap (GtkWidget *widget)
 static void
 gtk_spin_button_realize (GtkWidget *widget)
 {
-  GtkSpinButton *spin_button;
+  GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget);
   GdkWindowAttr attributes;
   gint attributes_mask;
   gboolean return_val;
   gint arrow_size;
 
-  spin_button = GTK_SPIN_BUTTON (widget);
   arrow_size = spin_button_get_arrow_size (spin_button);
 
   gtk_widget_set_events (widget, gtk_widget_get_events (widget) |
@@ -634,14 +625,12 @@ static void
 gtk_spin_button_size_request (GtkWidget      *widget,
                              GtkRequisition *requisition)
 {
-  GtkEntry *entry;
-  GtkSpinButton *spin_button;
+  GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget);
+  GtkEntry *entry = GTK_ENTRY (widget);
   gint arrow_size;
 
-  entry = GTK_ENTRY (widget);
-  spin_button = GTK_SPIN_BUTTON (widget);
   arrow_size = spin_button_get_arrow_size (spin_button);
-  
+
   GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->size_request (widget, requisition);
 
   if (entry->width_chars < 0)
@@ -702,15 +691,11 @@ static void
 gtk_spin_button_size_allocate (GtkWidget     *widget,
                               GtkAllocation *allocation)
 {
-  GtkSpinButton *spin;
+  GtkSpinButton *spin = GTK_SPIN_BUTTON (widget);
   GtkAllocation panel_allocation;
   gint arrow_size;
   gint panel_width;
 
-  g_return_if_fail (GTK_IS_SPIN_BUTTON (widget));
-  g_return_if_fail (allocation != NULL);
-
-  spin = GTK_SPIN_BUTTON (widget);
   arrow_size = spin_button_get_arrow_size (spin);
   panel_width = arrow_size + 2 * widget->style->xthickness;
   
@@ -744,14 +729,9 @@ static gint
 gtk_spin_button_expose (GtkWidget      *widget,
                        GdkEventExpose *event)
 {
-  GtkSpinButton *spin;
-
-  g_return_val_if_fail (GTK_IS_SPIN_BUTTON (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  spin = GTK_SPIN_BUTTON (widget);
+  GtkSpinButton *spin = GTK_SPIN_BUTTON (widget);
 
-  if (GTK_WIDGET_DRAWABLE (widget))
+  if (gtk_widget_is_drawable (widget))
     {
       if (event->window == spin->panel)
        {
@@ -820,12 +800,11 @@ gtk_spin_button_draw_arrow (GtkSpinButton *spin_button,
   gint width;
   gint h, w;
 
-  g_return_if_fail (GTK_IS_SPIN_BUTTON (spin_button));
   g_return_if_fail (arrow_type == GTK_ARROW_UP || arrow_type == GTK_ARROW_DOWN);
-  
+
   widget = GTK_WIDGET (spin_button);
 
-  if (GTK_WIDGET_DRAWABLE (widget))
+  if (gtk_widget_is_drawable (widget))
     {
       width = spin_button_get_arrow_size (spin_button) + 2 * widget->style->xthickness;
 
@@ -936,7 +915,10 @@ gtk_spin_button_enter_notify (GtkWidget        *widget,
 
       gtk_widget_queue_draw (GTK_WIDGET (spin));
     }
-  
+  if (GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->enter_notify_event)
+    return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->enter_notify_event (widget, event);
+
   return FALSE;
 }
 
@@ -948,7 +930,10 @@ gtk_spin_button_leave_notify (GtkWidget        *widget,
 
   spin->in_child = NO_ARROW;
   gtk_widget_queue_draw (GTK_WIDGET (spin));
-  
+  if (GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->leave_notify_event)
+    return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->leave_notify_event (widget, event);
+
   return FALSE;
 }
 
@@ -981,7 +966,7 @@ gtk_spin_button_state_changed (GtkWidget    *widget,
 {
   GtkSpinButton *spin = GTK_SPIN_BUTTON (widget);
 
-  if (!GTK_WIDGET_IS_SENSITIVE (widget))
+  if (!gtk_widget_is_sensitive (widget))
     {
       gtk_spin_button_stop_spinning (spin);    
       gtk_widget_queue_draw (GTK_WIDGET (spin));
@@ -997,7 +982,7 @@ gtk_spin_button_style_set (GtkWidget *widget,
   if (previous_style && GTK_WIDGET_REALIZED (widget))
     gtk_style_set_background (widget->style, spin->panel, GTK_STATE_NORMAL);
 
-  (* GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->style_set) (widget, previous_style);
+  GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->style_set (widget, previous_style);
 }
 
 
@@ -1009,13 +994,13 @@ gtk_spin_button_scroll (GtkWidget      *widget,
 
   if (event->direction == GDK_SCROLL_UP)
     {
-      if (!GTK_WIDGET_HAS_FOCUS (widget))
+      if (!gtk_widget_has_focus (widget))
        gtk_widget_grab_focus (widget);
       gtk_spin_button_real_spin (spin, spin->adjustment->step_increment);
     }
   else if (event->direction == GDK_SCROLL_DOWN)
     {
-      if (!GTK_WIDGET_HAS_FOCUS (widget))
+      if (!gtk_widget_has_focus (widget))
        gtk_widget_grab_focus (widget);
       gtk_spin_button_real_spin (spin, -spin->adjustment->step_increment); 
     }
@@ -1082,7 +1067,7 @@ gtk_spin_button_button_press (GtkWidget      *widget,
     {
       if (event->window == spin->panel)
        {
-         if (!GTK_WIDGET_HAS_FOCUS (widget))
+         if (!gtk_widget_has_focus (widget))
            gtk_widget_grab_focus (widget);
          spin->button = event->button;
          
@@ -1411,8 +1396,6 @@ gtk_spin_button_get_text_area_size (GtkEntry *entry,
   gint arrow_size;
   gint panel_width;
 
-  g_return_if_fail (GTK_IS_SPIN_BUTTON (entry));
-
   GTK_ENTRY_CLASS (gtk_spin_button_parent_class)->get_text_area_size (entry, x, y, width, height);
 
   arrow_size = spin_button_get_arrow_size (GTK_SPIN_BUTTON (entry));
@@ -1444,8 +1427,10 @@ gtk_spin_button_insert_text (GtkEditable *editable,
       GdkWChar pos_sign;
       GdkWChar neg_sign;
       gint entry_length;
+      const gchar *entry_text;
 
-      entry_length = entry->text_length;
+      entry_length = gtk_entry_get_text_length (entry);
+      entry_text = gtk_entry_get_text (entry);
 
       lc = localeconv ();
 
@@ -1480,8 +1465,8 @@ gtk_spin_button_insert_text (GtkEditable *editable,
 #endif
 
       for (sign=0, i=0; i<entry_length; i++)
-       if ((entry->text[i] == neg_sign) ||
-           (entry->text[i] == pos_sign))
+       if ((entry_text[i] == neg_sign) ||
+           (entry_text[i] == pos_sign))
          {
            sign = 1;
            break;
@@ -1491,7 +1476,7 @@ gtk_spin_button_insert_text (GtkEditable *editable,
        return;
 
       for (dotpos=-1, i=0; i<entry_length; i++)
-       if (entry->text[i] == *(lc->decimal_point))
+       if (entry_text[i] == *(lc->decimal_point))
          {
            dotpos = i;
            break;
@@ -1611,6 +1596,16 @@ gtk_spin_button_default_output (GtkSpinButton *spin_button)
  ***********************************************************/
 
 
+/**
+ * gtk_spin_button_configure:
+ * @spin_button: a #GtkSpinButton
+ * @adjustment: (allow-none):  a #GtkAdjustment.
+ * @climb_rate: the new climb rate.
+ * @digits: the number of decimal places to display in the spin button.
+ *
+ * Changes the properties of an existing spin button. The adjustment, climb rate,
+ * and number of decimal places are all changed accordingly, after this function call.
+ */
 void
 gtk_spin_button_configure (GtkSpinButton  *spin_button,
                           GtkAdjustment  *adjustment,
@@ -1707,6 +1702,13 @@ gtk_spin_button_new_with_range (gdouble min,
   return GTK_WIDGET (spin);
 }
 
+static void
+warn_nonzero_page_size (GtkAdjustment *adjustment)
+{
+  if (gtk_adjustment_get_page_size (adjustment) != 0.0)
+    g_warning ("GtkSpinButton: setting an adjustment with non-zero page size is deprecated");
+}
+
 /* Callback used when the spin button's adjustment changes.  We need to redraw
  * the arrows when the adjustment's range changes, and reevaluate our size request.
  */
@@ -1718,6 +1720,7 @@ adjustment_changed_cb (GtkAdjustment *adjustment, gpointer data)
   spin_button = GTK_SPIN_BUTTON (data);
 
   spin_button->timer_step = spin_button->adjustment->step_increment;
+  warn_nonzero_page_size (adjustment);
   gtk_widget_queue_resize (GTK_WIDGET (spin_button));
 }
 
@@ -1750,13 +1753,14 @@ gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
       if (adjustment)
         {
          g_object_ref_sink (adjustment);
-         g_signal_connect (adjustment, "value_changed",
+         g_signal_connect (adjustment, "value-changed",
                            G_CALLBACK (gtk_spin_button_value_changed),
                            spin_button);
          g_signal_connect (adjustment, "changed",
                            G_CALLBACK (adjustment_changed_cb),
                            spin_button);
          spin_button->timer_step = spin_button->adjustment->step_increment;
+          warn_nonzero_page_size (adjustment);
         }
 
       gtk_widget_queue_resize (GTK_WIDGET (spin_button));
@@ -1845,8 +1849,8 @@ gtk_spin_button_set_increments (GtkSpinButton *spin_button,
 /**
  * gtk_spin_button_get_increments:
  * @spin_button: a #GtkSpinButton
- * @step: location to store step increment, or %NULL
- * @page: location to store page increment, or %NULL
+ * @step: (allow-none): location to store step increment, or %NULL
+ * @page: (allow-none): location to store page increment, or %NULL
  *
  * Gets the current step and page the increments used by @spin_button. See
  * gtk_spin_button_set_increments().
@@ -1897,8 +1901,8 @@ gtk_spin_button_set_range (GtkSpinButton *spin_button,
 /**
  * gtk_spin_button_get_range:
  * @spin_button: a #GtkSpinButton
- * @min: location to store minimum allowed value, or %NULL
- * @max: location to store maximum allowed value, or %NULL
+ * @min: (allow-none): location to store minimum allowed value, or %NULL
+ * @max: (allow-none): location to store maximum allowed value, or %NULL
  *
  * Gets the range allowed for @spin_button. See
  * gtk_spin_button_set_range().