-static GtkWidget *
-create_window (Model *model)
-{
- GtkWidget *window;
- GtkWidget *frame;
- GtkWidget *vbox;
- GtkWidget *da;
- GtkWidget *spinners;
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title (GTK_WINDOW (window), "Drawing Area");
-
- g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), &window);
-
- gtk_container_set_border_width (GTK_CONTAINER (window), 8);
-
- vbox = gtk_vbox_new (FALSE, 8);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
- gtk_container_add (GTK_CONTAINER (window), vbox);
-
- /*
- * Create the drawing area
- */
-
- frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
- gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
-
- da = gtk_drawing_area_new ();
- /* set a minimum size */
- gtk_widget_set_size_request (da, 600, 500);
-
- gtk_container_add (GTK_CONTAINER (frame), da);
-
- /* Signals used to handle backing pixmap */
-
- g_signal_connect (da, "expose_event",
- G_CALLBACK (sproing_expose_event), model);
-
- /* Event signals */
-
- g_signal_connect (da, "motion_notify_event",
- G_CALLBACK (sproing_motion_notify_event), model);
- g_signal_connect (da, "button_press_event",
- G_CALLBACK (sproing_button_press_event), model);
- g_signal_connect (da, "button_release_event",
- G_CALLBACK (sproing_button_release_event), model);
-
- /* Ask to receive events the drawing area doesn't normally
- * subscribe to
- */
- gtk_widget_set_events (da, gtk_widget_get_events (da)
- | GDK_LEAVE_NOTIFY_MASK
- | GDK_BUTTON_PRESS_MASK
- | GDK_BUTTON_RELEASE_MASK
- | GDK_POINTER_MOTION_MASK
- | GDK_POINTER_MOTION_HINT_MASK);
-
- spinners = create_spinners (model);
- gtk_box_pack_start (GTK_BOX (vbox), spinners, FALSE, FALSE, 0);
-
- return da;