1 /* 2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client 3 * Copyright (C) 1999-2010 Hiroyuki Yamamoto 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 */ 19 20 #ifndef __FOLDERVIEW_H__ 21 #define __FOLDERVIEW_H__ 22 23 #include <glib.h> 24 #include <gtk/gtkwidget.h> 25 #include <gtk/gtktreestore.h> 26 #include <gtk/gtktreeview.h> 27 28 #include "folder.h" 29 30 typedef struct _FolderView FolderView; 31 32 #include "mainwindow.h" 33 #include "summaryview.h" 34 35 struct _FolderView 36 { 37 GtkWidget *vbox; 38 39 GtkWidget *scrolledwin; 40 41 GtkWidget *treeview; 42 43 GtkTreeStore *store; 44 GtkTreeSelection *selection; 45 46 GtkWidget *mail_popup; 47 GtkWidget *imap_popup; 48 GtkWidget *news_popup; 49 50 GtkItemFactory *mail_factory; 51 GtkItemFactory *imap_factory; 52 GtkItemFactory *news_factory; 53 54 GtkTreeRowReference *selected; 55 GtkTreeRowReference *opened; 56 GtkTreeRowReference *prev_selected; 57 58 gboolean display_folder_unread; 59 60 gboolean open_folder; 61 62 guint expand_timeout; 63 guint scroll_timeout; 64 65 gboolean selection_locked; 66 67 GdkColor color_new; 68 GdkColor color_noselect; 69 70 MainWindow *mainwin; 71 SummaryView *summaryview; 72 }; 73 74 FolderView *folderview_create (void); 75 void folderview_init (FolderView *folderview); 76 void folderview_reflect_prefs (FolderView *folderview); 77 78 void folderview_add_sub_widget (FolderView *folderview, 79 GtkWidget *widget); 80 81 FolderView *folderview_get (void); 82 83 void folderview_set (FolderView *folderview); 84 void folderview_set_all (void); 85 86 void folderview_select (FolderView *folderview, 87 FolderItem *item); 88 void folderview_unselect (FolderView *folderview); 89 void folderview_select_next_unread (FolderView *folderview); 90 91 FolderItem *folderview_get_selected_item(FolderView *folderview); 92 93 void folderview_set_opened_item (FolderView *folderview, 94 FolderItem *item); 95 void folderview_update_opened_msg_num (FolderView *folderview); 96 97 gboolean folderview_append_item (FolderView *folderview, 98 GtkTreeIter *iter, 99 FolderItem *item, 100 gboolean expand_parent); 101 102 gint folderview_check_new (Folder *folder); 103 gint folderview_check_new_item (FolderItem *item); 104 gint folderview_check_new_all (void); 105 106 void folderview_update_item (FolderItem *item, 107 gboolean update_summary); 108 void folderview_update_item_foreach (GHashTable *table, 109 gboolean update_summary); 110 void folderview_update_all_updated (gboolean update_summary); 111 112 void folderview_new_folder (FolderView *folderview); 113 void folderview_rename_folder (FolderView *folderview); 114 void folderview_move_folder (FolderView *folderview); 115 void folderview_delete_folder (FolderView *folderview); 116 117 void folderview_check_new_selected (FolderView *folderview); 118 void folderview_remove_mailbox (FolderView *folderview); 119 void folderview_rebuild_tree (FolderView *folderview); 120 121 #endif /* __FOLDERVIEW_H__ */ 122