Added wrapping capabilities to GtkSpinButton. New function :

Sun Mar 29 22:29:00 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
                Added wrapping capabilities to GtkSpinButton. New function :
                        gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
This commit is contained in:
Tim Janik 1998-03-29 20:40:10 +00:00 committed by Tim Janik
parent 93e1585614
commit 2f5621e566
11 changed files with 131 additions and 44 deletions

View File

@ -1,3 +1,9 @@
Sun Mar 29 22:29:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
Added wrapping capabilities to GtkSpinButton. New function :
gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
Sat Mar 28 21:18:42 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkcombo.c (gtk_combo_disable_activate):

View File

@ -1,3 +1,9 @@
Sun Mar 29 22:29:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
Added wrapping capabilities to GtkSpinButton. New function :
gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
Sat Mar 28 21:18:42 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkcombo.c (gtk_combo_disable_activate):

View File

@ -1,3 +1,9 @@
Sun Mar 29 22:29:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
Added wrapping capabilities to GtkSpinButton. New function :
gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
Sat Mar 28 21:18:42 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkcombo.c (gtk_combo_disable_activate):

View File

@ -1,3 +1,9 @@
Sun Mar 29 22:29:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
Added wrapping capabilities to GtkSpinButton. New function :
gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
Sat Mar 28 21:18:42 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkcombo.c (gtk_combo_disable_activate):

View File

@ -1,3 +1,9 @@
Sun Mar 29 22:29:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
Added wrapping capabilities to GtkSpinButton. New function :
gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
Sat Mar 28 21:18:42 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkcombo.c (gtk_combo_disable_activate):

View File

@ -1,3 +1,9 @@
Sun Mar 29 22:29:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
Added wrapping capabilities to GtkSpinButton. New function :
gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
Sat Mar 28 21:18:42 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkcombo.c (gtk_combo_disable_activate):

View File

@ -1,3 +1,9 @@
Sun Mar 29 22:29:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
Added wrapping capabilities to GtkSpinButton. New function :
gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
Sat Mar 28 21:18:42 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkcombo.c (gtk_combo_disable_activate):

View File

@ -162,6 +162,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
spin_button->timer_calls = 0;
spin_button->digits = 0;
spin_button->numeric = 0;
spin_button->wrap = 0;
}
void
@ -759,21 +760,41 @@ gtk_spin_button_spin (GtkSpinButton *spin_button,
gfloat step)
{
gfloat new_value = 0.0;
g_return_if_fail (spin_button != NULL);
g_return_if_fail (GTK_IS_SPIN_BUTTON (spin_button));
if (direction == GTK_ARROW_UP)
{
new_value = MIN (spin_button->adjustment->value + step,
spin_button->adjustment->upper);
new_value = spin_button->adjustment->value + step;
if (spin_button->wrap)
{
if (spin_button->adjustment->value == spin_button->adjustment->upper)
new_value = spin_button->adjustment->lower;
else if (new_value > spin_button->adjustment->upper)
new_value = spin_button->adjustment->upper;
}
else
{
new_value = MIN (new_value, spin_button->adjustment->upper);
}
}
else if (direction == GTK_ARROW_DOWN)
{
new_value = MAX (spin_button->adjustment->value - step,
spin_button->adjustment->lower);
new_value = spin_button->adjustment->value - step;
if (spin_button->wrap)
{
if (spin_button->adjustment->value == spin_button->adjustment->lower)
new_value = spin_button->adjustment->upper;
else if (new_value < spin_button->adjustment->lower)
new_value = spin_button->adjustment->lower;
}
else
{
new_value = MAX (new_value, spin_button->adjustment->lower);
}
}
if (new_value != spin_button->adjustment->value)
gtk_adjustment_set_value (spin_button->adjustment, new_value);
}
@ -1100,3 +1121,13 @@ gtk_spin_button_insert_text (GtkEditable *editable,
GTK_EDITABLE_CLASS (parent_class)->insert_text (editable, new_text,
new_text_length, position);
}
void
gtk_spin_button_set_wrap (GtkSpinButton *spin_button,
gint wrap)
{
g_return_if_fail (spin_button != NULL);
g_return_if_fail (GTK_IS_SPIN_BUTTON (spin_button));
spin_button->wrap = (wrap != 0);
}

View File

@ -11,7 +11,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@ -31,40 +31,40 @@
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define GTK_SPIN_BUTTON(obj) GTK_CHECK_CAST (obj, gtk_spin_button_get_type (), GtkSpinButton)
#define GTK_SPIN_BUTTON(obj) GTK_CHECK_CAST (obj, gtk_spin_button_get_type (), GtkSpinButton)
#define GTK_SPIN_BUTTON_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_spin_button_get_type (), GtkSpinButtonClass)
#define GTK_IS_SPIN_BUTTON(obj) GTK_CHECK_TYPE (obj, gtk_spin_button_get_type ())
#define GTK_IS_SPIN_BUTTON(obj) GTK_CHECK_TYPE (obj, gtk_spin_button_get_type ())
typedef enum
{
GTK_UPDATE_ALWAYS = 1 << 0,
GTK_UPDATE_IF_VALID = 1 << 1,
GTK_UPDATE_ALWAYS = 1 << 0,
GTK_UPDATE_IF_VALID = 1 << 1,
GTK_UPDATE_SNAP_TO_TICKS = 1 << 2
} GtkSpinButtonUpdatePolicy;
typedef struct _GtkSpinButton GtkSpinButton;
typedef struct _GtkSpinButton GtkSpinButton;
typedef struct _GtkSpinButtonClass GtkSpinButtonClass;
struct _GtkSpinButton
{
GtkEntry entry;
GtkAdjustment *adjustment;
GdkWindow *panel;
guint32 timer;
gfloat climb_rate;
gfloat timer_step;
guint8 update_policy;
guint in_child : 2;
guint click_child : 2;
guint button : 2;
@ -72,6 +72,7 @@ struct _GtkSpinButton
guint timer_calls : 3;
guint digits : 3;
guint numeric : 1;
guint wrap : 1;
};
struct _GtkSpinButtonClass
@ -79,42 +80,47 @@ struct _GtkSpinButtonClass
GtkEntryClass parent_class;
};
guint gtk_spin_button_get_type (void);
guint gtk_spin_button_get_type (void);
void gtk_spin_button_construct (GtkSpinButton *spin_button,
void gtk_spin_button_construct (GtkSpinButton *spin_button,
GtkAdjustment *adjustment,
gfloat climb_rate,
gint digits);
gfloat climb_rate,
gint digits);
GtkWidget* gtk_spin_button_new (GtkAdjustment *adjustment,
gfloat climb_rate,
gint digits);
GtkWidget* gtk_spin_button_new (GtkAdjustment *adjustment,
gfloat climb_rate,
gint digits);
void gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
void gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
GtkAdjustment *adjustment);
GtkAdjustment* gtk_spin_button_get_adjustment (GtkSpinButton *spin_button);
GtkAdjustment* gtk_spin_button_get_adjustment (GtkSpinButton *spin_button);
void gtk_spin_button_set_digits (GtkSpinButton *spin_button,
gint digits);
void gtk_spin_button_set_digits (GtkSpinButton *spin_button,
gint digits);
gfloat gtk_spin_button_get_value_as_float (GtkSpinButton *spin_button);
gint gtk_spin_button_get_value_as_int (GtkSpinButton *spin_button);
void gtk_spin_button_set_value (GtkSpinButton *spin_button,
gfloat value);
void gtk_spin_button_set_value (GtkSpinButton *spin_button,
gfloat value);
void gtk_spin_button_set_update_policy (GtkSpinButton *spin_button,
GtkSpinButtonUpdatePolicy policy);
void gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
gint numeric);
void gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
gint numeric);
void gtk_spin_button_spin (GtkSpinButton *spin_button,
guint direction,
gfloat step);
guint direction,
gfloat step);
void gtk_spin_button_set_wrap (GtkSpinButton *spin_button,
gint wrap);
#ifdef __cplusplus
}

View File

@ -2346,6 +2346,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (1.0, 1.0, 31.0, 1.0,
5.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
vbox2 = gtk_vbox_new (FALSE, 0);
@ -2358,6 +2359,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (1.0, 1.0, 12.0, 1.0,
5.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
vbox2 = gtk_vbox_new (FALSE, 0);
@ -2370,6 +2372,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (1998.0, 0.0, 2100.0,
1.0, 100.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
gtk_widget_set_usize (spinner, 55, 0);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
@ -2393,6 +2396,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (0.0, -10000.0, 10000.0,
0.5, 100.0, 0.0);
spinner1 = gtk_spin_button_new (adj, 1.0, 2);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner1), TRUE);
gtk_widget_set_usize (spinner1, 100, 0);
gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spinner1),
GTK_UPDATE_ALWAYS);
@ -2407,6 +2411,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (2, 1, 5, 1, 1, 0);
spinner2 = gtk_spin_button_new (adj, 0.0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner2), TRUE);
gtk_signal_connect (GTK_OBJECT (adj), "value_changed",
GTK_SIGNAL_FUNC (change_digits),
(gpointer) spinner2);
@ -2467,7 +2472,6 @@ create_spins ()
gtk_widget_destroy (window);
}
/*
* Cursors
*/

View File

@ -2346,6 +2346,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (1.0, 1.0, 31.0, 1.0,
5.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
vbox2 = gtk_vbox_new (FALSE, 0);
@ -2358,6 +2359,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (1.0, 1.0, 12.0, 1.0,
5.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
vbox2 = gtk_vbox_new (FALSE, 0);
@ -2370,6 +2372,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (1998.0, 0.0, 2100.0,
1.0, 100.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
gtk_widget_set_usize (spinner, 55, 0);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
@ -2393,6 +2396,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (0.0, -10000.0, 10000.0,
0.5, 100.0, 0.0);
spinner1 = gtk_spin_button_new (adj, 1.0, 2);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner1), TRUE);
gtk_widget_set_usize (spinner1, 100, 0);
gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spinner1),
GTK_UPDATE_ALWAYS);
@ -2407,6 +2411,7 @@ create_spins ()
adj = (GtkAdjustment *) gtk_adjustment_new (2, 1, 5, 1, 1, 0);
spinner2 = gtk_spin_button_new (adj, 0.0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner2), TRUE);
gtk_signal_connect (GTK_OBJECT (adj), "value_changed",
GTK_SIGNAL_FUNC (change_digits),
(gpointer) spinner2);
@ -2467,7 +2472,6 @@ create_spins ()
gtk_widget_destroy (window);
}
/*
* Cursors
*/