2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
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.
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.
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/>.
23 typedef struct _MimeView MimeView;
24 typedef struct _MimeViewerFactory MimeViewerFactory;
25 typedef struct _MimeViewer MimeViewer;
29 #include <gtk/gtkwidget.h>
30 #include <gtk/gtkctree.h>
31 #include <gtk/gtktooltips.h>
37 #include "messageview.h"
39 #include "noticeview.h"
48 typedef struct _SigCheckData SigCheckData;
53 gboolean free_after_use;
54 gboolean destroy_mimeview;
63 GtkWidget *scrolledwin;
65 GtkWidget *mime_notebook;
66 GtkWidget *ctree_mainbox;
67 GtkWidget *icon_scroll;
69 GtkWidget *icon_mainbox;
70 GtkWidget *mime_toggle;
71 GtkWidget *scrollbutton;
80 MimeViewer *mimeviewer;
82 MessageView *messageview;
90 GtkTargetList *target_list; /* DnD */
94 GtkTooltips *tooltips;
97 NoticeView *siginfoview;
100 SigCheckData *check_data;
105 struct _MimeViewerFactory
108 * Array of supported content types.
109 * Must be NULL terminated and lower case
111 gchar **content_types;
114 MimeViewer *(*create_viewer) (void);
119 MimeViewerFactory *factory;
121 GtkWidget *(*get_widget) (MimeViewer *);
122 void (*show_mimepart) (MimeViewer *, const gchar *infile, MimeInfo *);
123 void (*clear_viewer) (MimeViewer *);
124 void (*destroy_viewer) (MimeViewer *);
125 gchar *(*get_selection) (MimeViewer *);
126 gboolean (*scroll_page) (MimeViewer *, gboolean up);
127 void (*scroll_one_line) (MimeViewer *, gboolean up);
128 gboolean (*text_search) (MimeViewer *, gboolean backward,
130 gboolean case_sensitive);
131 void (*print) (MimeViewer *);
137 #endif /* __cplusplus */
140 MimeView *mimeview_create (MainWindow *mainwin);
141 void mimeview_init (MimeView *mimeview);
142 void mimeview_show_message (MimeView *mimeview,
145 gboolean mimeview_show_part (MimeView *mimeview,
147 void mimeview_destroy (MimeView *mimeview);
148 void mimeview_update (MimeView *mimeview);
149 void mimeview_clear (MimeView *mimeview);
151 MimeInfo *mimeview_get_selected_part (MimeView *mimeview);
153 void mimeview_pass_key_press_event (MimeView *mimeview,
156 void mimeview_register_viewer_factory (MimeViewerFactory *factory);
157 void mimeview_unregister_viewer_factory (MimeViewerFactory *factory);
158 void mimeview_handle_cmd (MimeView *mimeview,
160 GdkEventButton *event,
162 void mimeview_select_mimepart_icon (MimeView *mimeview,
164 gboolean mimeview_scroll_page (MimeView *mimeview,
166 void mimeview_scroll_one_line (MimeView *mimeview,
168 gint mimeview_get_selected_part_num (MimeView *mimeview);
169 void mimeview_select_part_num (MimeView *mimeview,
171 gboolean mimeview_has_viewer_for_content_type
173 const gchar *content_type);
177 #endif /* __cplusplus */
179 #endif /* __MIMEVIEW_H__ */