diff options
author | Benjamin Otte <otte@redhat.com> | 2010-09-08 16:37:43 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2010-09-26 15:11:39 +0200 |
commit | a4bbe4da10d7b95874ca04d7ea1f572eb6598406 (patch) | |
tree | 9ed8c6cd1fc58459f0db224add5c13921d3fe0f6 /gtk/gtkassistant.c | |
parent | b0c53021157822f0855faf29c211fe87d0513b74 (diff) | |
download | gtk+-a4bbe4da10d7b95874ca04d7ea1f572eb6598406.tar.gz |
assistant: Port to draw vfunc
Diffstat (limited to 'gtk/gtkassistant.c')
-rw-r--r-- | gtk/gtkassistant.c | 40 |
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; |