3 * GtkSpinner allows to show that background activity is on-going.
9 static GtkWidget *window = NULL;
10 static GtkWidget *spinner_sensitive = NULL;
11 static GtkWidget *spinner_unsensitive = NULL;
14 on_play_clicked (GtkButton *button, gpointer user_data)
16 gtk_spinner_start (GTK_SPINNER (spinner_sensitive));
17 gtk_spinner_start (GTK_SPINNER (spinner_unsensitive));
21 on_stop_clicked (GtkButton *button, gpointer user_data)
23 gtk_spinner_stop (GTK_SPINNER (spinner_sensitive));
24 gtk_spinner_stop (GTK_SPINNER (spinner_unsensitive));
28 do_spinner (GtkWidget *do_widget)
37 window = gtk_dialog_new_with_buttons ("GtkSpinner",
38 GTK_WINDOW (do_widget),
43 gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
45 g_signal_connect (window, "response",
46 G_CALLBACK (gtk_widget_destroy), NULL);
47 g_signal_connect (window, "destroy",
48 G_CALLBACK (gtk_widget_destroyed), &window);
50 vbox = gtk_vbox_new (FALSE, 5);
51 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0);
52 gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
55 hbox = gtk_hbox_new (FALSE, 5);
56 spinner = gtk_spinner_new ();
57 gtk_container_add (GTK_CONTAINER (hbox), spinner);
58 gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ());
59 gtk_container_add (GTK_CONTAINER (vbox), hbox);
60 spinner_sensitive = spinner;
63 hbox = gtk_hbox_new (FALSE, 5);
64 spinner = gtk_spinner_new ();
65 gtk_container_add (GTK_CONTAINER (hbox), spinner);
66 gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ());
67 gtk_container_add (GTK_CONTAINER (vbox), hbox);
68 spinner_unsensitive = spinner;
69 gtk_widget_set_sensitive (hbox, FALSE);
71 button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PLAY);
72 g_signal_connect (G_OBJECT (button), "clicked",
73 G_CALLBACK (on_play_clicked), spinner);
74 gtk_container_add (GTK_CONTAINER (vbox), button);
76 button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_STOP);
77 g_signal_connect (G_OBJECT (button), "clicked",
78 G_CALLBACK (on_stop_clicked), spinner);
79 gtk_container_add (GTK_CONTAINER (vbox), button);
81 /* Start by default to test for:
82 * https://bugzilla.gnome.org/show_bug.cgi?id=598496 */
83 on_play_clicked (NULL, NULL);
86 if (!gtk_widget_get_visible (window))
87 gtk_widget_show_all (window);
89 gtk_widget_destroy (window);