/* Expose callback for the drawing area
*/
static gboolean
-expose_event_callback (GtkWidget *widget,
- GdkEventExpose *event,
- gpointer data)
+draw_callback (GtkWidget *widget,
+ cairo_t *cr,
+ gpointer data)
{
- if (widget->window)
- {
- GtkStyle *style;
- cairo_t *cr;
-
- style = gtk_widget_get_style (widget);
+ GtkStyle *style;
- cr = gdk_cairo_create (widget->window);
+ style = gtk_widget_get_style (widget);
- gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
- gdk_cairo_rectangle (cr, &event->area);
- cairo_fill (cr);
-
- cairo_destroy (cr);
- }
+ gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
+ cairo_paint (cr);
return TRUE;
}
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
- vbox = gtk_vbox_new (FALSE, 8);
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
gtk_container_add (GTK_CONTAINER (window), vbox);
da = gtk_drawing_area_new ();
- g_signal_connect (da, "expose_event",
- G_CALLBACK (expose_event_callback), NULL);
+ g_signal_connect (da, "draw",
+ G_CALLBACK (draw_callback), NULL);
/* set a minimum size */
gtk_widget_set_size_request (da, 200, 200);