messageview.h (3669B)
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 #include <glib.h> 23 #include <gtk/gtk.h> 24 25 #include "mainwindow.h" 26 #include "viewtypes.h" 27 #include "procmsg.h" 28 #include "procmime.h" 29 #include "toolbar.h" 30 31 struct _MessageView 32 { 33 GtkWidget *vbox; 34 35 gboolean new_window; 36 GtkWidget *window; 37 38 /* Toolbar handlebox */ 39 GtkWidget *handlebox; 40 Toolbar *toolbar; 41 GtkWidget *menubar; 42 43 MimeView *mimeview; 44 GtkWidget *statusbar; 45 gint statusbar_cid; 46 47 MainWindow *mainwin; 48 49 MsgInfo *msginfo; 50 51 gchar *forced_charset; 52 EncodingType forced_encoding; 53 54 gboolean visible; 55 56 /* this message was filtered by an action */ 57 gboolean filtered; 58 59 /* From messageview_show */ 60 gboolean all_headers; 61 62 gint msginfo_update_callback_id; 63 gboolean updating; 64 gboolean deferred_destroy; 65 66 gboolean show_full_text; 67 gboolean update_needed; 68 GtkUIManager *ui_manager; 69 GList *trail; 70 gint trail_pos; 71 }; 72 73 struct _MimeInfoSearch 74 { 75 MimeInfo *parent; 76 MimeInfo *current; 77 MimeInfo *found; 78 }; 79 typedef struct _MimeInfoSearch MimeInfoSearch; 80 81 MessageView *messageview_create (MainWindow *mainwin); 82 MessageView *messageview_create_with_new_window (MainWindow *mainwin); 83 84 void messageview_init(MessageView *messageview); 85 gint messageview_show (MessageView *messageview, 86 MsgInfo *msginfo, 87 gboolean all_headers); 88 void messageview_clear (MessageView *messageview); 89 void messageview_destroy (MessageView *messageview); 90 91 TextView *messageview_get_current_textview (MessageView *messageview); 92 MimeInfo *messageview_get_selected_mime_part (MessageView *messageview); 93 94 void messageview_copy_clipboard (MessageView *messageview); 95 void messageview_select_all (MessageView *messageview); 96 void messageview_set_position (MessageView *messageview, 97 gint pos); 98 const GList *messageview_get_msgview_list (void); 99 void messageview_delete (MessageView *messageview); 100 gboolean messageview_search_string (MessageView *messageview, 101 const gchar *str, 102 gboolean case_sens); 103 gboolean messageview_search_string_backward (MessageView *messageview, 104 const gchar *str, 105 gboolean case_sens); 106 107 gboolean messageview_is_visible (MessageView *messageview); 108 109 void messageview_update_actions_menu (MessageView *msgview); 110 void messageview_reflect_prefs_pixmap_theme (void); 111 gchar *messageview_get_selection (MessageView *msgview); 112 113 void messageview_set_menu_sensitive (MessageView *msgview); 114 115 void messageview_print (MsgInfo *msginfo, 116 gboolean all_headers, 117 gint sel_start, 118 gint sel_end, 119 gint partnum); 120 void messageview_list_urls (MessageView *msgview); 121 122 gboolean messageview_nav_has_prev(MessageView *messageview); 123 gboolean messageview_nav_has_next(MessageView *messageview); 124 MsgInfo *messageview_nav_get_prev(MessageView *messageview); 125 MsgInfo *messageview_nav_get_next(MessageView *messageview); 126 127 #endif /* __MESSAGEVIEW_H__ */