summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@gtk.org>1998-05-03 22:41:32 +0000
committerOwen Taylor <otaylor@src.gnome.org>1998-05-03 22:41:32 +0000
commit4851efe29604e1d950dc9711d9d7ced69771f2e9 (patch)
treece3b07c7f78836ae33f34479193041f19e9548d6 /gtk/gtkrange.c
parentc0b92323516fef167517dc9ab645dcfd4075227e (diff)
downloadgdk-pixbuf-4851efe29604e1d950dc9711d9d7ced69771f2e9.tar.gz
configure.in acheader.h gdk/gdkwindow.c Check for Shape extension both on
Sun May 3 13:38:22 1998 Owen Taylor <otaylor@gtk.org> * configure.in acheader.h gdk/gdkwindow.c Check for Shape extension both on the client and server side. (And, more importantly, check for the shape extension so we may include -lXext even when compiling with --disable-xshm) Don't set override_redirect on all shaped windows. It isn't necessary. * gdk/gdkwindow.c: Set ->colormap to NULL for root and foreign windows. Use this to check if we need to get the colormap from X. Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org> * gtk/gtkbutton.c (gtk_button_paint): Draw the areas between the default and the button always in GTK_STATE_NORMAL. * gtk/gtkrange.c (gtk_range_style_set): Added a style_set callback. Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org> * gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]): Fix a buffer overflow on pixmaps that claim to have more than 31 characters per pixel. (gdk_pixmap_read_string): Don't wrap around strings longer than half of address space ;-) * gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers that were used for printing integers. * */* (almost): Style: All int foo () { ... } changed to int foo (void) { ... } ^^^^^^^ This is why some many files changed Even where there were proper prototypes elsewhere. * gdk/gxid.c (handle_claim_device): Some extra checks. It isn't safe against being fed bad X id's, but at least it should be safe against deleting all your files.
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r--gtk/gtkrange.c42
1 files changed, 41 insertions, 1 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index a4c50e067..999e1888c 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -54,6 +54,9 @@ static gint gtk_range_focus_in (GtkWidget *widget,
GdkEventFocus *event);
static gint gtk_range_focus_out (GtkWidget *widget,
GdkEventFocus *event);
+static void gtk_range_style_set (GtkWidget *widget,
+ GtkStyle *previous_style);
+
static void gtk_real_range_draw_trough (GtkRange *range);
static void gtk_real_range_draw_slider (GtkRange *range);
static gint gtk_real_range_timer (GtkRange *range);
@@ -79,7 +82,7 @@ static GtkWidgetClass *parent_class = NULL;
guint
-gtk_range_get_type ()
+gtk_range_get_type (void)
{
static guint range_type = 0;
@@ -127,6 +130,7 @@ gtk_range_class_init (GtkRangeClass *class)
widget_class->leave_notify_event = gtk_range_leave_notify;
widget_class->focus_in_event = gtk_range_focus_in;
widget_class->focus_out_event = gtk_range_focus_out;
+ widget_class->style_set = gtk_range_style_set;
class->slider_width = 11;
class->stepper_size = 11;
@@ -1455,3 +1459,39 @@ gtk_range_trough_vdims (GtkRange *range,
*bottom = tbottom;
}
+static void
+gtk_range_style_set (GtkWidget *widget,
+ GtkStyle *previous_style)
+{
+ GtkRange *range;
+
+ g_return_if_fail (widget != NULL);
+ g_return_if_fail (GTK_IS_RANGE (widget));
+
+ range = GTK_RANGE (widget);
+
+ if (GTK_WIDGET_REALIZED (widget) &&
+ !GTK_WIDGET_NO_WINDOW (widget))
+ {
+ if (range->trough)
+ {
+ gtk_style_set_background (widget->style, range->trough, GTK_STATE_ACTIVE);
+ if (GTK_WIDGET_DRAWABLE (widget))
+ gdk_window_clear (range->trough);
+ }
+ /* The draw will take care of the slider */
+
+ if (range->step_forw)
+ {
+ gtk_style_set_background (widget->style, range->step_forw, GTK_STATE_ACTIVE);
+ if (GTK_WIDGET_DRAWABLE (widget))
+ gdk_window_clear (range->step_forw);
+ }
+ if (range->step_back)
+ {
+ gtk_style_set_background (widget->style, range->step_back, GTK_STATE_ACTIVE);
+ if (GTK_WIDGET_DRAWABLE (widget))
+ gdk_window_clear (range->step_back);
+ }
+ }
+}