1 /*
2  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3  * Copyright (C) 1999-2011 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 __TEXTVIEW_H__
21 #define __TEXTVIEW_H__
22 
23 #ifdef HAVE_CONFIG_H
24 #  include "config.h"
25 #endif
26 
27 #include <glib.h>
28 #include <gtk/gtkwidget.h>
29 #include <gtk/gtktexttag.h>
30 
31 typedef struct _TextView	TextView;
32 
33 #include "messageview.h"
34 #include "procmime.h"
35 
36 struct _TextView
37 {
38 	GtkWidget *vbox;
39 	GtkWidget *scrolledwin;
40 	GtkWidget *text;
41 
42 	GtkWidget *popup_menu;
43 	GtkItemFactory *popup_factory; /* not used */
44 
45 	GtkTextTag *quote0_tag;
46 	GtkTextTag *quote1_tag;
47 	GtkTextTag *quote2_tag;
48 	GtkTextTag *link_tag;
49 	GtkTextTag *hover_link_tag;
50 
51 	GSList *uri_list;
52 	gint body_pos;
53 
54 	gboolean show_all_headers;
55 
56 	MessageView *messageview;
57 };
58 
59 TextView *textview_create		(void);
60 void textview_init			(TextView	*textview);
61 void textview_reflect_prefs		(TextView	*textview);
62 
63 void textview_show_message	(TextView	*textview,
64 				 MimeInfo	*mimeinfo,
65 				 const gchar	*file);
66 void textview_show_part		(TextView	*textview,
67 				 MimeInfo	*mimeinfo,
68 				 FILE		*fp);
69 void textview_show_error	(TextView	*textview);
70 
71 void textview_clear		(TextView	*textview);
72 void textview_destroy		(TextView	*textview);
73 
74 void textview_set_all_headers	(TextView	*textview,
75 				 gboolean	 all_headers);
76 void textview_set_font		(TextView	*textview,
77 				 const gchar	*codeset);
78 void textview_set_position	(TextView	*textview,
79 				 gint		 pos);
80 
81 void textview_scroll_one_line	(TextView	*textview,
82 				 gboolean	 up);
83 gboolean textview_scroll_page	(TextView	*textview,
84 				 gboolean	 up);
85 
86 gboolean textview_search_string			(TextView	*textview,
87 						 const gchar	*str,
88 						 gboolean	 case_sens);
89 gboolean textview_search_string_backward	(TextView	*textview,
90 						 const gchar	*str,
91 						 gboolean	 case_sens);
92 
93 #endif /* __TEXTVIEW_H__ */
94