[gthumb/ext: 40/79] Added a text an pulse arguments to the gth-task progress signal



commit 85256610d6cea5ab004d9acad9b88b3ee19245c2
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sat Jul 11 21:18:45 2009 +0200

    Added a text an pulse arguments to the gth-task progress signal
    
    Show the text and the progress in the browser statusbar.

 extensions/file_manager/gth-duplicate-task.c     |    2 +-
 extensions/file_tools/gth-file-tool-desaturate.c |    3 +-
 extensions/list_tools/callbacks.c                |   65 +++++++++++++++++---
 extensions/list_tools/gth-script-editor-dialog.c |    2 +-
 extensions/list_tools/gth-script-task.c          |   13 ++++-
 extensions/list_tools/gth-script.c               |    1 +
 gthumb/gth-browser-ui.h                          |    1 +
 gthumb/gth-browser.c                             |   18 ++++++
 gthumb/gth-marshal.list                          |    1 +
 gthumb/gth-pixbuf-task.c                         |    6 +-
 gthumb/gth-pixbuf-task.h                         |    5 +-
 gthumb/gth-statusbar.c                           |   71 ++++++++++++++++++++++
 gthumb/gth-statusbar.h                           |    4 +
 gthumb/gth-task.c                                |   17 ++++--
 gthumb/gth-task.h                                |   30 +++++----
 15 files changed, 205 insertions(+), 34 deletions(-)
---
diff --git a/extensions/file_manager/gth-duplicate-task.c b/extensions/file_manager/gth-duplicate-task.c
index 2a5546b..4bfc6d8 100644
--- a/extensions/file_manager/gth-duplicate-task.c
+++ b/extensions/file_manager/gth-duplicate-task.c
@@ -87,7 +87,7 @@ copy_progress_cb (goffset      current_file,
 {
 	GthDuplicateTask *self = user_data;
 
-	gth_task_progress (GTH_TASK (self), (float) current_num_bytes / total_num_bytes);
+	gth_task_progress (GTH_TASK (self), _("Duplicating files"), FALSE, (double) current_num_bytes / total_num_bytes);
 }
 
 
diff --git a/extensions/file_tools/gth-file-tool-desaturate.c b/extensions/file_tools/gth-file-tool-desaturate.c
index 520c24b..d72acf8 100644
--- a/extensions/file_tools/gth-file-tool-desaturate.c
+++ b/extensions/file_tools/gth-file-tool-desaturate.c
@@ -91,7 +91,8 @@ gth_file_tool_desaturate_activate (GthFileTool *base)
 		return;
 
 	dest_pixbuf = gdk_pixbuf_copy (src_pixbuf);
-	task = gth_pixbuf_task_new (src_pixbuf,
+	task = gth_pixbuf_task_new (_("Desaturating image"),
+				    src_pixbuf,
 				    dest_pixbuf,
 				    NULL,
 				    desaturate_step,
diff --git a/extensions/list_tools/callbacks.c b/extensions/list_tools/callbacks.c
index 69811e1..3c7b6de 100644
--- a/extensions/list_tools/callbacks.c
+++ b/extensions/list_tools/callbacks.c
@@ -36,6 +36,18 @@
 
 static const char *fixed_ui_info =
 "<ui>"
+/*
+"  <popup name='FileListPopup'>"
+"    <placeholder name='Open_Actions'>"
+"      <menu name='ExecWith' action='ExecWithMenu'>"
+"        <placeholder name='Tools'/>"
+"        <placeholder name='Scripts'/>"
+"        <separator name='ScriptsListSeparator'/>"
+"        <menuitem name='EditScripts' action='ListTools_EditScripts'/>"
+"      </menu>"
+"    </placeholder>"
+"  </popup>"
+*/
 "  <popup name='ListToolsPopup'>"
 "    <placeholder name='Tools'/>"
 "    <placeholder name='Scripts'/>"
@@ -46,6 +58,8 @@ static const char *fixed_ui_info =
 
 
 static GtkActionEntry action_entries[] = {
+	/*{ "ExecWithMenu", GTK_STOCK_EXECUTE, N_("_Tools") },*/
+
 	{ "ListTools_EditScripts", GTK_STOCK_EDIT,
 	  N_("Personalize..."), NULL,
 	  NULL,
@@ -98,8 +112,26 @@ activate_script_menu_item (GtkMenuItem *menuitem,
 }
 
 
+static GtkWidget *
+get_widget_with_prefix (BrowserData *data,
+			const char  *prefix,
+			const char  *path)
+{
+	char      *full_path;
+	GtkWidget *widget;
+
+	full_path = g_strconcat (prefix, path, NULL);
+	widget = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (data->browser), full_path);
+
+	g_free (full_path);
+
+	return widget;
+}
+
+
 static void
-update_scripts_menu (BrowserData *data)
+_update_scripts_menu (BrowserData *data,
+		      const char  *prefix)
 {
 	GtkWidget *separator1;
 	GtkWidget *separator2;
@@ -109,8 +141,8 @@ update_scripts_menu (BrowserData *data)
 	int        pos;
 	gboolean   script_present = FALSE;
 
-	separator1 = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (data->browser), "/ListToolsPopup/Tools");
-	separator2 = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (data->browser), "/ListToolsPopup/Scripts");
+	separator1 = get_widget_with_prefix (data, prefix, "/Tools");
+	separator2 = get_widget_with_prefix (data, prefix, "/Scripts");
 	menu = gtk_widget_get_parent (separator1);
 	_gtk_container_remove_children (GTK_CONTAINER (menu), separator1, separator2);
 
@@ -140,7 +172,7 @@ update_scripts_menu (BrowserData *data)
 		script_present = TRUE;
 	}
 
-	separator1 = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (data->browser), "/ListToolsPopup/ScriptsListSeparator");
+	separator1 = get_widget_with_prefix (data, prefix, "/ScriptsListSeparator");
 	if (script_present)
 		gtk_widget_show (separator1);
 	else
@@ -153,6 +185,14 @@ update_scripts_menu (BrowserData *data)
 
 
 static void
+update_scripts_menu (BrowserData *data)
+{
+	_update_scripts_menu (data, "/ListToolsPopup");
+	/*_update_scripts_menu (data, "/FileListPopup/Open_Actions/ExecWith");*/
+}
+
+
+static void
 scripts_changed_cb (GthScriptFile *script_file,
 		     BrowserData   *data)
 {
@@ -202,8 +242,9 @@ list_tools__gth_browser_construct_cb (GthBrowser *browser)
 }
 
 
-void
-list_tools__gth_browser_update_sensitivity_cb (GthBrowser *browser)
+static void
+_update_sensitivity (GthBrowser *browser,
+		     const char *prefix)
 {
 	BrowserData *data;
 	int          n_selected;
@@ -218,8 +259,8 @@ list_tools__gth_browser_update_sensitivity_cb (GthBrowser *browser)
 	n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser)));
 	sensitive = (n_selected > 0);
 
-	separator1 = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (browser), "/ListToolsPopup/Tools");
-	separator2 = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (browser), "/ListToolsPopup/Scripts");
+	separator1 = get_widget_with_prefix (data, prefix, "/Tools");
+	separator2 = get_widget_with_prefix (data, prefix, "/Scripts");
 	menu = gtk_widget_get_parent (separator1);
 	{
 		GList *children;
@@ -241,3 +282,11 @@ list_tools__gth_browser_update_sensitivity_cb (GthBrowser *browser)
 			gtk_widget_set_sensitive (scan->data, sensitive);
 	}
 }
+
+
+void
+list_tools__gth_browser_update_sensitivity_cb (GthBrowser *browser)
+{
+	_update_sensitivity (browser, "/ListToolsPopup");
+	/*_update_sensitivity (browser, "/FileListPopup/Open_Actions/ExecWith");*/
+}
diff --git a/extensions/list_tools/gth-script-editor-dialog.c b/extensions/list_tools/gth-script-editor-dialog.c
index 361739c..ca80738 100644
--- a/extensions/list_tools/gth-script-editor-dialog.c
+++ b/extensions/list_tools/gth-script-editor-dialog.c
@@ -143,7 +143,7 @@ gth_script_editor_dialog_construct (GthScriptEditorDialog *self,
     		gtk_window_set_title (GTK_WINDOW (self), title);
   	if (parent != NULL)
     		gtk_window_set_transient_for (GTK_WINDOW (self), parent);
-    	gtk_window_set_resizable (GTK_WINDOW (self), TRUE);
+    	gtk_window_set_resizable (GTK_WINDOW (self), FALSE);
 	gtk_dialog_set_has_separator (GTK_DIALOG (self), FALSE);
 	gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (self)->vbox), 5);
 	gtk_container_set_border_width (GTK_CONTAINER (self), 5);
diff --git a/extensions/list_tools/gth-script-task.c b/extensions/list_tools/gth-script-task.c
index 39caf90..fb64db9 100644
--- a/extensions/list_tools/gth-script-task.c
+++ b/extensions/list_tools/gth-script-task.c
@@ -29,6 +29,8 @@ struct _GthScriptTaskPrivate {
 	GtkWindow    *parent;
 	GList        *file_list;
 	GList        *current;
+	int           n_files;
+	int           n_current;
 	GPid          pid;
 	guint         script_watch;
 	GCancellable *cancellable;
@@ -60,6 +62,8 @@ static void
 _gth_script_task_exec_next_file (GthScriptTask *self)
 {
 	self->priv->current = self->priv->current->next;
+	self->priv->n_current++;
+
 	if (self->priv->current == NULL)
 		gth_task_completed (GTH_TASK (self), NULL);
 	else
@@ -102,6 +106,8 @@ _gth_script_task_exec (GthScriptTask *self)
 	if (gth_script_for_each_file (self->priv->script)) {
 		GList *list;
 
+		gth_task_progress (GTH_TASK (self), gth_script_get_display_name (self->priv->script), FALSE, (double) self->priv->n_current / (self->priv->n_files + 1));
+
 		list = g_list_prepend (NULL, self->priv->current->data);
 		command_line = gth_script_get_command_line (self->priv->script,
 							    self->priv->parent,
@@ -110,11 +116,14 @@ _gth_script_task_exec (GthScriptTask *self)
 
 		g_list_free (list);
 	}
-	else
+	else {
+		gth_task_progress (GTH_TASK (self), gth_script_get_display_name (self->priv->script), TRUE, 0.0);
+
 		command_line = gth_script_get_command_line (self->priv->script,
 							    self->priv->parent,
 							    self->priv->file_list,
 							    &error);
+	}
 
 	if (error == NULL) {
 		char **argv;
@@ -291,6 +300,8 @@ gth_script_task_new (GtkWindow *parent,
 	self->priv->script = g_object_ref (script);
 	self->priv->file_list = _g_object_list_ref (file_list);
 	self->priv->current = self->priv->file_list;
+	self->priv->n_files = g_list_length (file_list);
+	self->priv->n_current = 1;
 
 	return (GthTask *) self;
 }
diff --git a/extensions/list_tools/gth-script.c b/extensions/list_tools/gth-script.c
index 7a213e6..2ee38c6 100644
--- a/extensions/list_tools/gth-script.c
+++ b/extensions/list_tools/gth-script.c
@@ -586,6 +586,7 @@ ask_value (ReplaceData *replace_data,
 	dialog = _gtk_builder_get_widget (builder, "ask_value_dialog");
 	gtk_label_set_text (GTK_LABEL (_gtk_builder_get_widget (builder, "request_label")), prompt);
 	gtk_entry_set_text (GTK_ENTRY (_gtk_builder_get_widget (builder, "request_entry")), default_value);
+	gtk_window_set_title (GTK_WINDOW (dialog), "");
 	gtk_window_set_transient_for (GTK_WINDOW (dialog), replace_data->parent);
 	gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 
diff --git a/gthumb/gth-browser-ui.h b/gthumb/gth-browser-ui.h
index 06a095d..336440b 100644
--- a/gthumb/gth-browser-ui.h
+++ b/gthumb/gth-browser-ui.h
@@ -152,6 +152,7 @@ static const char *fixed_ui_info =
 "    <menuitem name='Open' action='File_Open'/>"
 "    <menu name='OpenWith' action='OpenWithMenu'>"
 "    </menu>"
+"    <placeholder name='Open_Actions'/>"
 "    <separator/>"
 "    <placeholder name='File_Actions'/>"
 "    <separator/>"
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index 8156b38..10a75b5 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -138,6 +138,7 @@ struct _GthBrowserPrivateData {
 	gboolean           closing;
 	GthTask           *task;
 	gulong             task_completed;
+	gulong             task_progress;
 	GList             *load_data_queue;
 	guint              load_file_timeout;
 
@@ -3272,8 +3273,10 @@ task_completed_cb (GthTask    *task,
 	browser->priv->activity_ref--;
 
 	g_signal_handler_disconnect (browser->priv->task, browser->priv->task_completed);
+	g_signal_handler_disconnect (browser->priv->task, browser->priv->task_progress);
 
 	if (! browser->priv->closing) {
+		gth_statusbar_set_progress (GTH_STATUSBAR (browser->priv->statusbar), NULL, FALSE, 0.0);
 		gth_browser_update_sensitivity (browser);
 		if (error != NULL) {
 			if (! g_error_matches (error, GTH_TASK_ERROR, GTH_TASK_ERROR_CANCELLED))
@@ -3291,6 +3294,17 @@ task_completed_cb (GthTask    *task,
 }
 
 
+static void
+task_progress_cb (GthTask    *task,
+		  const char *text,
+		  gboolean    pulse,
+		  double      fraction,
+		  GthBrowser *browser)
+{
+	gth_statusbar_set_progress (GTH_STATUSBAR (browser->priv->statusbar), text, pulse, fraction);
+}
+
+
 void
 gth_browser_exec_task (GthBrowser *browser,
 		       GthTask    *task)
@@ -3305,6 +3319,10 @@ gth_browser_exec_task (GthBrowser *browser,
 							  "completed",
 							  G_CALLBACK (task_completed_cb),
 							  browser);
+	browser->priv->task_progress = g_signal_connect (task,
+							 "progress",
+							 G_CALLBACK (task_progress_cb),
+							 browser);
 	browser->priv->activity_ref++;
 	gth_browser_update_sensitivity (browser);
 	gth_task_exec (browser->priv->task);
diff --git a/gthumb/gth-marshal.list b/gthumb/gth-marshal.list
index f05703d..45ba709 100644
--- a/gthumb/gth-marshal.list
+++ b/gthumb/gth-marshal.list
@@ -6,3 +6,4 @@ VOID:OBJECT, BOOLEAN
 VOID:OBJECT, UINT
 VOID:OBJECT, STRING
 VOID:POINTER, POINTER
+VOID:STRING, BOOLEAN, DOUBLE
diff --git a/gthumb/gth-pixbuf-task.c b/gthumb/gth-pixbuf-task.c
index 8c01dea..f00e88a 100644
--- a/gthumb/gth-pixbuf-task.c
+++ b/gthumb/gth-pixbuf-task.c
@@ -99,7 +99,7 @@ one_step (gpointer data)
 	pixbuf_task->dest_line += pixbuf_task->rowstride;
 
 	if (pixbuf_task->line % PROGRESS_STEP == 0)
-		gth_task_progress (GTH_TASK (pixbuf_task), (float) pixbuf_task->line / pixbuf_task->height);
+		gth_task_progress (GTH_TASK (pixbuf_task), pixbuf_task->description, FALSE, (double) pixbuf_task->line / pixbuf_task->height);
 
 	if (! pixbuf_task->ltr) { /* right to left */
 		int ofs = (pixbuf_task->width - 1) * pixbuf_task->bytes_per_pixel;
@@ -249,7 +249,8 @@ gth_pixbuf_task_get_type (void)
 
 
 GthTask *
-gth_pixbuf_task_new (GdkPixbuf    *src,
+gth_pixbuf_task_new (const char   *description,
+		     GdkPixbuf    *src,
 		     GdkPixbuf    *dest,
 		     PixbufOpFunc  init_func,
 		     PixbufOpFunc  step_func,
@@ -260,6 +261,7 @@ gth_pixbuf_task_new (GdkPixbuf    *src,
 
 	pixbuf_task = GTH_PIXBUF_TASK (g_object_new (GTH_TYPE_PIXBUF_TASK, NULL));
 
+	pixbuf_task->description = description;
 	pixbuf_task->init_func = init_func;
 	pixbuf_task->step_func = step_func;
 	pixbuf_task->release_func = release_func;
diff --git a/gthumb/gth-pixbuf-task.h b/gthumb/gth-pixbuf-task.h
index 532cb82..8070599 100644
--- a/gthumb/gth-pixbuf-task.h
+++ b/gthumb/gth-pixbuf-task.h
@@ -75,6 +75,8 @@ struct _GthPixbufTask {
 	int           line_step;
 	int           column;
 	gboolean      interrupt;
+
+	const char   *description;
 };
 
 struct _GthPixbufTaskClass {
@@ -82,7 +84,8 @@ struct _GthPixbufTaskClass {
 };
 
 GType         gth_pixbuf_task_get_type        (void);
-GthTask *     gth_pixbuf_task_new             (GdkPixbuf      *src,
+GthTask *     gth_pixbuf_task_new             (const char     *description,
+					       GdkPixbuf      *src,
 					       GdkPixbuf      *dest,
 					       PixbufOpFunc    init_func,
 					       PixbufOpFunc    step_func,
diff --git a/gthumb/gth-statusbar.c b/gthumb/gth-statusbar.c
index f6fc1f0..082f231 100644
--- a/gthumb/gth-statusbar.c
+++ b/gthumb/gth-statusbar.c
@@ -37,6 +37,10 @@ struct _GthStatusbarPrivate {
 	GtkWidget *primary_text_frame;
 	GtkWidget *secondary_text;
 	GtkWidget *secondary_text_frame;
+	GtkWidget *progress_box;
+	GtkWidget *progress_bar;
+	GtkWidget *progress_label;
+	/*GtkWidget *stop_button;*/
 };
 
 
@@ -51,9 +55,56 @@ gth_statusbar_class_init (GthStatusbarClass *klass)
 static void
 gth_statusbar_init (GthStatusbar *statusbar)
 {
+	GtkWidget *separator;
+	GtkWidget *hbox;
+	GtkWidget *vbox;
+	/*GtkWidget *image;*/
+
+	gtk_box_set_spacing (GTK_BOX (statusbar), 0);
+
 	statusbar->priv = GTH_STATUSBAR_GET_PRIVATE (statusbar);
 	statusbar->priv->list_info_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "gth_list_info");
 
+	/* Progress info */
+
+	statusbar->priv->progress_box = gtk_vbox_new (FALSE, 0);
+	gtk_widget_hide (statusbar->priv->progress_box);
+	gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->progress_box, FALSE, FALSE, 0);
+
+	separator = gtk_hseparator_new ();
+	gtk_widget_show (separator);
+	gtk_box_pack_start (GTK_BOX (statusbar->priv->progress_box), separator, FALSE, FALSE, 0);
+
+	hbox = gtk_hbox_new (FALSE, 6);
+	gtk_widget_show (hbox);
+	gtk_box_pack_start (GTK_BOX (statusbar->priv->progress_box), hbox, FALSE, FALSE, 0);
+
+	statusbar->priv->progress_label = gtk_label_new (NULL);
+	gtk_widget_show (statusbar->priv->progress_label);
+	gtk_box_pack_start (GTK_BOX (hbox), statusbar->priv->progress_label, TRUE, TRUE, 0);
+
+	vbox = gtk_vbox_new (FALSE, 0);
+	gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE);
+	gtk_widget_show (vbox);
+	gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
+
+	statusbar->priv->progress_bar = gtk_progress_bar_new ();
+	gtk_widget_set_size_request (statusbar->priv->progress_bar, 60, 12);
+	gtk_widget_show (statusbar->priv->progress_bar);
+	gtk_box_pack_start (GTK_BOX (vbox), statusbar->priv->progress_bar, FALSE, FALSE, 0);
+
+	/*
+	statusbar->priv->stop_button = gtk_button_new ();
+	gtk_widget_set_size_request (statusbar->priv->stop_button, 26, 26);
+	gtk_button_set_relief (GTK_BUTTON (statusbar->priv->stop_button), GTK_RELIEF_NONE);
+	gtk_widget_show (statusbar->priv->stop_button);
+	gtk_box_pack_start (GTK_BOX (hbox), statusbar->priv->stop_button, FALSE, FALSE, 0);
+
+	image = gtk_image_new_from_stock (GTK_STOCK_STOP, GTK_ICON_SIZE_MENU);
+	gtk_widget_show (image);
+	gtk_container_add (GTK_CONTAINER (statusbar->priv->stop_button), image);
+	 */
+
 	/* Secondary text */
 
 	statusbar->priv->secondary_text = gtk_label_new (NULL);
@@ -147,3 +198,23 @@ gth_statusbar_set_secondary_text (GthStatusbar *statusbar,
 	else
 		gtk_widget_hide (statusbar->priv->secondary_text_frame);
 }
+
+
+void
+gth_statusbar_set_progress (GthStatusbar *statusbar,
+			    const char   *text,
+			    gboolean      pulse,
+			    double        fraction)
+{
+	if (text == NULL) {
+		gtk_widget_hide (statusbar->priv->progress_box);
+		return;
+	}
+
+	gtk_widget_show (statusbar->priv->progress_box);
+	gtk_label_set_text (GTK_LABEL (statusbar->priv->progress_label), text);
+	if (pulse)
+		gtk_progress_bar_pulse (GTK_PROGRESS_BAR (statusbar->priv->progress_bar));
+	else
+		gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (statusbar->priv->progress_bar), fraction);
+}
diff --git a/gthumb/gth-statusbar.h b/gthumb/gth-statusbar.h
index 1c69fe2..ed40859 100644
--- a/gthumb/gth-statusbar.h
+++ b/gthumb/gth-statusbar.h
@@ -55,6 +55,10 @@ void         gth_statusbar_set_primary_text     (GthStatusbar *statusbar,
 						 const char   *text);
 void         gth_statusbar_set_secondary_text   (GthStatusbar *statusbar,
 						 const char   *text);
+void         gth_statusbar_set_progress         (GthStatusbar *statusbar,
+						 const char   *text,
+						 gboolean      pulse,
+						 double        fraction);
 
 G_END_DECLS
 
diff --git a/gthumb/gth-task.c b/gthumb/gth-task.c
index cfa105c..93e82da 100644
--- a/gthumb/gth-task.c
+++ b/gthumb/gth-task.c
@@ -22,6 +22,7 @@
 
 #include <config.h>
 #include <glib.h>
+#include "gth-marshal.h"
 #include "gth-task.h"
 
 
@@ -111,10 +112,12 @@ gth_task_class_init (GthTaskClass *class)
 			      G_SIGNAL_RUN_LAST,
 			      G_STRUCT_OFFSET (GthTaskClass, progress),
 			      NULL, NULL,
-			      g_cclosure_marshal_VOID__FLOAT,
+			      gth_marshal_VOID__STRING_BOOLEAN_DOUBLE,
 			      G_TYPE_NONE,
-			      1,
-			      G_TYPE_FLOAT);
+			      3,
+			      G_TYPE_STRING,
+			      G_TYPE_BOOLEAN,
+			      G_TYPE_DOUBLE);
 }
 
 
@@ -194,8 +197,10 @@ gth_task_completed (GthTask *task,
 
 
 void
-gth_task_progress (GthTask  *task,
-		   float     value)
+gth_task_progress (GthTask    *task,
+		   const char *text,
+		   gboolean    pulse,
+		   double      fraction)
 {
-	g_signal_emit (task, gth_task_signals[PROGRESS], 0, value);
+	g_signal_emit (task, gth_task_signals[PROGRESS], 0, text, pulse, fraction);
 }
diff --git a/gthumb/gth-task.h b/gthumb/gth-task.h
index 0343018..a8499f0 100644
--- a/gthumb/gth-task.h
+++ b/gthumb/gth-task.h
@@ -57,28 +57,32 @@ struct _GthTaskClass
 
 	/*< signals >*/
 
-	void  (*completed)    (GthTask *task,
-			       GError  *error);
-	void  (*progress)     (GthTask *task,
-			       float    value);
+	void  (*completed)    (GthTask    *task,
+			       GError     *error);
+	void  (*progress)     (GthTask    *task,
+			       const char *text,
+			       gboolean    pulse,
+			       double      fraction);
 
 	/*< virtual functions >*/
 
-	void  (*exec)         (GthTask *task);
-	void  (*cancel)       (GthTask *task);
+	void  (*exec)         (GthTask    *task);
+	void  (*cancel)       (GthTask    *task);
 };
 
 GQuark      gth_task_error_quark (void);
 
 GType       gth_task_get_type    (void) G_GNUC_CONST;
 GthTask *   gth_task_new         (void);
-void        gth_task_exec        (GthTask  *task);
-gboolean    gth_task_is_running  (GthTask  *task);
-void        gth_task_cancel      (GthTask  *task);
-void        gth_task_completed   (GthTask  *task,
-				  GError   *error);
-void        gth_task_progress    (GthTask  *task,
-				  float     value);
+void        gth_task_exec        (GthTask    *task);
+gboolean    gth_task_is_running  (GthTask    *task);
+void        gth_task_cancel      (GthTask    *task);
+void        gth_task_completed   (GthTask    *task,
+				  GError     *error);
+void        gth_task_progress    (GthTask    *task,
+				  const char *text,
+			          gboolean    pulse,
+			          double      fraction);
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]