* Add a new dialog, Sort Dialog (WID-DIA021).
[modest] / src / widgets / modest-header-view.h
index 3de807f..dbfb5d9 100644 (file)
@@ -55,6 +55,7 @@ struct _ModestHeaderView {
 };
 
 #define MODEST_HEADER_VIEW_COLUMN    "header-view-column"
+#define MODEST_HEADER_VIEW_FLAG_SORT "header-view-flags-sort"
 
 typedef enum _ModestHeaderViewColumn {
        MODEST_HEADER_VIEW_COLUMN_FROM            = 0,
@@ -65,12 +66,17 @@ typedef enum _ModestHeaderViewColumn {
        MODEST_HEADER_VIEW_COLUMN_MSGTYPE,
        MODEST_HEADER_VIEW_COLUMN_ATTACH,
        MODEST_HEADER_VIEW_COLUMN_SIZE,
+       MODEST_HEADER_VIEW_COLUMN_STATUS,
+
        /*
         * these two are for compact display on small devices,
         * with two line display with all relevant headers
         */
+       MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG,       /* priority and attachments */
        MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_IN,  /* incoming mail */
        MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT, /* outgoing mail */
+       MODEST_HEADER_VIEW_COLUMN_COMPACT_SENT_DATE,
+       MODEST_HEADER_VIEW_COLUMN_COMPACT_RECEIVED_DATE,
 
        MODEST_HEADER_VIEW_COLUMN_NUM
 
@@ -104,7 +110,11 @@ struct _ModestHeaderViewClass {
        void (*item_not_found) (ModestHeaderView* self,
                                ModestItemType type,
                                gpointer user_data);
-       
+
+       void (*header_activated) (ModestHeaderView* self,
+                                 TnyHeader *header,
+                                 gpointer user_data);
+
        /* msg == NULL implies that the operation is finished, ie.
         * the progress indictation can be hidden */
        void (*status_update) (ModestHeaderView* self,
@@ -126,7 +136,6 @@ GType        modest_header_view_get_type    (void) G_GNUC_CONST;
 /**
  * modest_header_view_new:
  * @folder: a TnyMsgFolder object
- * @columns: a list of ModestHeaderViewColumn
  * @style: a ModestHeaderViewColumn with the style of this listview
  *  (  MODEST_HEADER_VIEW_STYLE_NORMAL or MODEST_HEADER_VIEW_STYLE_COMPACT)
  * 
@@ -135,7 +144,6 @@ GType        modest_header_view_get_type    (void) G_GNUC_CONST;
  * Returns: a new GtkWidget (a GtkTreeView-subclass)
  */
 GtkWidget*   modest_header_view_new        (TnyFolder *folder,
-                                           const GList *columns,
                                            ModestHeaderViewStyle style);
 
 /**
@@ -144,15 +152,10 @@ GtkWidget*   modest_header_view_new        (TnyFolder *folder,
  * @folder: a TnyFolder object
  * 
  * set the folder for this ModestHeaderView
- *  
- * Returns: TRUE if it succeeded, FALSE otherwise
  */
-gboolean     modest_header_view_set_folder (ModestHeaderView *self,
+void         modest_header_view_set_folder (ModestHeaderView *self,
                                            TnyFolder *folder);
 
-
-
-
 /**
  * modest_header_view_get_folder:
  * @self: a ModestHeaderView instance
@@ -168,13 +171,15 @@ TnyFolder *modest_header_view_get_folder (ModestHeaderView *self);
  * modest_header_view_set_columns:
  * @self: a ModestHeaderView instance
  * @columns: a list of ModestHeaderViewColumn
+ * @type: #TnyFolderType type
  * 
  * set the columns for this ModestHeaderView.
  *  
  * Returns: TRUE if it succeeded, FALSE otherwise
  */
 gboolean modest_header_view_set_columns (ModestHeaderView *self,
-                                        const GList *columns);
+                                        const GList *columns,
+                                        TnyFolderType type);
 /**
  * modest_header_view_get_columns:
  * @self: a ModestHeaderView instance
@@ -184,7 +189,7 @@ gboolean modest_header_view_set_columns (ModestHeaderView *self,
  * with g_object_get_data MODEST_HEADER_VIEW_COLUMN (#define),
  * and which contains the corresponding ModestHeaderViewColumn
  *  
- * Returns: newly allocated list of column ids, or NULL in case of no columns or error
+ * Returns: newly allocated list of #GtkTreeViewColumns objects, or NULL in case of no columns or error
  * You must free the list with g_list_free
  */
 GList*  modest_header_view_get_columns (ModestHeaderView *self);
@@ -246,6 +251,14 @@ gboolean  modest_header_view_is_empty (ModestHeaderView *self);
  **/
 void         modest_header_view_select_next          (ModestHeaderView *self);
 
+/**
+ * modest_header_view_select_prev:
+ * @self: a #ModestHeaderView
+ * 
+ * Selects the previous header of the current selected one
+ **/
+void         modest_header_view_select_prev          (ModestHeaderView *self);
+
 
 /* PROTECTED method. It's useful when we want to force a given
    selection to reload a msg. For example if we have selected a header
@@ -255,8 +268,57 @@ void
 _modest_header_view_change_selection (GtkTreeSelection *selection,
                                      gpointer user_data);
 
+/**
+ * modest_header_view_get_sort_column_id:
+ * @self: a #ModestHeaderView
+ * @type: #TnyFolderType type
+ * 
+ * Gets the selected logical columnd id for sorting.
+ **/
+gint
+modest_header_view_get_sort_column_id (ModestHeaderView *self, TnyFolderType type);
+
+/**
+ * modest_header_view_get_sort_type:
+ * @self: a #ModestHeaderView
+ * @type: #TnyFolderType type
+ * 
+ * Gets the selected sort type.
+ **/
+GtkSortType
+modest_header_view_get_sort_type (ModestHeaderView *self, TnyFolderType type);
+
+/**
+ * modest_header_view_set_sort_params:
+ * @self: a #ModestHeaderView
+ * @sort_colid: logical column id to sort
+ * @sort_type: #GtkSortType sort type
+ * @type: #TnyFolderType type
+ * 
+ * Sets the logical columnd id and sort type for sorting operations.
+ **/
+void
+modest_header_view_set_sort_params (ModestHeaderView *self, guint sort_colid, GtkSortType sort_type, TnyFolderType type);
+
+/**
+ * modest_header_view_set_sort_params:
+ * @self: a #ModestHeaderView
+ * @sort_colid: logical column id to sort
+ * @sort_type: #GtkSortType sort type
+ * 
+ * Sorts headers treeview by logical column id, @sort_colid, using a 
+ * @sort_type sorting method. In addition, new headder settings will be 
+ * stored in @self object. 
+ **/
+void
+modest_header_view_sort_by_column_id (ModestHeaderView *self, 
+                                     guint sort_colid,
+                                     GtkSortType sort_type);
+
+
 G_END_DECLS
 
 
+
 #endif /* __MODEST_HEADER_VIEW_H__ */