+TnyList *
+modest_header_view_get_selected_headers (ModestHeaderView *self)
+{
+ GtkTreeSelection *sel;
+ ModestHeaderViewPrivate *priv;
+ TnyList *header_list = NULL;
+ TnyHeader *header;
+ GList *list, *tmp = NULL;
+ GtkTreeModel *tree_model = NULL;
+ GtkTreeIter iter;
+
+ priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
+
+ /* Get selected rows */
+ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
+ list = gtk_tree_selection_get_selected_rows (sel, &tree_model);
+
+ if (list) {
+ header_list = tny_simple_list_new();
+
+ list = g_list_reverse (list);
+ tmp = list;
+ while (tmp) {
+ /* Get Header from selection */
+ gtk_tree_model_get_iter (tree_model,
+ &iter,
+ (GtkTreePath *) (tmp->data));
+
+ gtk_tree_model_get (tree_model, &iter,
+ TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+ &header, -1);
+
+ /* Prepend to list */
+ tny_list_prepend (header_list, G_OBJECT (header));
+ tmp = g_list_next (tmp);
+ }
+ /* Clean up*/
+ g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
+ g_list_free (list);
+ }
+ return header_list;
+}