Initialize the gmime for upstream
[platform/upstream/gmime.git] / gmime / gmime-filter-html.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*  GMime
3  *  Copyright (C) 2000-2012 Jeffrey Stedfast
4  *
5  *  This library is free software; you can redistribute it and/or
6  *  modify it under the terms of the GNU Lesser General Public License
7  *  as published by the Free Software Foundation; either version 2.1
8  *  of the License, or (at your option) any later version.
9  *
10  *  This library 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 GNU
13  *  Lesser General Public License for more details.
14  *
15  *  You should have received a copy of the GNU Lesser General Public
16  *  License along with this library; if not, write to the Free
17  *  Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
18  *  02110-1301, USA.
19  */
20
21
22 #ifndef __GMIME_FILTER_HTML_H__
23 #define __GMIME_FILTER_HTML_H__
24
25 #include <gmime/gmime-filter.h>
26
27 G_BEGIN_DECLS
28
29 #define GMIME_TYPE_FILTER_HTML            (g_mime_filter_html_get_type ())
30 #define GMIME_FILTER_HTML(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMIME_TYPE_FILTER_HTML, GMimeFilterHTML))
31 #define GMIME_FILTER_HTML_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GMIME_TYPE_FILTER_HTML, GMimeFilterHTMLClass))
32 #define GMIME_IS_FILTER_HTML(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMIME_TYPE_FILTER_HTML))
33 #define GMIME_IS_FILTER_HTML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMIME_TYPE_FILTER_HTML))
34 #define GMIME_FILTER_HTML_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GMIME_TYPE_FILTER_HTML, GMimeFilterHTMLClass))
35
36 typedef struct _GMimeFilterHTML GMimeFilterHTML;
37 typedef struct _GMimeFilterHTMLClass GMimeFilterHTMLClass;
38
39
40 /**
41  * GMIME_FILTER_HTML_PRE:
42  *
43  * Wrap stream in &lt;pre&gt; tags.
44  **/
45 #define GMIME_FILTER_HTML_PRE               (1 << 0)
46
47
48 /**
49  * GMIME_FILTER_HTML_CONVERT_NL:
50  *
51  * Convert new-lines ('\n') into &lt;br&gt; tags.
52  **/
53 #define GMIME_FILTER_HTML_CONVERT_NL        (1 << 1)
54
55
56 /**
57  * GMIME_FILTER_HTML_CONVERT_SPACES:
58  *
59  * Preserve whitespace by converting spaces into their appropriate
60  * html entities.
61  **/
62 #define GMIME_FILTER_HTML_CONVERT_SPACES    (1 << 2)
63
64
65 /**
66  * GMIME_FILTER_HTML_CONVERT_URLS:
67  *
68  * Wrap detected URLs in &lt;a href=...&gt; tags.
69  **/
70 #define GMIME_FILTER_HTML_CONVERT_URLS      (1 << 3)
71
72
73 /**
74  * GMIME_FILTER_HTML_MARK_CITATION:
75  *
76  * Change the colour of citation text.
77  **/
78 #define GMIME_FILTER_HTML_MARK_CITATION     (1 << 4)
79
80
81 /**
82  * GMIME_FILTER_HTML_CONVERT_ADDRESSES:
83  *
84  * Wrap email addresses in "mailto:" href tags.
85  **/
86 #define GMIME_FILTER_HTML_CONVERT_ADDRESSES (1 << 5)
87
88
89 /**
90  * GMIME_FILTER_HTML_ESCAPE_8BIT:
91  *
92  * Converts 8bit characters to '?'.
93  **/
94 #define GMIME_FILTER_HTML_ESCAPE_8BIT       (1 << 6)
95
96
97 /**
98  * GMIME_FILTER_HTML_CITE:
99  *
100  * Cites text by prepending "&gt; " to each cited line.
101  **/
102 #define GMIME_FILTER_HTML_CITE              (1 << 7)
103
104
105 /**
106  * GMimeFilterHTML:
107  * @parent_object: parent #GMimeFilter
108  * @scanner: URL scanner state
109  * @flags: flags specifying HTML conversion rules
110  * @colour: cite colour
111  * @column: current column
112  * @pre_open: currently inside of a 'pre' tag.
113  *
114  * A filter for converting text/plain into text/html.
115  **/
116 struct _GMimeFilterHTML {
117         GMimeFilter parent_object;
118         
119         struct _UrlScanner *scanner;
120         
121         guint32 flags;
122         guint32 colour;
123         
124         guint32 column       : 31;
125         guint32 pre_open     : 1;
126 };
127
128 struct _GMimeFilterHTMLClass {
129         GMimeFilterClass parent_class;
130         
131 };
132
133
134 GType g_mime_filter_html_get_type (void);
135
136 GMimeFilter *g_mime_filter_html_new (guint32 flags, guint32 colour);
137
138 G_END_DECLS
139
140 #endif /* __GMIME_FILTER_HTML_H__ */