summaryrefslogtreecommitdiff
path: root/src/summaryview.h
diff options
context:
space:
mode:
authorSimeon Simeonov2018-02-26 11:23:00 +0100
committerSimeon Simeonov2018-02-26 11:23:00 +0100
commit0b3cbf57875fd692e4ba0b336fefa4bee1ed00dc (patch)
treeaf916a30553c78ce9d4f2d8658656a175c5b6921 /src/summaryview.h
Initial commit for sylpheed 3.7.0
Diffstat (limited to 'src/summaryview.h')
-rw-r--r--src/summaryview.h306
1 files changed, 306 insertions, 0 deletions
diff --git a/src/summaryview.h b/src/summaryview.h
new file mode 100644
index 0000000..201a963
--- /dev/null
+++ b/src/summaryview.h
@@ -0,0 +1,306 @@
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 __SUMMARY_H__
21#define __SUMMARY_H__
22
23#include <glib.h>
24#include <gdk/gdk.h>
25#include <gtk/gtkwidget.h>
26#include <gtk/gtkitemfactory.h>
27#include <gtk/gtktreestore.h>
28#include <gtk/gtktreeview.h>
29#include <gtk/gtkdnd.h>
30
31typedef struct _SummaryView SummaryView;
32typedef struct _SummaryColumnState SummaryColumnState;
33
34#include "enums.h"
35#include "mainwindow.h"
36#include "folderview.h"
37#include "headerview.h"
38#include "messageview.h"
39#include "quick_search.h"
40#include "compose.h"
41#include "filter.h"
42#include "folder.h"
43#include "procmsg.h"
44
45typedef enum
46{
47 SUMMARY_NONE,
48 SUMMARY_SELECTED_NONE,
49 SUMMARY_SELECTED_SINGLE,
50 SUMMARY_SELECTED_MULTIPLE
51} SummarySelection;
52
53struct _SummaryColumnState
54{
55 SummaryColumnType type;
56 gboolean visible;
57};
58
59struct _SummaryView
60{
61 GtkWidget *vbox;
62
63 GtkWidget *scrolledwin;
64 GtkWidget *treeview;
65
66 GtkTreeStore *store;
67 GtkTreeSelection *selection;
68 GtkTreeViewColumn *columns[N_SUMMARY_VISIBLE_COLS];
69
70 GtkWidget *hseparator;
71 GtkWidget *hbox;
72 GtkWidget *statlabel_folder;
73 GtkWidget *statlabel_select;
74 GtkWidget *statlabel_msgs;
75 GtkWidget *toggle_eventbox;
76 GtkWidget *toggle_arrow;
77 GtkWidget *popupmenu;
78 GtkWidget *colorlabel_menu;
79
80 GtkItemFactory *popupfactory;
81
82 GtkWidget *reedit_menuitem;
83 GtkWidget *reedit_separator;
84 GtkWidget *junk_menuitem;
85 GtkWidget *nojunk_menuitem;
86 GtkWidget *junk_separator;
87
88 GtkWidget *window;
89
90 GtkTreeRowReference *selected;
91 GtkTreeRowReference *displayed;
92
93 GList *selection_list;
94
95 gboolean display_msg;
96
97 SummaryColumnState col_state[N_SUMMARY_VISIBLE_COLS];
98 gint col_pos[N_SUMMARY_VISIBLE_COLS];
99
100 GdkColor color_marked;
101 GdkColor color_dim;
102
103 guint lock_count;
104
105 MainWindow *mainwin;
106 FolderView *folderview;
107 HeaderView *headerview;
108 MessageView *messageview;
109 QuickSearch *qsearch;
110
111 FolderItem *folder_item;
112
113 /* current message status */
114 gint64 total_size;
115 gint deleted;
116 gint moved;
117 gint copied;
118
119/*
120private:
121*/
122 /* table for looking up message-id */
123 GHashTable *msgid_table;
124
125 /* all message list */
126 GSList *all_mlist;
127 /* filtered message list */
128 GSList *flt_mlist;
129
130 gint64 total_flt_msg_size;
131 gint flt_msg_total;
132 gint flt_deleted;
133 gint flt_moved;
134 gint flt_copied;
135 gint flt_new;
136 gint flt_unread;
137
138 gboolean on_filter;
139
140 /* list for moving/deleting messages */
141 GSList *tmp_mlist;
142 FolderItem *to_folder;
143 /* table for updating folder tree */
144 GHashTable *folder_table;
145 /* counter for filtering */
146 gint filtered;
147 gint flt_count;
148 gint flt_total;
149
150 gboolean on_button_press;
151
152 /* for DnD */
153 gboolean can_toggle_selection;
154 gboolean on_drag;
155 GtkTreePath *pressed_path;
156 gchar *drag_list;
157
158 /* unthreading */
159 GSList *pos_list;
160
161 guint write_lock_count;
162
163 /* junk filter list */
164 GSList *junk_fltlist;
165
166 /* generic flag */
167 gint tmp_flag;
168};
169
170SummaryView *summary_create(void);
171
172void summary_init (SummaryView *summaryview);
173gboolean summary_show (SummaryView *summaryview,
174 FolderItem *fitem,
175 gboolean update_cache);
176void summary_clear_list (SummaryView *summaryview);
177void summary_clear_all (SummaryView *summaryview);
178
179void summary_show_queued_msgs (SummaryView *summaryview);
180
181/* full lock */
182void summary_lock (SummaryView *summaryview);
183void summary_unlock (SummaryView *summaryview);
184gboolean summary_is_locked (SummaryView *summaryview);
185gboolean summary_is_read_locked (SummaryView *summaryview);
186
187/* write lock (read only) */
188void summary_write_lock (SummaryView *summaryview);
189void summary_write_unlock (SummaryView *summaryview);
190gboolean summary_is_write_locked (SummaryView *summaryview);
191
192FolderItem *summary_get_current_folder (SummaryView *summaryview);
193
194SummarySelection summary_get_selection_type (SummaryView *summaryview);
195GSList *summary_get_selected_msg_list (SummaryView *summaryview);
196GSList *summary_get_changed_msg_list (SummaryView *summaryview);
197GSList *summary_get_msg_list (SummaryView *summaryview);
198GSList *summary_get_flagged_msg_list (SummaryView *summaryview,
199 MsgPermFlags flags);
200
201MsgInfo *summary_get_msginfo_by_msgnum (SummaryView *summaryview,
202 guint msgnum);
203
204void summary_select_prev_unread (SummaryView *summaryview);
205void summary_select_next_unread (SummaryView *summaryview);
206void summary_select_prev_new (SummaryView *summaryview);
207void summary_select_next_new (SummaryView *summaryview);
208void summary_select_prev_marked (SummaryView *summaryview);
209void summary_select_next_marked (SummaryView *summaryview);
210void summary_select_prev_labeled (SummaryView *summaryview);
211void summary_select_next_labeled (SummaryView *summaryview);
212void summary_select_by_msgnum (SummaryView *summaryview,
213 guint msgnum);
214gboolean summary_select_by_msginfo(SummaryView *summaryview,
215 MsgInfo *msginfo);
216
217void summary_select_row (SummaryView *summaryview,
218 GtkTreeIter *iter,
219 gboolean display_msg,
220 gboolean do_refresh);
221
222void summary_thread_build (SummaryView *summaryview);
223void summary_unthread (SummaryView *summaryview);
224
225void summary_expand_threads (SummaryView *summaryview);
226void summary_collapse_threads (SummaryView *summaryview);
227
228void summary_filter (SummaryView *summaryview,
229 gboolean selected_only);
230void summary_filter_open (SummaryView *summaryview,
231 FilterCreateType type);
232
233void summary_filter_junk (SummaryView *summaryview,
234 gboolean selected_only);
235
236void summary_junk (SummaryView *summaryview);
237void summary_not_junk (SummaryView *summaryview);
238
239void summary_sort (SummaryView *summaryview,
240 FolderSortKey sort_key,
241 FolderSortType sort_type);
242
243void summary_delete (SummaryView *summaryview);
244void summary_delete_duplicated (SummaryView *summaryview);
245
246gboolean summary_execute (SummaryView *summaryview);
247
248void summary_attract_by_subject (SummaryView *summaryview);
249
250gint summary_write_cache (SummaryView *summaryview);
251
252void summary_pass_key_press_event (SummaryView *summaryview,
253 GdkEventKey *event);
254
255void summary_display_msg_selected (SummaryView *summaryview,
256 gboolean new_window,
257 gboolean all_headers);
258void summary_redisplay_msg (SummaryView *summaryview);
259void summary_open_msg (SummaryView *summaryview);
260void summary_view_source (SummaryView *summaryview);
261void summary_reedit (SummaryView *summaryview);
262gboolean summary_step (SummaryView *summaryview,
263 GtkScrollType type);
264void summary_toggle_view (SummaryView *summaryview);
265
266void summary_update_selected_rows (SummaryView *summaryview);
267void summary_update_by_msgnum (SummaryView *summaryview,
268 guint msgnum);
269
270void summary_move_selected_to (SummaryView *summaryview,
271 FolderItem *to_folder);
272void summary_move_to (SummaryView *summaryview);
273void summary_copy_selected_to (SummaryView *summaryview,
274 FolderItem *to_folder);
275void summary_copy_to (SummaryView *summaryview);
276void summary_save_as (SummaryView *summaryview);
277void summary_print (SummaryView *summaryview);
278void summary_mark (SummaryView *summaryview);
279void summary_unmark (SummaryView *summaryview);
280void summary_mark_as_unread (SummaryView *summaryview);
281void summary_mark_as_read (SummaryView *summaryview);
282void summary_mark_thread_as_read (SummaryView *summaryview);
283void summary_mark_all_read (SummaryView *summaryview);
284void summary_add_address (SummaryView *summaryview);
285void summary_select_all (SummaryView *summaryview);
286void summary_unselect_all (SummaryView *summaryview);
287void summary_select_thread (SummaryView *summaryview);
288
289void summary_mark_displayed_read (SummaryView *summaryview,
290 GtkTreeIter *iter);
291
292void summary_reply (SummaryView *summaryview,
293 ComposeMode mode);
294
295void summary_set_colorlabel (SummaryView *summaryview,
296 guint labelcolor,
297 GtkWidget *widget);
298
299void summary_set_column_order (SummaryView *summaryview);
300void summary_get_column_order (SummaryView *summaryview);
301
302void summary_qsearch_reset (SummaryView *summaryview);
303void summary_qsearch_clear_entry (SummaryView *summaryview);
304void summary_qsearch (SummaryView *summaryview);
305
306#endif /* __SUMMARY_H__ */