summaryrefslogtreecommitdiff
path: root/gtk/gtkassistant.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-09-08 16:37:43 +0200
committerBenjamin Otte <otte@redhat.com>2010-09-26 15:11:39 +0200
commita4bbe4da10d7b95874ca04d7ea1f572eb6598406 (patch)
tree9ed8c6cd1fc58459f0db224add5c13921d3fe0f6 /gtk/gtkassistant.c
parentb0c53021157822f0855faf29c211fe87d0513b74 (diff)
downloadgtk+-a4bbe4da10d7b95874ca04d7ea1f572eb6598406.tar.gz
assistant: Port to draw vfunc
Diffstat (limited to 'gtk/gtkassistant.c')
-rw-r--r--gtk/gtkassistant.c40
1 files changed, 16 insertions, 24 deletions
diff --git a/gtk/gtkassistant.c b/gtk/gtkassistant.c
index 9f9d86c7e5..2a16a22eac 100644
--- a/gtk/gtkassistant.c
+++ b/gtk/gtkassistant.c
@@ -125,8 +125,8 @@ static void gtk_assistant_map (GtkWidget *widget);
static void gtk_assistant_unmap (GtkWidget *widget);
static gboolean gtk_assistant_delete_event (GtkWidget *widget,
GdkEventAny *event);
-static gboolean gtk_assistant_expose (GtkWidget *widget,
- GdkEventExpose *event);
+static gboolean gtk_assistant_draw (GtkWidget *widget,
+ cairo_t *cr);
static gboolean gtk_assistant_focus (GtkWidget *widget,
GtkDirectionType direction);
static void gtk_assistant_add (GtkContainer *container,
@@ -217,7 +217,7 @@ gtk_assistant_class_init (GtkAssistantClass *class)
widget_class->map = gtk_assistant_map;
widget_class->unmap = gtk_assistant_unmap;
widget_class->delete_event = gtk_assistant_delete_event;
- widget_class->expose_event = gtk_assistant_expose;
+ widget_class->draw = gtk_assistant_draw;
widget_class->focus = gtk_assistant_focus;
widget_class->get_accessible = gtk_assistant_get_accessible;
@@ -1380,18 +1380,17 @@ gtk_assistant_delete_event (GtkWidget *widget,
}
static void
-assistant_paint_colored_box (GtkWidget *widget)
+assistant_paint_colored_box (GtkWidget *widget,
+ cairo_t *cr)
{
GtkAssistant *assistant = GTK_ASSISTANT (widget);
GtkAssistantPrivate *priv = assistant->priv;
GtkAllocation allocation, action_area_allocation, header_image_allocation;
GtkStyle *style;
gint border_width, header_padding, content_padding;
- cairo_t *cr;
gint content_x, content_width;
gboolean rtl;
- cr = gdk_cairo_create (gtk_widget_get_window (widget));
rtl = (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL);
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
@@ -1438,33 +1437,26 @@ assistant_paint_colored_box (GtkWidget *widget)
allocation.height - 2 * border_width - action_area_allocation.height -
header_image_allocation.height - 2 * content_padding - 2 * header_padding - ACTION_AREA_SPACING);
cairo_fill (cr);
-
- cairo_destroy (cr);
}
static gboolean
-gtk_assistant_expose (GtkWidget *widget,
- GdkEventExpose *event)
+gtk_assistant_draw (GtkWidget *widget,
+ cairo_t *cr)
{
GtkAssistant *assistant = GTK_ASSISTANT (widget);
GtkAssistantPrivate *priv = assistant->priv;
- GtkContainer *container;
-
- if (gtk_widget_is_drawable (widget))
- {
- container = GTK_CONTAINER (widget);
+ GtkContainer *container = GTK_CONTAINER (widget);
- assistant_paint_colored_box (widget);
+ assistant_paint_colored_box (widget, cr);
- gtk_container_propagate_expose (container, priv->header_image, event);
- gtk_container_propagate_expose (container, priv->sidebar_image, event);
- gtk_container_propagate_expose (container, priv->action_area, event);
+ gtk_container_propagate_draw (container, priv->header_image, cr);
+ gtk_container_propagate_draw (container, priv->sidebar_image, cr);
+ gtk_container_propagate_draw (container, priv->action_area, cr);
- if (priv->current_page)
- {
- gtk_container_propagate_expose (container, priv->current_page->page, event);
- gtk_container_propagate_expose (container, priv->current_page->title, event);
- }
+ if (priv->current_page)
+ {
+ gtk_container_propagate_draw (container, priv->current_page->page, cr);
+ gtk_container_propagate_draw (container, priv->current_page->title, cr);
}
return FALSE;