Added a "Close" button to the progress window

This commit is contained in:
Pierre Pronchery 2011-02-06 12:06:28 +00:00
parent e96dd8155f
commit fe39260438

View File

@ -2802,21 +2802,27 @@ static GtkWidget * _phone_create_progress(GtkWidget * parent, char const * text)
GtkWidget * vbox; GtkWidget * vbox;
GtkWidget * widget; GtkWidget * widget;
/* FIXME add a cancel button? callback needed for delete-event then */ /* window */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK( g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(
on_phone_closex), NULL); on_phone_closex), NULL);
gtk_window_set_modal(GTK_WINDOW(window), TRUE); gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_title(GTK_WINDOW(window), _("Operation in progress...")); gtk_window_set_title(GTK_WINDOW(window), _("Operation in progress..."));
gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(parent)); gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(parent));
vbox = gtk_vbox_new(FALSE, 0); vbox = gtk_vbox_new(FALSE, 4);
widget = gtk_label_new(text); widget = gtk_label_new(text);
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 2); gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0);
/* progress bar */
widget = gtk_progress_bar_new(); widget = gtk_progress_bar_new();
g_object_set_data(G_OBJECT(window), "progress", widget); g_object_set_data(G_OBJECT(window), "progress", widget);
gtk_progress_bar_pulse(GTK_PROGRESS_BAR(widget)); gtk_progress_bar_pulse(GTK_PROGRESS_BAR(widget));
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(widget), " "); gtk_progress_bar_set_text(GTK_PROGRESS_BAR(widget), " ");
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 2); gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0);
/* close button */
widget = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
g_signal_connect_swapped(G_OBJECT(widget), "clicked", G_CALLBACK(
gtk_widget_hide), window);
gtk_box_pack_end(GTK_BOX(vbox), widget, FALSE, TRUE, 0);
gtk_container_set_border_width(GTK_CONTAINER(window), 4); gtk_container_set_border_width(GTK_CONTAINER(window), 4);
gtk_container_add(GTK_CONTAINER(window), vbox); gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show_all(window); gtk_widget_show_all(window);