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;
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),
/* 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),
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;
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:
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);
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));
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) |
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)
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;
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)
{
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;
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;
}
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;
}
{
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));
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);
}
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);
}
{
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;
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));
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 ();
#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;
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;
***********************************************************/
+/**
+ * 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,
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.
*/
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));
}
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));
/**
* 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().
/**
* 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().