summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorStefan Jeske <stefan@src.gnome.org>1998-06-13 08:56:27 +0000
committerStefan Jeske <stefan@src.gnome.org>1998-06-13 08:56:27 +0000
commitb39687aac81ceb8fadb1d4521097b59c4dad1b84 (patch)
tree05a4d9b1609e06f57b4bed661faa309511afa58b /gtk
parent92270f862031189db6efef152c13184a754f3a68 (diff)
downloadgtk+-b39687aac81ceb8fadb1d4521097b59c4dad1b84.tar.gz
New API to set the shadow type of the arrow panel.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkspinbutton.c29
-rw-r--r--gtk/gtkspinbutton.h6
-rw-r--r--gtk/testgtk.c6
3 files changed, 34 insertions, 7 deletions
diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c
index 6692cb1f6b..b2eea83844 100644
--- a/gtk/gtkspinbutton.c
+++ b/gtk/gtkspinbutton.c
@@ -152,6 +152,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
{
spin_button->adjustment = NULL;
spin_button->panel = NULL;
+ spin_button->shadow_type = GTK_SHADOW_OUT;
spin_button->timer = 0;
spin_button->climb_rate = 0.0;
spin_button->timer_step = 0.0;
@@ -364,11 +365,12 @@ gtk_spin_button_paint (GtkWidget *widget,
if (GTK_WIDGET_DRAWABLE (widget))
{
- gtk_draw_shadow (widget->style, spin->panel,
- GTK_STATE_NORMAL, GTK_SHADOW_OUT,
- 0, 0, ARROW_SIZE + 2 * widget->style->klass->xthickness,
- widget->requisition.height);
-
+ if (spin->shadow_type != GTK_SHADOW_NONE)
+ gtk_draw_shadow (widget->style, spin->panel,
+ GTK_STATE_NORMAL, spin->shadow_type,
+ 0, 0,
+ ARROW_SIZE + 2 * widget->style->klass->xthickness,
+ widget->requisition.height);
gtk_spin_button_draw_arrow (spin, GTK_ARROW_UP);
gtk_spin_button_draw_arrow (spin, GTK_ARROW_DOWN);
@@ -1124,10 +1126,25 @@ gtk_spin_button_insert_text (GtkEditable *editable,
void
gtk_spin_button_set_wrap (GtkSpinButton *spin_button,
- gint wrap)
+ gint wrap)
{
g_return_if_fail (spin_button != NULL);
g_return_if_fail (GTK_IS_SPIN_BUTTON (spin_button));
spin_button->wrap = (wrap != 0);
}
+
+void
+gtk_spin_button_set_shadow_type (GtkSpinButton *spin_button,
+ GtkShadowType shadow_type)
+{
+ g_return_if_fail (spin_button != NULL);
+ g_return_if_fail (GTK_IS_SPIN_BUTTON (spin_button));
+
+ if (shadow_type != spin_button->shadow_type)
+ {
+ spin_button->shadow_type = shadow_type;
+ if (GTK_WIDGET_DRAWABLE (spin_button))
+ gdk_window_clear (spin_button->panel);
+ }
+}
diff --git a/gtk/gtkspinbutton.h b/gtk/gtkspinbutton.h
index e7a70fd611..8d1641882b 100644
--- a/gtk/gtkspinbutton.h
+++ b/gtk/gtkspinbutton.h
@@ -58,7 +58,8 @@ struct _GtkSpinButton
GtkAdjustment *adjustment;
GdkWindow *panel;
-
+ GtkShadowType shadow_type;
+
guint32 timer;
gfloat climb_rate;
@@ -120,6 +121,9 @@ void gtk_spin_button_spin (GtkSpinButton *spin_button,
void gtk_spin_button_set_wrap (GtkSpinButton *spin_button,
gint wrap);
+void gtk_spin_button_set_shadow_type (GtkSpinButton *spin_button,
+ GtkShadowType shadow_type);
+
diff --git a/gtk/testgtk.c b/gtk/testgtk.c
index b93a16da61..ed1d72244f 100644
--- a/gtk/testgtk.c
+++ b/gtk/testgtk.c
@@ -2472,6 +2472,8 @@ create_spins (void)
5.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
+ gtk_spin_button_set_shadow_type (GTK_SPIN_BUTTON (spinner),
+ GTK_SHADOW_NONE);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
vbox2 = gtk_vbox_new (FALSE, 0);
@@ -2485,6 +2487,8 @@ create_spins (void)
5.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
+ gtk_spin_button_set_shadow_type (GTK_SPIN_BUTTON (spinner),
+ GTK_SHADOW_ETCHED_IN);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
vbox2 = gtk_vbox_new (FALSE, 0);
@@ -2498,6 +2502,8 @@ create_spins (void)
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_spin_button_set_shadow_type (GTK_SPIN_BUTTON (spinner),
+ GTK_SHADOW_IN);
gtk_widget_set_usize (spinner, 55, 0);
gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);