1 /*
2  * camel-enums.h
3  *
4  * This library is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation.
7  *
8  * This library is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
11  * for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this library. If not, see <http://www.gnu.org/licenses/>.
15  *
16  */
17 
18 #if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION)
19 #error "Only <camel/camel.h> can be included directly."
20 #endif
21 
22 #ifndef CAMEL_ENUMS_H
23 #define CAMEL_ENUMS_H
24 
25 /**
26  * CamelAuthenticationResult:
27  * @CAMEL_AUTHENTICATION_ERROR:
28  *    An error occurred while authenticating.
29  * @CAMEL_AUTHENTICATION_ACCEPTED:
30  *    Server accepted our authentication attempt.
31  * @CAMEL_AUTHENTICATION_REJECTED:
32  *    Server rejected our authentication attempt.
33  *
34  * Authentication result codes used by #CamelService.
35  *
36  * Since: 3.4
37  **/
38 typedef enum {
39 	CAMEL_AUTHENTICATION_ERROR,
40 	CAMEL_AUTHENTICATION_ACCEPTED,
41 	CAMEL_AUTHENTICATION_REJECTED
42 } CamelAuthenticationResult;
43 
44 typedef enum { /*< flags >*/
45 	CAMEL_FOLDER_HAS_SUMMARY_CAPABILITY = 1 << 0,
46 	CAMEL_FOLDER_FILTER_RECENT = 1 << 2,
47 	CAMEL_FOLDER_HAS_BEEN_DELETED = 1 << 3,
48 	CAMEL_FOLDER_IS_TRASH = 1 << 4,
49 	CAMEL_FOLDER_IS_JUNK = 1 << 5,
50 	CAMEL_FOLDER_FILTER_JUNK = 1 << 6
51 } CamelFolderFlags;
52 
53 /**
54  * CAMEL_FOLDER_TYPE_BIT: (value 10)
55  * The folder type bitshift value.
56  **/
57 #define CAMEL_FOLDER_TYPE_BIT (10)
58 
59 /**
60  * CamelFolderInfoFlags:
61  * @CAMEL_FOLDER_NOSELECT:
62  *    The folder cannot contain messages.
63  * @CAMEL_FOLDER_NOINFERIORS:
64  *    The folder cannot have child folders.
65  * @CAMEL_FOLDER_CHILDREN:
66  *    The folder has children (not yet fully implemented).
67  * @CAMEL_FOLDER_NOCHILDREN:
68  *    The folder does not have children (not yet fully implemented).
69  * @CAMEL_FOLDER_SUBSCRIBED:
70  *    The folder is subscribed.
71  * @CAMEL_FOLDER_VIRTUAL:
72  *    The folder is virtual.  Messages cannot be copied or moved to
73  *    virtual folders since they are only queries of other folders.
74  * @CAMEL_FOLDER_SYSTEM:
75  *    The folder is a built-in "system" folder.  System folders
76  *    cannot be renamed or deleted.
77  * @CAMEL_FOLDER_VTRASH:
78  *    The folder is a virtual trash folder.  It cannot be copied to,
79  *    and can only be moved to if in an existing folder.
80  * @CAMEL_FOLDER_SHARED_TO_ME:
81  *    A folder being shared by someone else.
82  * @CAMEL_FOLDER_SHARED_BY_ME:
83  *    A folder being shared by the user.
84  * @CAMEL_FOLDER_TYPE_NORMAL:
85  *    The folder is a normal folder.
86  * @CAMEL_FOLDER_TYPE_INBOX:
87  *    The folder is an inbox folder.
88  * @CAMEL_FOLDER_TYPE_OUTBOX:
89  *    The folder is an outbox folder.
90  * @CAMEL_FOLDER_TYPE_TRASH:
91  *    The folder shows deleted messages.
92  * @CAMEL_FOLDER_TYPE_JUNK:
93  *    The folder shows junk messages.
94  * @CAMEL_FOLDER_TYPE_SENT:
95  *    The folder shows sent messages.
96  * @CAMEL_FOLDER_TYPE_CONTACTS:
97  *    The folder contains contacts, instead of mail messages.
98  * @CAMEL_FOLDER_TYPE_EVENTS:
99  *    The folder contains calendar events, instead of mail messages.
100  * @CAMEL_FOLDER_TYPE_MEMOS:
101  *    The folder contains memos, instead of mail messages.
102  * @CAMEL_FOLDER_TYPE_TASKS:
103  *    The folder contains tasks, instead of mail messages.
104  * @CAMEL_FOLDER_TYPE_ALL:
105  *    This folder contains all the messages. Used by RFC 6154.
106  * @CAMEL_FOLDER_TYPE_ARCHIVE:
107  *    This folder contains archived messages. Used by RFC 6154.
108  * @CAMEL_FOLDER_TYPE_DRAFTS:
109  *    This folder contains drafts. Used by RFC 6154.
110  * @CAMEL_FOLDER_READONLY:
111  *    The folder is read only.
112  * @CAMEL_FOLDER_WRITEONLY:
113  *    The folder is write only.
114  * @CAMEL_FOLDER_FLAGGED:
115  *    This folder contains flagged messages. Some clients call this "starred". Used by RFC 6154.
116  * @CAMEL_FOLDER_FLAGS_LAST:
117  *    The last define bit of the flags. The #CamelProvider can use this and
118  *    upper bits to store its own flags.
119  *
120  * These flags are abstractions.  It's up to the CamelProvider to give
121  * them suitable interpretations.  Use #CAMEL_FOLDER_TYPE_MASK to isolate
122  * the folder's type.
123  **/
124 /* WARNING: This enum and CamelStoreInfoFlags must stay in sync.
125  * FIXME: Eliminate the need for two separate types. */
126 typedef enum { /*< flags >*/
127 	CAMEL_FOLDER_NOSELECT = 1 << 0,
128 	CAMEL_FOLDER_NOINFERIORS = 1 << 1,
129 	CAMEL_FOLDER_CHILDREN = 1 << 2,
130 	CAMEL_FOLDER_NOCHILDREN = 1 << 3,
131 	CAMEL_FOLDER_SUBSCRIBED = 1 << 4,
132 	CAMEL_FOLDER_VIRTUAL = 1 << 5,
133 	CAMEL_FOLDER_SYSTEM = 1 << 6,
134 	CAMEL_FOLDER_VTRASH = 1 << 7,
135 	CAMEL_FOLDER_SHARED_TO_ME = 1 << 8,
136 	CAMEL_FOLDER_SHARED_BY_ME = 1 << 9,
137 
138 	CAMEL_FOLDER_TYPE_NORMAL = 0 << CAMEL_FOLDER_TYPE_BIT,
139 	CAMEL_FOLDER_TYPE_INBOX = 1 << CAMEL_FOLDER_TYPE_BIT,
140 	CAMEL_FOLDER_TYPE_OUTBOX = 2 << CAMEL_FOLDER_TYPE_BIT,
141 	CAMEL_FOLDER_TYPE_TRASH = 3 << CAMEL_FOLDER_TYPE_BIT,
142 	CAMEL_FOLDER_TYPE_JUNK = 4 << CAMEL_FOLDER_TYPE_BIT,
143 	CAMEL_FOLDER_TYPE_SENT = 5 << CAMEL_FOLDER_TYPE_BIT,
144 	CAMEL_FOLDER_TYPE_CONTACTS = 6 << CAMEL_FOLDER_TYPE_BIT,
145 	CAMEL_FOLDER_TYPE_EVENTS = 7 << CAMEL_FOLDER_TYPE_BIT,
146 	CAMEL_FOLDER_TYPE_MEMOS = 8 << CAMEL_FOLDER_TYPE_BIT,
147 	CAMEL_FOLDER_TYPE_TASKS = 9 << CAMEL_FOLDER_TYPE_BIT,
148 	CAMEL_FOLDER_TYPE_ALL = 10 << CAMEL_FOLDER_TYPE_BIT,
149 	CAMEL_FOLDER_TYPE_ARCHIVE = 11 << CAMEL_FOLDER_TYPE_BIT,
150 	CAMEL_FOLDER_TYPE_DRAFTS = 12 << CAMEL_FOLDER_TYPE_BIT,
151 
152 	CAMEL_FOLDER_READONLY = 1 << 16,
153 	CAMEL_FOLDER_WRITEONLY = 1 << 17,
154 	CAMEL_FOLDER_FLAGGED = 1 << 18,
155 
156 	CAMEL_FOLDER_FLAGS_LAST          = 1 << 24
157 } CamelFolderInfoFlags;
158 
159 /**
160  * CAMEL_FOLDER_TYPE_MASK: (value 64512)
161  * The folder type mask value.
162  **/
163 #define CAMEL_FOLDER_TYPE_MASK (0x3F << CAMEL_FOLDER_TYPE_BIT)
164 
165 /* Note: The HTML elements are escaped in the doc comment intentionally,
166  *       to have them shown as expected in generated documentation. */
167 /**
168  * CamelMimeFilterToHTMLFlags:
169  * @CAMEL_MIME_FILTER_TOHTML_PRE:
170  *     Enclose the content in &lt;pre&gt; ... &lt;/pre&gt; tags.
171  *     Cannot be used together with %CAMEL_MIME_FILTER_TOHTML_DIV.
172  * @CAMEL_MIME_FILTER_TOHTML_CONVERT_NL:
173  *     Convert newline characters to &lt;br&gt; tags.
174  * @CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES:
175  *     Convert space and tab characters to a non-breaking space (&amp;nbsp;).
176  * @CAMEL_MIME_FILTER_TOHTML_CONVERT_URLS:
177  *     Convert recognized URLs to &lt;a href="foo"&gt;foo&lt;/a&gt;.
178  * @CAMEL_MIME_FILTER_TOHTML_MARK_CITATION:
179  *     Color quoted lines (lines beginning with '&gt;').
180  * @CAMEL_MIME_FILTER_TOHTML_CONVERT_ADDRESSES:
181  *     Convert mailto: URLs to &lt;a href="mailto:foo"&gt;mailto:foo&lt;/a&gt;.
182  * @CAMEL_MIME_FILTER_TOHTML_ESCAPE_8BIT:
183  *     Convert 8-bit characters to escaped hexdecimal (&amp;#nnn;).
184  * @CAMEL_MIME_FILTER_TOHTML_CITE:
185  *     Prefix each line with "&gt; ".
186  * @CAMEL_MIME_FILTER_TOHTML_PRESERVE_8BIT:
187  *     This flag is not used by #CamelMimeFilterToHTML.
188  * @CAMEL_MIME_FILTER_TOHTML_FORMAT_FLOWED:
189  *     This flag is not used by #CamelMimeFilterToHTML.
190  * @CAMEL_MIME_FILTER_TOHTML_QUOTE_CITATION:
191  *     Group lines beginning with one or more '&gt;' characters in
192  *     &lt;blockquote type="cite"&gt; ... &lt;/blockquote&gt; tags. The tags
193  *     are nested according to the number of '&gt;' characters.
194  * @CAMEL_MIME_FILTER_TOHTML_DIV:
195  *     Enclose the paragraphs in &lt;div&gt; ... &lt;/div&gt; tags.
196  *     Cannot be used together with %CAMEL_MIME_FILTER_TOHTML_PRE.
197  * @CAMEL_MIME_FILTER_TOHTML_PRESERVE_TABS:
198  *     Set in combination with %CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES,
199  *     to keep tab characters. If not set, converts them into the spaces.
200  *
201  * Flags for converting text/plain content into text/html.
202  **/
203 typedef enum { /*< flags >*/
204 	CAMEL_MIME_FILTER_TOHTML_PRE = 1 << 0,
205 	CAMEL_MIME_FILTER_TOHTML_CONVERT_NL = 1 << 1,
206 	CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES = 1 << 2,
207 	CAMEL_MIME_FILTER_TOHTML_CONVERT_URLS = 1 << 3,
208 	CAMEL_MIME_FILTER_TOHTML_MARK_CITATION = 1 << 4,
209 	CAMEL_MIME_FILTER_TOHTML_CONVERT_ADDRESSES = 1 << 5,
210 	CAMEL_MIME_FILTER_TOHTML_ESCAPE_8BIT = 1 << 6,
211 	CAMEL_MIME_FILTER_TOHTML_CITE = 1 << 7,
212 	CAMEL_MIME_FILTER_TOHTML_PRESERVE_8BIT = 1 << 8,
213 	CAMEL_MIME_FILTER_TOHTML_FORMAT_FLOWED = 1 << 9,
214 	CAMEL_MIME_FILTER_TOHTML_QUOTE_CITATION = 1 << 10,
215 	CAMEL_MIME_FILTER_TOHTML_DIV = 1 << 11,
216 	CAMEL_MIME_FILTER_TOHTML_PRESERVE_TABS = 1 << 12
217 } CamelMimeFilterToHTMLFlags;
218 
219 /**
220  * CAMEL_STORE_INFO_FOLDER_TYPE_BIT: (value 10)
221  * The folder store info type bitshift value.
222  **/
223 #define CAMEL_STORE_INFO_FOLDER_TYPE_BIT (10)
224 
225 /* WARNING: This enum and CamelFolderInfoFlags must stay in sync.
226  * FIXME: Eliminate the need for two separate types. */
227 typedef enum { /*< flags >*/
228 	CAMEL_STORE_INFO_FOLDER_NOSELECT = 1 << 0,
229 	CAMEL_STORE_INFO_FOLDER_NOINFERIORS = 1 << 1,
230 	CAMEL_STORE_INFO_FOLDER_CHILDREN = 1 << 2,
231 	CAMEL_STORE_INFO_FOLDER_NOCHILDREN = 1 << 3,
232 	CAMEL_STORE_INFO_FOLDER_SUBSCRIBED = 1 << 4,
233 	CAMEL_STORE_INFO_FOLDER_VIRTUAL = 1 << 5,
234 	CAMEL_STORE_INFO_FOLDER_SYSTEM = 1 << 6,
235 	CAMEL_STORE_INFO_FOLDER_VTRASH = 1 << 7,
236 	CAMEL_STORE_INFO_FOLDER_SHARED_TO_ME = 1 << 8,
237 	CAMEL_STORE_INFO_FOLDER_SHARED_BY_ME = 1 << 9,
238 
239 	CAMEL_STORE_INFO_FOLDER_TYPE_NORMAL = 0 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
240 	CAMEL_STORE_INFO_FOLDER_TYPE_INBOX = 1 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
241 	CAMEL_STORE_INFO_FOLDER_TYPE_OUTBOX = 2 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
242 	CAMEL_STORE_INFO_FOLDER_TYPE_TRASH = 3 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
243 	CAMEL_STORE_INFO_FOLDER_TYPE_JUNK = 4 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
244 	CAMEL_STORE_INFO_FOLDER_TYPE_SENT = 5 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
245 	CAMEL_STORE_INFO_FOLDER_TYPE_CONTACTS = 6 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
246 	CAMEL_STORE_INFO_FOLDER_TYPE_EVENTS = 7 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
247 	CAMEL_STORE_INFO_FOLDER_TYPE_MEMOS = 8 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
248 	CAMEL_STORE_INFO_FOLDER_TYPE_TASKS = 9 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
249 	CAMEL_STORE_INFO_FOLDER_TYPE_ALL = 10 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
250 	CAMEL_STORE_INFO_FOLDER_TYPE_ARCHIVE = 11 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
251 	CAMEL_STORE_INFO_FOLDER_TYPE_DRAFTS = 12 << CAMEL_STORE_INFO_FOLDER_TYPE_BIT,
252 
253 	CAMEL_STORE_INFO_FOLDER_READONLY = 1 << 16,
254 	CAMEL_STORE_INFO_FOLDER_WRITEONLY = 1 << 17,
255 	CAMEL_STORE_INFO_FOLDER_FLAGGED = 1 << 18,
256 
257 	CAMEL_STORE_INFO_FOLDER_LAST          = 1 << 24  /*< skip >*/
258 } CamelStoreInfoFlags;
259 
260 /**
261  * CAMEL_STORE_INFO_FOLDER_TYPE_MASK: (value 64512)
262  * The folder store info type mask value.
263  **/
264 #define CAMEL_STORE_INFO_FOLDER_TYPE_MASK  (0x3F << CAMEL_STORE_INFO_FOLDER_TYPE_BIT)
265 
266 /**
267  * CamelFetchHeadersType:
268  * @CAMEL_FETCH_HEADERS_BASIC:
269  *     Fetch only basic headers (Date, From, To, Subject, etc.).
270  * @CAMEL_FETCH_HEADERS_BASIC_AND_MAILING_LIST:
271  *     Fetch all basic headers and mailing list headers.
272  * @CAMEL_FETCH_HEADERS_ALL:
273  *     Fetch all available message headers.
274  *
275  * Describes what headers to fetch when downloading message summaries.
276  *
277  * Since: 3.2
278  **/
279 typedef enum {
280 	CAMEL_FETCH_HEADERS_BASIC,
281 	CAMEL_FETCH_HEADERS_BASIC_AND_MAILING_LIST,
282 	CAMEL_FETCH_HEADERS_ALL
283 } CamelFetchHeadersType;
284 
285 /**
286  * CamelJunkStatus:
287  * @CAMEL_JUNK_STATUS_ERROR:
288  *     An error occurred while invoking the junk filter.
289  * @CAMEL_JUNK_STATUS_INCONCLUSIVE:
290  *     The junk filter could not determine whether the message is junk.
291  * @CAMEL_JUNK_STATUS_MESSAGE_IS_JUNK:
292  *     The junk filter believes the message is junk.
293  * @CAMEL_JUNK_STATUS_MESSAGE_IS_NOT_JUNK:
294  *     The junk filter believes the message is not junk.
295  *
296  * These are result codes used when passing messages through a junk filter.
297  **/
298 typedef enum {
299 	CAMEL_JUNK_STATUS_ERROR,
300 	CAMEL_JUNK_STATUS_INCONCLUSIVE,
301 	CAMEL_JUNK_STATUS_MESSAGE_IS_JUNK,
302 	CAMEL_JUNK_STATUS_MESSAGE_IS_NOT_JUNK
303 } CamelJunkStatus;
304 
305 typedef enum {
306 	CAMEL_MIME_FILTER_BASIC_INVALID,
307 	CAMEL_MIME_FILTER_BASIC_BASE64_ENC,
308 	CAMEL_MIME_FILTER_BASIC_BASE64_DEC,
309 	CAMEL_MIME_FILTER_BASIC_QP_ENC,
310 	CAMEL_MIME_FILTER_BASIC_QP_DEC,
311 	CAMEL_MIME_FILTER_BASIC_UU_ENC,
312 	CAMEL_MIME_FILTER_BASIC_UU_DEC
313 } CamelMimeFilterBasicType;
314 
315 typedef enum {
316 	CAMEL_MIME_FILTER_CRLF_ENCODE,
317 	CAMEL_MIME_FILTER_CRLF_DECODE
318 } CamelMimeFilterCRLFDirection;
319 
320 typedef enum {
321 	CAMEL_MIME_FILTER_CRLF_MODE_CRLF_DOTS,
322 	CAMEL_MIME_FILTER_CRLF_MODE_CRLF_ONLY
323 } CamelMimeFilterCRLFMode;
324 
325 typedef enum {
326 	CAMEL_MIME_FILTER_GZIP_MODE_ZIP,
327 	CAMEL_MIME_FILTER_GZIP_MODE_UNZIP
328 } CamelMimeFilterGZipMode;
329 
330 typedef enum {
331 	CAMEL_MIME_FILTER_YENC_DIRECTION_ENCODE,
332 	CAMEL_MIME_FILTER_YENC_DIRECTION_DECODE
333 } CamelMimeFilterYencDirection;
334 
335 /**
336  * CamelNetworkSecurityMethod:
337  * @CAMEL_NETWORK_SECURITY_METHOD_NONE:
338  *   Use an unencrypted network connection.
339  * @CAMEL_NETWORK_SECURITY_METHOD_SSL_ON_ALTERNATE_PORT:
340  *   Use SSL by connecting to an alternate port number.
341  * @CAMEL_NETWORK_SECURITY_METHOD_STARTTLS_ON_STANDARD_PORT:
342  *   Use SSL or TLS by connecting to the standard port and invoking
343  *   STARTTLS before authenticating.  This is the recommended method.
344  *
345  * Methods for establishing an encrypted (or unencrypted) network connection.
346  *
347  * Since: 3.2
348  **/
349 typedef enum {
350 	CAMEL_NETWORK_SECURITY_METHOD_NONE,
351 	CAMEL_NETWORK_SECURITY_METHOD_SSL_ON_ALTERNATE_PORT,
352 	CAMEL_NETWORK_SECURITY_METHOD_STARTTLS_ON_STANDARD_PORT
353 } CamelNetworkSecurityMethod;
354 
355 typedef enum {
356 	CAMEL_PROVIDER_CONF_END,
357 	CAMEL_PROVIDER_CONF_SECTION_START,
358 	CAMEL_PROVIDER_CONF_SECTION_END,
359 	CAMEL_PROVIDER_CONF_CHECKBOX,
360 	CAMEL_PROVIDER_CONF_CHECKSPIN,
361 	CAMEL_PROVIDER_CONF_ENTRY,
362 	CAMEL_PROVIDER_CONF_LABEL,
363 	CAMEL_PROVIDER_CONF_HIDDEN,
364 	CAMEL_PROVIDER_CONF_OPTIONS,
365 	CAMEL_PROVIDER_CONF_PLACEHOLDER
366 } CamelProviderConfType;
367 
368 /**
369  * CamelProviderFlags:
370  * @CAMEL_PROVIDER_IS_REMOTE:
371  *   Provider works with remote data.
372  * @CAMEL_PROVIDER_IS_LOCAL:
373  *   Provider can be used as a backend for local folder tree folders.
374  *   (Not just the opposite of #CAMEL_PROVIDER_IS_REMOTE.)
375  * @CAMEL_PROVIDER_IS_SOURCE:
376  *   Mail arrives there, so it should be offered as an option in the
377  *   mail config dialog.
378  * @CAMEL_PROVIDER_IS_STORAGE:
379  *   Mail is stored there.  It will appear in the folder tree.
380  * @CAMEL_PROVIDER_IS_EXTERNAL:
381  *   Provider appears in the folder tree but is not created by the
382  *   mail component.
383  * @CAMEL_PROVIDER_HAS_LICENSE:
384  *   Provider configuration first needs the license to be accepted.
385  *   (No longer used.)
386  * @CAMEL_PROVIDER_ALLOW_REAL_TRASH_FOLDER:
387  *   Provider may use a real trash folder instead of a virtual folder.
388  * @CAMEL_PROVIDER_ALLOW_REAL_JUNK_FOLDER:
389  *   Provider may use a real junk folder instead of a virtual folder.
390  * @CAMEL_PROVIDER_DISABLE_SENT_FOLDER:
391  *   Provider requests to not use the Sent folder when sending with it.
392  * @CAMEL_PROVIDER_SUPPORTS_SSL:
393  *   Provider supports SSL/TLS connections.
394  * @CAMEL_PROVIDER_SUPPORTS_MOBILE_DEVICES:
395  *  Download limited set of emails instead of operating on full cache.
396  * @CAMEL_PROVIDER_SUPPORTS_BATCH_FETCH:
397  *  Support to fetch messages in batch.
398  * @CAMEL_PROVIDER_SUPPORTS_PURGE_MESSAGE_CACHE:
399  *  Support to remove oldest downloaded messages to conserve space.
400  *
401  **/
402 typedef enum { /*< flags >*/
403 	CAMEL_PROVIDER_IS_REMOTE = 1 << 0,
404 	CAMEL_PROVIDER_IS_LOCAL = 1 << 1,
405 	CAMEL_PROVIDER_IS_EXTERNAL = 1 << 2,
406 	CAMEL_PROVIDER_IS_SOURCE = 1 << 3,
407 	CAMEL_PROVIDER_IS_STORAGE = 1 << 4,
408 	CAMEL_PROVIDER_SUPPORTS_SSL = 1 << 5,
409 	CAMEL_PROVIDER_HAS_LICENSE = 1 << 6,
410 	CAMEL_PROVIDER_DISABLE_SENT_FOLDER = 1 << 7,
411 	CAMEL_PROVIDER_ALLOW_REAL_TRASH_FOLDER = 1 << 8,
412 	CAMEL_PROVIDER_ALLOW_REAL_JUNK_FOLDER = 1 << 9,
413 	CAMEL_PROVIDER_SUPPORTS_MOBILE_DEVICES = 1 << 10,
414 	CAMEL_PROVIDER_SUPPORTS_BATCH_FETCH = 1 << 11,
415 	CAMEL_PROVIDER_SUPPORTS_PURGE_MESSAGE_CACHE = 1 << 12
416 } CamelProviderFlags;
417 
418 typedef enum {
419 	CAMEL_PROVIDER_STORE,
420 	CAMEL_PROVIDER_TRANSPORT,
421 	CAMEL_NUM_PROVIDER_TYPES  /*< skip >*/
422 } CamelProviderType;
423 
424 typedef enum {
425 	CAMEL_SASL_ANON_TRACE_EMAIL,
426 	CAMEL_SASL_ANON_TRACE_OPAQUE,
427 	CAMEL_SASL_ANON_TRACE_EMPTY
428 } CamelSaslAnonTraceType;
429 
430 /**
431  * CamelRecipientCertificateFlags:
432  * @CAMEL_RECIPIENT_CERTIFICATE_SMIME: Retrieve S/MIME certificates; this cannot be used
433  *    together with @CAMEL_RECIPIENT_CERTIFICATE_PGP
434  * @CAMEL_RECIPIENT_CERTIFICATE_PGP: Retrieve PGP keys; this cannot be used
435  *    together with @CAMEL_RECIPIENT_CERTIFICATE_SMIME.
436  *
437  * Flags used to camel_session_get_recipient_certificates_sync() call.
438  *
439  * Since: 3.30
440  **/
441 typedef enum { /*< flags >*/
442 	CAMEL_RECIPIENT_CERTIFICATE_SMIME = 1 << 0,
443 	CAMEL_RECIPIENT_CERTIFICATE_PGP = 1 << 1
444 } CamelRecipientCertificateFlags;
445 
446 /**
447  * CamelServiceConnectionStatus:
448  * @CAMEL_SERVICE_DISCONNECTED:
449  *   #CamelService is disconnected from a remote server.
450  * @CAMEL_SERVICE_CONNECTING:
451  *   #CamelService is connecting to a remote server.
452  * @CAMEL_SERVICE_CONNECTED:
453  *   #CamelService is connected to a remote server.
454  * @CAMEL_SERVICE_DISCONNECTING:
455  *   #CamelService is disconnecting from a remote server.
456  *
457  * Connection status returned by camel_service_get_connection_status().
458  *
459  * Since: 3.6
460  **/
461 typedef enum {
462 	CAMEL_SERVICE_DISCONNECTED,
463 	CAMEL_SERVICE_CONNECTING,
464 	CAMEL_SERVICE_CONNECTED,
465 	CAMEL_SERVICE_DISCONNECTING
466 } CamelServiceConnectionStatus;
467 
468 typedef enum {
469 	CAMEL_SESSION_ALERT_INFO,
470 	CAMEL_SESSION_ALERT_WARNING,
471 	CAMEL_SESSION_ALERT_ERROR
472 } CamelSessionAlertType;
473 
474 /**
475  * CamelSortType:
476  * @CAMEL_SORT_ASCENDING:
477  *   Sorting is in ascending order.
478  * @CAMEL_SORT_DESCENDING:
479  *   Sorting is in descending order.
480  *
481  * Determines the direction of a sort.
482  *
483  * Since: 3.2
484  **/
485 typedef enum {
486 	CAMEL_SORT_ASCENDING,
487 	CAMEL_SORT_DESCENDING
488 } CamelSortType;
489 
490 typedef enum { /*< flags >*/
491 	CAMEL_STORE_VTRASH = 1 << 0,
492 	CAMEL_STORE_VJUNK = 1 << 1,
493 	CAMEL_STORE_PROXY = 1 << 2,
494 	CAMEL_STORE_IS_MIGRATING = 1 << 3,
495 	CAMEL_STORE_REAL_JUNK_FOLDER = 1 << 4,
496 	CAMEL_STORE_CAN_EDIT_FOLDERS = 1 << 5,
497 	CAMEL_STORE_USE_CACHE_DIR = 1 << 6,
498 	CAMEL_STORE_CAN_DELETE_FOLDERS_AT_ONCE = 1 << 7,
499 	CAMEL_STORE_SUPPORTS_INITIAL_SETUP = 1 << 8
500 } CamelStoreFlags;
501 
502 /**
503  * CamelStoreGetFolderInfoFlags:
504  * @CAMEL_STORE_FOLDER_INFO_FAST:
505  * @CAMEL_STORE_FOLDER_INFO_RECURSIVE:
506  * @CAMEL_STORE_FOLDER_INFO_SUBSCRIBED:
507  * @CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL:
508  *   Do not include virtual trash or junk folders.
509  * @CAMEL_STORE_FOLDER_INFO_SUBSCRIPTION_LIST:
510  *   Fetch only the subscription list. Clients should use this
511  *   flag for requesting the list of folders available for
512  *   subscription. Used in Exchange / IMAP connectors for public
513  *   folder fetching.
514  * @CAMEL_STORE_FOLDER_INFO_REFRESH:
515  *   Treat this call as a request to refresh the folder summary;
516  *   for remote accounts it can be to re-fetch fresh folder
517  *   content from the server and update the local cache.
518  **/
519 typedef enum { /*< flags >*/
520 	CAMEL_STORE_FOLDER_INFO_FAST = 1 << 0,
521 	CAMEL_STORE_FOLDER_INFO_RECURSIVE = 1 << 1,
522 	CAMEL_STORE_FOLDER_INFO_SUBSCRIBED = 1 << 2,
523 	CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL = 1 << 3,
524 	CAMEL_STORE_FOLDER_INFO_SUBSCRIPTION_LIST = 1 << 4,
525 	CAMEL_STORE_FOLDER_INFO_REFRESH = 1 << 5
526 } CamelStoreGetFolderInfoFlags;
527 
528 typedef enum { /*< flags >*/
529 	CAMEL_STORE_READ = 1 << 0,
530 	CAMEL_STORE_WRITE = 1 << 1
531 } CamelStorePermissionFlags;
532 
533 /* Note: If you change this, make sure you change the
534  *       'encodings' array in camel-mime-part.c. */
535 typedef enum {
536 	CAMEL_TRANSFER_ENCODING_DEFAULT,
537 	CAMEL_TRANSFER_ENCODING_7BIT,
538 	CAMEL_TRANSFER_ENCODING_8BIT,
539 	CAMEL_TRANSFER_ENCODING_BASE64,
540 	CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE,
541 	CAMEL_TRANSFER_ENCODING_BINARY,
542 	CAMEL_TRANSFER_ENCODING_UUENCODE,
543 	CAMEL_TRANSFER_NUM_ENCODINGS
544 } CamelTransferEncoding;
545 
546 /**
547  * CamelThreeState:
548  * @CAMEL_THREE_STATE_OFF: the three-state value is Off
549  * @CAMEL_THREE_STATE_ON: the three-state value is On
550  * @CAMEL_THREE_STATE_INCONSISTENT: the three-state value is neither On, nor Off
551  *
552  * Describes a three-state value, which can be either Off, On or Inconsistent.
553  *
554  * Since: 3.22
555  **/
556 typedef enum {
557 	CAMEL_THREE_STATE_OFF = 0,
558 	CAMEL_THREE_STATE_ON,
559 	CAMEL_THREE_STATE_INCONSISTENT
560 } CamelThreeState;
561 
562 /**
563  * CamelCompareType:
564  * @CAMEL_COMPARE_CASE_INSENSITIVE: compare case insensitively
565  * @CAMEL_COMPARE_CASE_SENSITIVE: compare case sensitively
566  *
567  * Declares the compare type to use.
568  *
569  * Since: 3.24
570  **/
571 typedef enum {
572 	CAMEL_COMPARE_CASE_INSENSITIVE,
573 	CAMEL_COMPARE_CASE_SENSITIVE
574 } CamelCompareType;
575 
576 /**
577  * CamelTimeUnit:
578  * @CAMEL_TIME_UNIT_DAYS: days
579  * @CAMEL_TIME_UNIT_WEEKS: weeks
580  * @CAMEL_TIME_UNIT_MONTHS: months
581  * @CAMEL_TIME_UNIT_YEARS: years
582  *
583  * Declares time unit, which serves to interpret the time value,
584  * like in #CamelOfflineSettings.
585  *
586  * Since: 3.24
587  **/
588 typedef enum {
589 	CAMEL_TIME_UNIT_DAYS = 1,
590 	CAMEL_TIME_UNIT_WEEKS,
591 	CAMEL_TIME_UNIT_MONTHS,
592 	CAMEL_TIME_UNIT_YEARS
593 } CamelTimeUnit;
594 
595 #endif /* CAMEL_ENUMS_H */
596