mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-25 21:21:21 +00:00
Add a wrapped signal. (#322933, Carlos Garnacho Parro)
2006-01-30 Matthias Clasen <mclasen@redhat.com> * gtk/gtkspinbutton.h: * gtk/gtkspinbutton.c: Add a wrapped signal. (#322933, Carlos Garnacho Parro)
This commit is contained in:
parent
a475d3fa2f
commit
19f92e70d6
@ -1,5 +1,9 @@
|
|||||||
2006-01-30 Matthias Clasen <mclasen@redhat.com>
|
2006-01-30 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkspinbutton.h:
|
||||||
|
* gtk/gtkspinbutton.c: Add a wrapped signal. (#322933,
|
||||||
|
Carlos Garnacho Parro)
|
||||||
|
|
||||||
* gtk/gtkassistant.c: More generous spacing. (#328082,
|
* gtk/gtkassistant.c: More generous spacing. (#328082,
|
||||||
Christian Persch, patch by Carlos Garnacho)
|
Christian Persch, patch by Carlos Garnacho)
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2006-01-30 Matthias Clasen <mclasen@redhat.com>
|
2006-01-30 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkspinbutton.h:
|
||||||
|
* gtk/gtkspinbutton.c: Add a wrapped signal. (#322933,
|
||||||
|
Carlos Garnacho Parro)
|
||||||
|
|
||||||
* gtk/gtkassistant.c: More generous spacing. (#328082,
|
* gtk/gtkassistant.c: More generous spacing. (#328082,
|
||||||
Christian Persch, patch by Carlos Garnacho)
|
Christian Persch, patch by Carlos Garnacho)
|
||||||
|
|
||||||
|
@ -68,6 +68,7 @@ enum
|
|||||||
OUTPUT,
|
OUTPUT,
|
||||||
VALUE_CHANGED,
|
VALUE_CHANGED,
|
||||||
CHANGE_VALUE,
|
CHANGE_VALUE,
|
||||||
|
WRAPPED,
|
||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -342,6 +343,24 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
|
|||||||
_gtk_marshal_VOID__VOID,
|
_gtk_marshal_VOID__VOID,
|
||||||
G_TYPE_NONE, 0);
|
G_TYPE_NONE, 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GtkSpinButton::wrapped:
|
||||||
|
* @spinbutton: the object which received the signal
|
||||||
|
*
|
||||||
|
* The wrapped signal is emitted right after the spinbutton wraps
|
||||||
|
* from its maximum to minimum value or vice-versa.
|
||||||
|
*
|
||||||
|
* Since: 2.10
|
||||||
|
*/
|
||||||
|
spinbutton_signals[WRAPPED] =
|
||||||
|
g_signal_new (I_("wrapped"),
|
||||||
|
G_TYPE_FROM_CLASS (gobject_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GtkSpinButtonClass, wrapped),
|
||||||
|
NULL, NULL,
|
||||||
|
_gtk_marshal_VOID__VOID,
|
||||||
|
G_TYPE_NONE, 0);
|
||||||
|
|
||||||
/* Action signals */
|
/* Action signals */
|
||||||
spinbutton_signals[CHANGE_VALUE] =
|
spinbutton_signals[CHANGE_VALUE] =
|
||||||
g_signal_new (I_("change_value"),
|
g_signal_new (I_("change_value"),
|
||||||
@ -1480,6 +1499,7 @@ gtk_spin_button_real_spin (GtkSpinButton *spin_button,
|
|||||||
{
|
{
|
||||||
GtkAdjustment *adj;
|
GtkAdjustment *adj;
|
||||||
gdouble new_value = 0.0;
|
gdouble new_value = 0.0;
|
||||||
|
gboolean wrapped = FALSE;
|
||||||
|
|
||||||
adj = spin_button->adjustment;
|
adj = spin_button->adjustment;
|
||||||
|
|
||||||
@ -1490,7 +1510,10 @@ gtk_spin_button_real_spin (GtkSpinButton *spin_button,
|
|||||||
if (spin_button->wrap)
|
if (spin_button->wrap)
|
||||||
{
|
{
|
||||||
if (fabs (adj->value - adj->upper) < EPSILON)
|
if (fabs (adj->value - adj->upper) < EPSILON)
|
||||||
new_value = adj->lower;
|
{
|
||||||
|
new_value = adj->lower;
|
||||||
|
wrapped = TRUE;
|
||||||
|
}
|
||||||
else if (new_value > adj->upper)
|
else if (new_value > adj->upper)
|
||||||
new_value = adj->upper;
|
new_value = adj->upper;
|
||||||
}
|
}
|
||||||
@ -1502,7 +1525,10 @@ gtk_spin_button_real_spin (GtkSpinButton *spin_button,
|
|||||||
if (spin_button->wrap)
|
if (spin_button->wrap)
|
||||||
{
|
{
|
||||||
if (fabs (adj->value - adj->lower) < EPSILON)
|
if (fabs (adj->value - adj->lower) < EPSILON)
|
||||||
new_value = adj->upper;
|
{
|
||||||
|
new_value = adj->upper;
|
||||||
|
wrapped = TRUE;
|
||||||
|
}
|
||||||
else if (new_value < adj->lower)
|
else if (new_value < adj->lower)
|
||||||
new_value = adj->lower;
|
new_value = adj->lower;
|
||||||
}
|
}
|
||||||
@ -1513,6 +1539,9 @@ gtk_spin_button_real_spin (GtkSpinButton *spin_button,
|
|||||||
if (fabs (new_value - adj->value) > EPSILON)
|
if (fabs (new_value - adj->value) > EPSILON)
|
||||||
gtk_adjustment_set_value (adj, new_value);
|
gtk_adjustment_set_value (adj, new_value);
|
||||||
|
|
||||||
|
if (wrapped)
|
||||||
|
g_signal_emit (spin_button, spinbutton_signals[WRAPPED], 0);
|
||||||
|
|
||||||
spin_button_redraw (spin_button);
|
spin_button_redraw (spin_button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,11 +108,12 @@ struct _GtkSpinButtonClass
|
|||||||
void (*change_value) (GtkSpinButton *spin_button,
|
void (*change_value) (GtkSpinButton *spin_button,
|
||||||
GtkScrollType scroll);
|
GtkScrollType scroll);
|
||||||
|
|
||||||
|
void (*wrapped) (GtkSpinButton *spin_button);
|
||||||
|
|
||||||
/* Padding for future expansion */
|
/* Padding for future expansion */
|
||||||
void (*_gtk_reserved1) (void);
|
void (*_gtk_reserved1) (void);
|
||||||
void (*_gtk_reserved2) (void);
|
void (*_gtk_reserved2) (void);
|
||||||
void (*_gtk_reserved3) (void);
|
void (*_gtk_reserved3) (void);
|
||||||
void (*_gtk_reserved4) (void);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user