aboutsummaryrefslogtreecommitdiff
path: root/src/progressdialog.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2009-08-04 07:08:14 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2009-08-04 07:08:14 +0000
commitc24bf4d56469351ead16dd9d917bcddeff9d4fc7 (patch)
tree6b593d9e5828f695e072533975e79e3d0adaabf5 /src/progressdialog.c
parentf9900e671911918612d952dd669aa2129c13227e (diff)
show progressbar on mbox import.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2196 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/progressdialog.c')
-rw-r--r--src/progressdialog.c100
1 files changed, 56 insertions, 44 deletions
diff --git a/src/progressdialog.c b/src/progressdialog.c
index a015ad31..e650d504 100644
--- a/src/progressdialog.c
+++ b/src/progressdialog.c
@@ -1,6 +1,6 @@
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2008 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2009 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -43,11 +43,6 @@
ProgressDialog *progress_dialog_create(void)
{
ProgressDialog *progress;
- GtkWidget *dialog;
- GtkWidget *hbox;
- GtkWidget *label;
- GtkWidget *cancel_btn;
- GtkWidget *progressbar;
GtkWidget *scrolledwin;
GtkWidget *treeview;
GtkListStore *store;
@@ -55,45 +50,12 @@ ProgressDialog *progress_dialog_create(void)
GtkTreeViewColumn *column;
GtkCellRenderer *renderer;
- debug_print(_("Creating progress dialog...\n"));
- progress = g_new0(ProgressDialog, 1);
-
- dialog = gtk_dialog_new();
- gtk_widget_set_size_request(dialog, 460, -1);
- gtk_container_set_border_width(GTK_CONTAINER(dialog), 8);
- gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
- gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, TRUE, TRUE);
- gtk_widget_realize(dialog);
-
- gtk_container_set_border_width
- (GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 0);
- gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 8);
- gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
-
- hbox = gtk_hbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox,
- FALSE, FALSE, 8);
- gtk_widget_show(hbox);
-
- label = gtk_label_new("");
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 8);
- gtk_widget_show(label);
-
- cancel_btn = gtk_dialog_add_button(GTK_DIALOG(dialog),
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_NONE);
- gtk_widget_grab_default(cancel_btn);
- gtk_widget_grab_focus(cancel_btn);
-
- progressbar = gtk_progress_bar_new();
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progressbar,
- FALSE, FALSE, 0);
- gtk_widget_show(progressbar);
+ progress = progress_dialog_simple_create();
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_show(scrolledwin);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), scrolledwin,
- TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(progress->window)->vbox),
+ scrolledwin, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
@@ -147,12 +109,62 @@ ProgressDialog *progress_dialog_create(void)
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
+ progress->treeview = treeview;
+ progress->store = store;
+
+ return progress;
+}
+
+ProgressDialog *progress_dialog_simple_create(void)
+{
+ ProgressDialog *progress;
+ GtkWidget *dialog;
+ GtkWidget *hbox;
+ GtkWidget *label;
+ GtkWidget *cancel_btn;
+ GtkWidget *progressbar;
+
+ debug_print("Creating progress dialog\n");
+ progress = g_new0(ProgressDialog, 1);
+
+ dialog = gtk_dialog_new();
+ gtk_widget_set_size_request(dialog, 460, -1);
+ gtk_container_set_border_width(GTK_CONTAINER(dialog), 8);
+ gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, TRUE, TRUE);
+ gtk_widget_realize(dialog);
+
+ gtk_container_set_border_width
+ (GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 0);
+ gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 8);
+ gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox,
+ FALSE, FALSE, 8);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new("");
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 8);
+ gtk_widget_show(label);
+
+ cancel_btn = gtk_dialog_add_button(GTK_DIALOG(dialog),
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_NONE);
+ gtk_widget_grab_default(cancel_btn);
+ gtk_widget_grab_focus(cancel_btn);
+
+ progressbar = gtk_progress_bar_new();
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progressbar,
+ FALSE, FALSE, 0);
+ gtk_widget_show(progressbar);
+
progress->window = dialog;
progress->label = label;
progress->cancel_btn = cancel_btn;
progress->progressbar = progressbar;
- progress->treeview = treeview;
- progress->store = store;
+ progress->treeview = NULL;
+ progress->store = NULL;
return progress;
}