* Connect an insensitive-press signal handler to
[modest] / src / modest-mail-operation.h
index 5d2b9f9..495a545 100644 (file)
@@ -114,11 +114,43 @@ typedef void (*GetMsgAsyncUserCallback) (ModestMailOperation *mail_op,
 typedef void (*XferMsgsAsynUserCallback) (const GObject *obj, gpointer user_data);
 
 
+/**
+ * RefreshAsyncUserCallback:
+ *
+ * @obj: a #GObject generic object which has created current mail operation.
+ * @folder: a #TnyFolder which has been refreshed .
+ * @user_data: generic data passed to user defined function.
+ *
+ * This function will be called after refresh_folder_async_cb private function, which is
+ * used as tinymail operation callback. The private function fills private 
+ * fields of mail operation and calls user defined callback if it exists.
+ */
+typedef void (*RefreshAsyncUserCallback) (const GObject *obj, 
+                                         TnyFolder *folder, 
+                                         gpointer user_data);
+
+/**
+ * UpdateAccountCallback:
+ *
+ * @obj: a #GObject generic object which has created current mail operation.
+ * @new_messages: the amount of new messages received
+ * @user_data: generic data passed to user defined function.
+ *
+ * This is the callback of the update_account operation. It informs
+ * the caller about the amount of new messages that have been
+ * downloaded
+ */
+typedef void (*UpdateAccountCallback) (ModestMailOperation *self, 
+                                      gint new_messages,
+                                      gpointer user_data);
+
 /* This struct represents the internal state of a mail operation in a
    given time */
 typedef struct {
        guint      done;
        guint      total;
+       gdouble    bytes_done;
+       gdouble    bytes_total;
        gboolean   finished;
        ModestMailOperationStatus        status;
        ModestMailOperationTypeOperation op_type;
@@ -323,7 +355,9 @@ void    modest_mail_operation_save_to_drafts   (ModestMailOperation *self,
  * Returns: TRUE if the mail operation could be started, or FALSE otherwise
  **/
 gboolean      modest_mail_operation_update_account (ModestMailOperation *self,
-                                                   const gchar *account_name);
+                                                   const gchar *account_name,
+                                                   UpdateAccountCallback callback,
+                                                   gpointer user_data);
 
 /* Functions that perform store operations */
 
@@ -556,11 +590,18 @@ gboolean  modest_mail_operation_cancel          (ModestMailOperation *self);
  * modest_mail_operation_refresh_folder
  * @self: a #ModestMailOperation
  * @folder: the #TnyFolder to refresh
+ * @user_callback: the #RefreshAsyncUserCallback function to be called
+ * after internal refresh async callback was being executed.
  * 
- * Refreshes the contents of a folder
+ * Refreshes the contents of a folder. After internal callback was executed, 
+ * and all interna mail operation field were filled, if exists, it calls an 
+ * user callback function to make UI operations which must be done after folder
+ * was refreshed.
  */
 void      modest_mail_operation_refresh_folder  (ModestMailOperation *self,
-                                                TnyFolder *folder);
+                                                TnyFolder *folder,
+                                                RefreshAsyncUserCallback user_callback,
+                                                gpointer user_data);
 
 guint     modest_mail_operation_get_id          (ModestMailOperation *self);