/* * gcc -Wall -g `pkg-config --cflags --libs gtk+-2.0` drawfocus.c -o drawfocus */ #include static GtkWidget *draw_window; gboolean my_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { GdkDrawable* drawable = GDK_DRAWABLE (widget->window); GtkStyle *style = gtk_widget_get_style (draw_window); gtk_paint_focus (style, drawable, GTK_STATE_NORMAL, NULL, 0, "", 20, 20, 40, 40); return TRUE; } int main (int argc, char **argv) { GtkWidget *window; GtkWidget *vbox; GtkWidget *area; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); draw_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_realize (draw_window); vbox = gtk_vbox_new (FALSE, 0); area = gtk_drawing_area_new (); gtk_widget_set_size_request (area, 200, 200); gtk_container_add (GTK_CONTAINER (vbox), area); gtk_container_add (GTK_CONTAINER (window), vbox); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect (G_OBJECT (area), "expose-event", G_CALLBACK (my_expose_event), NULL); gtk_widget_show_all (window); gtk_main (); return 0; }