#include #include static gboolean expose_event (GtkWidget *widget, GdkEventExpose *event) { cairo_t *cr; GdkRectangle rect = {-25, 11, 244, 352}; GdkColor *color; double dash_len = 1.; cr = gdk_cairo_create (event->window); color = &widget->style->base[GTK_STATE_SELECTED]; cairo_set_source_rgba (cr, 68./255, 137./255, 202./255, 1 / 3.); gdk_cairo_rectangle (cr, &rect); cairo_fill (cr); cairo_set_dash (cr, &dash_len, 1, .5); cairo_set_line_width (cr, 1.); gdk_cairo_set_source_color (cr, color); cairo_rectangle (cr, rect.x + .5, rect.y + .5, rect.width - 1, rect.height - 1); cairo_stroke (cr); cairo_destroy (cr); return TRUE; } int main (void) { GtkWidget *window; gtk_init (NULL, NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_resize (GTK_WINDOW (window), 300, 300); gtk_widget_show (window); g_signal_connect (window, "expose-event", G_CALLBACK (expose_event), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_main (); return 0; }