diff options
author | Owen Taylor <otaylor@redhat.com> | 1999-01-15 16:00:39 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1999-01-15 16:00:39 +0000 |
commit | 2e99e7713dc73ea5b7a000ab03b4d64176b9ad40 (patch) | |
tree | b53b62d8cc9bf47aa3b9c77015a260eb8fe09b09 /gtk/gtkcheckbutton.c | |
parent | 3bba8439685024f9fbfd9d1880da95f4cd9ce09f (diff) | |
download | gtk+-2e99e7713dc73ea5b7a000ab03b4d64176b9ad40.tar.gz |
nparams for selection_get should be 3, not 2. [ From Damon Chaplin
Fri Jan 15 10:22:21 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_class_init):
nparams for selection_get should be 3, not 2.
[ From Damon Chaplin <damon@karuna.freeserve.co.uk> ]
* gtk/gtkeventbox.c (gtk_event_box_paint): Add a paint
routine so queued redraws work inside event boxes.
Thu Jan 14 17:47:37 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable): Only
redraw character under cursor when not displaying
highlighted selection.
* gdk/gdkrgb.c (gdk_rgb_init): Add in a cast to
gpointer to make IRIX cc happy.
Thu Jan 14 12:29:50 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcheckbutton.c (gtk_check_button_draw): Restructure
the drawing code to remove a bit of duplication -
and to remove a call to gtk_widget_draw_focus()
that queues a redraw when an expose occurs.
* gtk/gtklabel.c (gtk_label_expose): Fix up handling
of ypadding.
* gtk/gtknotebook.c (gtk_notebook_draw): If we redraw
the whole widget, also redraw the corresponding
areas of the child widget. (have_visible_child
still has some problems)
* gdk/gdkpixmap.c: Change some g_new's to g_new0 so
that fields unused for pixmaps get initialzized
sanely.
* gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: Add new calls
gdk_window_is_visible() and gdk_window_is_viewable()
and a mapped flag to the window private structure.
* gtk/gtkbin.c gtk/gtkclist.c gtk/gtkfixed.c gtk/gtkitem.c
gtk/gtklayout.c gtk/gtklist.c gtk/gtkmenushell.c
gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtktree.c
gtk/gtktreeitem.c gtk/gtkviewport.c:
Map windows after mapping children.
* gtk/gtkwidget.c (gtk_widget_clip_rect): Handle
rectangles completely clipped away correctly.
* gtk/gtkwidget.c (gtk_widget_idle_draw): Don't
call gtk_widget_draw if width or height is 0.
* gtk/gtkwidget.c (gtk_widget_idle_draw): Don't
rely on GTK_REDRAW_PENDING after we've cleared
it. (This was causing draw-combining to not
happen at all).
* gtk/gtkbin.c gtk/gtkscale.c: Remove uneccessary calls
to gtk_widget_queue_draw() when mapping.
Diffstat (limited to 'gtk/gtkcheckbutton.c')
-rw-r--r-- | gtk/gtkcheckbutton.c | 55 |
1 files changed, 37 insertions, 18 deletions
diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c index b77a373b9d..1e69eb56d9 100644 --- a/gtk/gtkcheckbutton.c +++ b/gtk/gtkcheckbutton.c @@ -37,6 +37,8 @@ static void gtk_check_button_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gint gtk_check_button_expose (GtkWidget *widget, GdkEventExpose *event); +static void gtk_check_button_paint (GtkWidget *widget, + GdkRectangle *area); static void gtk_check_button_draw_indicator (GtkCheckButton *check_button, GdkRectangle *area); static void gtk_real_check_button_draw_indicator (GtkCheckButton *check_button, @@ -119,6 +121,37 @@ gtk_check_button_new_with_label (const gchar *label) return check_button; } +/* This should only be called when toggle_button->draw_indicator + * is true. + */ +static void +gtk_check_button_paint (GtkWidget *widget, + GdkRectangle *area) +{ + GtkCheckButton *check_button; + + g_return_if_fail (widget != NULL); + g_return_if_fail (GTK_IS_CHECK_BUTTON (widget)); + + check_button = GTK_CHECK_BUTTON (widget); + + if (GTK_WIDGET_DRAWABLE (widget)) + { + gint border_width; + + gtk_check_button_draw_indicator (check_button, area); + + border_width = GTK_CONTAINER (widget)->border_width; + if (GTK_WIDGET_HAS_FOCUS (widget)) + gtk_paint_focus (widget->style, widget->window, + NULL, widget, "checkbutton", + border_width + widget->allocation.x, + border_width + widget->allocation.y, + widget->allocation.width - 2 * border_width - 1, + widget->allocation.height - 2 * border_width - 1); + } +} + static void gtk_check_button_draw (GtkWidget *widget, GdkRectangle *area) @@ -140,21 +173,9 @@ gtk_check_button_draw (GtkWidget *widget, { if (toggle_button->draw_indicator) { - gint border_width; - - gtk_check_button_draw_indicator (check_button, area); - - border_width = GTK_CONTAINER (widget)->border_width; - if (GTK_WIDGET_HAS_FOCUS (widget)) - gtk_paint_focus (widget->style, widget->window, - NULL, widget, "checkbutton", - border_width + widget->allocation.x, - border_width + widget->allocation.y, - widget->allocation.width - 2 * border_width - 1, - widget->allocation.height - 2 * border_width - 1); - - if (bin->child && GTK_WIDGET_NO_WINDOW (bin->child) && - gtk_widget_intersect (bin->child, area, &child_area)) + gtk_check_button_paint (widget, area); + + if (bin->child && gtk_widget_intersect (bin->child, area, &child_area)) gtk_widget_draw (bin->child, &child_area); } else @@ -280,14 +301,12 @@ gtk_check_button_expose (GtkWidget *widget, { if (toggle_button->draw_indicator) { - gtk_check_button_draw_indicator (check_button, &event->area); + gtk_check_button_paint (widget, &event->area); child_event = *event; if (bin->child && GTK_WIDGET_NO_WINDOW (bin->child) && gtk_widget_intersect (bin->child, &event->area, &child_event.area)) gtk_widget_event (bin->child, (GdkEvent*) &child_event); - - gtk_widget_draw_focus (widget); } else { |