Handle IMAP search failure instead of ignoring it.
[claws.git] / src / messageview.h
1 /*
2  * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
3  * Copyright (C) 1999-2016 Hiroyuki Yamamoto and the Claws Mail team
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 3 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, see <http://www.gnu.org/licenses/>.
17  */
18
19 #ifndef __MESSAGEVIEW_H__
20 #define __MESSAGEVIEW_H__
21
22 #ifdef HAVE_CONFIG_H
23 #include "claws-features.h"
24 #endif
25
26 #include <glib.h>
27 #include <gtk/gtk.h>
28
29 #include "mainwindow.h"
30 #include "viewtypes.h"
31 #include "procmsg.h"
32 #include "procmime.h"
33 #include "toolbar.h"
34
35 #define MESSAGE_VIEW_SHOW_DONE_HOOKLIST "message_view_show_done_hooklist"
36
37
38 struct _MessageView
39 {
40         GtkWidget *vbox;
41
42         gboolean new_window;
43         GtkWidget *window;
44
45         /* Toolbar handlebox */
46         GtkWidget *handlebox;
47         Toolbar *toolbar;
48         GtkWidget *menubar;
49
50         HeaderView *headerview;
51         MimeView *mimeview;
52         NoticeView *noticeview;
53         GtkWidget *statusbar;
54         gint statusbar_cid;
55
56         MainWindow *mainwin;
57
58         MsgInfo *msginfo;
59
60         gchar *forced_charset;
61         EncodingType forced_encoding;
62
63         gboolean visible;
64
65         /* this message was filtered by an action */
66         gboolean filtered;
67   
68         /* From messageview_show */
69         gboolean all_headers;
70
71         gint msginfo_update_callback_id;
72         gboolean updating;
73         gboolean deferred_destroy;
74         
75         gboolean show_full_text;
76         gboolean partial_display_shown;
77         gboolean update_needed;
78         GtkUIManager *ui_manager;
79         GList *trail;
80         gint trail_pos;
81 };
82
83 struct _MimeInfoSearch
84 {
85         MimeInfo *parent;
86         MimeInfo *current;
87         MimeInfo *found;
88 };
89 typedef struct _MimeInfoSearch MimeInfoSearch;
90
91 MessageView *messageview_create                 (MainWindow     *mainwin);
92 MessageView *messageview_create_with_new_window (MainWindow     *mainwin);
93
94 void messageview_init                           (MessageView    *messageview);
95 gint messageview_show                           (MessageView    *messageview,
96                                                  MsgInfo        *msginfo,
97                                                  gboolean        all_headers);
98 void messageview_clear                          (MessageView    *messageview);
99 void messageview_destroy                        (MessageView    *messageview);
100
101 TextView *messageview_get_current_textview      (MessageView    *messageview);
102 MimeInfo *messageview_get_selected_mime_part    (MessageView    *messageview);
103
104 void messageview_copy_clipboard                 (MessageView    *messageview);
105 void messageview_select_all                     (MessageView    *messageview);
106 void messageview_set_position                   (MessageView    *messageview,
107                                                  gint            pos);
108 const GList *messageview_get_msgview_list       (void);
109 void messageview_delete                         (MessageView    *messageview);
110 gboolean messageview_search_string              (MessageView    *messageview,
111                                                  const gchar    *str,
112                                                  gboolean        case_sens);
113 gboolean messageview_search_string_backward     (MessageView    *messageview,
114                                                  const gchar    *str,
115                                                  gboolean        case_sens);
116
117 gboolean messageview_is_visible                 (MessageView    *messageview);
118
119 void messageview_update_actions_menu            (MessageView    *msgview);
120 void messageview_reflect_prefs_pixmap_theme     (void);
121 gchar *messageview_get_selection                (MessageView    *msgview);
122
123 void messageview_set_menu_sensitive             (MessageView    *msgview);
124 void messageview_learn                          (MessageView    *msgview,
125                                                  gboolean is_spam);
126 void messageview_print                          (MsgInfo        *msginfo,
127                                                  gboolean        all_headers,
128                                                  gint            sel_start,
129                                                  gint            sel_end,
130                                                  gint            partnum);
131 void messageview_list_urls                      (MessageView    *msgview);
132 void messageview_show_partial_display           (MessageView    *msgview, 
133                                                  MsgInfo        *msginfo,
134                                                  size_t          length);
135 gboolean messageview_nav_has_prev(MessageView *messageview);
136 gboolean messageview_nav_has_next(MessageView *messageview);
137 MsgInfo *messageview_nav_get_prev(MessageView *messageview);
138 MsgInfo *messageview_nav_get_next(MessageView *messageview);
139
140 #endif /* __MESSAGEVIEW_H__ */