Don't pass the header_list in GetMsgInfo, it's not needed
[modest] / src / widgets / modest-header-view.h
index 3859bb6..b2f6d00 100644 (file)
@@ -37,6 +37,7 @@
 #include <tny-header.h>
 #include <tny-gtk-header-list-model.h>
 #include "modest-mail-operation.h"
+#include "modest-header-view-observer.h"
 
 G_BEGIN_DECLS
 
@@ -121,6 +122,10 @@ struct _ModestHeaderViewClass {
                                   TnyFolder *folder,
                                   TnyFolderChange *change,
                                   gpointer user_data);
+
+       void (*updating_msg_list) (ModestHeaderView *self,
+                                  gboolean starting,
+                                  gpointer user_data);
 };
 
 /**
@@ -172,7 +177,7 @@ TnyFolder *modest_header_view_get_folder (ModestHeaderView *self);
 /**
  * modest_header_view_set_columns:
  * @self: a ModestHeaderView instance
- * @columns: a list of ModestHeaderViewColumn
+ * @columns: a list of gint ModestHeaderViewColumn column IDs, using GINT_TO_POINTER() and GPOINTER_TO_INT().
  * @type: #TnyFolderType type
  * 
  * set the columns for this ModestHeaderView.
@@ -220,6 +225,26 @@ gboolean   modest_header_view_set_style (ModestHeaderView *self,
 ModestHeaderViewStyle   modest_header_view_get_style (ModestHeaderView *self);
 
 /**
+ * modest_header_view_count_selected_headers:
+ * @self: a ModestHeaderView instance
+ * 
+ * Check selected headers counter. 
+ * Returns: the number of selected headers.
+ */
+guint
+modest_header_view_count_selected_headers (ModestHeaderView *self);
+
+/**
+ * modest_header_view_has_selected_headers:
+ * @self: a ModestHeaderView instance
+ * 
+ * Check if any row is selected on headers tree view. 
+ * Returns: TRUE if any header is selected, FALSE otherwise.
+ */
+gboolean
+modest_header_view_has_selected_headers (ModestHeaderView *self);
+
+/**
  * modest_header_view_get_selected_headers:
  * @self: a ModestHeaderView instance
  * 
@@ -328,6 +353,71 @@ modest_header_view_sort_by_column_id (ModestHeaderView *self,
 void
 modest_header_view_clear (ModestHeaderView *self);
 
+/**
+ * modest_header_view_copy_selection:
+ * @self: a #ModestHeaderView
+ * 
+ * Stores a #TnyList of selected headers in the own clibpoard of 
+ * @self header view.
+ **/
+void 
+modest_header_view_copy_selection (ModestHeaderView *header_view);
+
+/**
+ * modest_header_view_cut_selection:
+ * @self: a #ModestHeaderView
+ * 
+ * Stores a #TnyList of selected headers in the own clibpoard of 
+ * @self header view and filter them into headers tree model to
+ * hide these rows in treeview.
+ **/
+void 
+modest_header_view_cut_selection (ModestHeaderView *header_view);
+
+
+/**
+ * modest_header_view_paste_selection:
+ * @self: a #ModestHeaderView
+ * @headers: ouput parameter with a #TnyList of headers which will be returned.
+ * @delete: output parameter with indication about delete or not the selected headers. 
+ * 
+ * Gets the selected headers to copy/cut.
+ **/
+void
+modest_header_view_paste_selection (ModestHeaderView *header_view,
+                                   TnyList **headers,
+                                   gboolean *delete);
+
+void modest_header_view_refilter (ModestHeaderView *header_view);
+
+/**
+ * modest_header_view_add_observer:
+ * @header_view: a #ModestHeaderView
+ * @observer: The observer to notify.
+ * 
+ * Registers a new observer. Warning! Each added observer object must
+ * removed using @modest_header_view_remove_observer before destroying
+ * the observer, or at least when it is under destruction. Also you
+ * should care about that the observer's #update function might be
+ * called any time until the observer is removed.
+ **/
+void modest_header_view_add_observer(
+               ModestHeaderView *header_view,
+               ModestHeaderViewObserver *observer);
+
+/**
+ * modest_header_view_remove_observer:
+ * @header_view: a #ModestHeaderView
+ * @observer: The observer to remove.
+ * 
+ * Removes exactly one observer from the notification list. If you
+ * added an observer twice, you should call this remove funtion twice
+ * as well.
+ **/
+void modest_header_view_remove_observer(
+               ModestHeaderView *header_view,
+               ModestHeaderViewObserver *observer);
+
 G_END_DECLS