/*
* camel-enums.h
*
* This library is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library. If not, see .
*
*/
#if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION)
#error "Only can be included directly."
#endif
#ifndef CAMEL_ENUMS_H
#define CAMEL_ENUMS_H
/**
* CamelAuthenticationResult:
* @CAMEL_AUTHENTICATION_ERROR:
* An error occurred while authenticating.
* @CAMEL_AUTHENTICATION_ACCEPTED:
* Server accepted our authentication attempt.
* @CAMEL_AUTHENTICATION_REJECTED:
* Server rejected our authentication attempt.
*
* Authentication result codes used by #CamelService.
*
* Since: 3.4
**/
typedef enum {
CAMEL_AUTHENTICATION_ERROR,
CAMEL_AUTHENTICATION_ACCEPTED,
CAMEL_AUTHENTICATION_REJECTED
} CamelAuthenticationResult;
typedef enum { /*< flags >*/
CAMEL_FOLDER_HAS_SUMMARY_CAPABILITY = 1 << 0,
CAMEL_FOLDER_FILTER_RECENT = 1 << 2,
CAMEL_FOLDER_HAS_BEEN_DELETED = 1 << 3,
CAMEL_FOLDER_IS_TRASH = 1 << 4,
CAMEL_FOLDER_IS_JUNK = 1 << 5,
CAMEL_FOLDER_FILTER_JUNK = 1 << 6
} CamelFolderFlags;
#define CAMEL_FOLDER_TYPE_BIT (10)
/**
* CamelFolderInfoFlags:
* @CAMEL_FOLDER_NOSELECT:
* The folder cannot contain messages.
* @CAMEL_FOLDER_NOINFERIORS:
* The folder cannot have child folders.
* @CAMEL_FOLDER_CHILDREN:
* The folder has children (not yet fully implemented).
* @CAMEL_FOLDER_NOCHILDREN:
* The folder does not have children (not yet fully implemented).
* @CAMEL_FOLDER_SUBSCRIBED:
* The folder is subscribed.
* @CAMEL_FOLDER_VIRTUAL:
* The folder is virtual. Messages cannot be copied or moved to
* virtual folders since they are only queries of other folders.
* @CAMEL_FOLDER_SYSTEM:
* The folder is a built-in "system" folder. System folders
* cannot be renamed or deleted.
* @CAMEL_FOLDER_VTRASH:
* The folder is a virtual trash folder. It cannot be copied to,
* and can only be moved to if in an existing folder.
* @CAMEL_FOLDER_SHARED_TO_ME:
* A folder being shared by someone else.
* @CAMEL_FOLDER_SHARED_BY_ME:
* A folder being shared by the user.
* @CAMEL_FOLDER_TYPE_NORMAL:
* The folder is a normal folder.
* @CAMEL_FOLDER_TYPE_INBOX:
* The folder is an inbox folder.
* @CAMEL_FOLDER_TYPE_OUTBOX:
* The folder is an outbox folder.
* @CAMEL_FOLDER_TYPE_TRASH:
* The folder shows deleted messages.
* @CAMEL_FOLDER_TYPE_JUNK:
* The folder shows junk messages.
* @CAMEL_FOLDER_TYPE_SENT:
* The folder shows sent messages.
* @CAMEL_FOLDER_TYPE_CONTACTS:
* The folder contains contacts, instead of mail messages.
* @CAMEL_FOLDER_TYPE_EVENTS:
* The folder contains calendar events, instead of mail messages.
* @CAMEL_FOLDER_TYPE_MEMOS:
* The folder contains memos, instead of mail messages.
* @CAMEL_FOLDER_TYPE_TASKS:
* The folder contains tasks, instead of mail messages.
*
* These flags are abstractions. It's up to the CamelProvider to give
* them suitable interpretations. Use #CAMEL_FOLDER_TYPE_MASK to isolate
* the folder's type.
**/
/* WARNING: This enum and CamelStoreInfoFlags must stay in sync.
* FIXME: Eliminate the need for two separate types. */
typedef enum { /*< flags >*/
CAMEL_FOLDER_NOSELECT = 1 << 0,
CAMEL_FOLDER_NOINFERIORS = 1 << 1,
CAMEL_FOLDER_CHILDREN = 1 << 2,
CAMEL_FOLDER_NOCHILDREN = 1 << 3,
CAMEL_FOLDER_SUBSCRIBED = 1 << 4,
CAMEL_FOLDER_VIRTUAL = 1 << 5,
CAMEL_FOLDER_SYSTEM = 1 << 6,
CAMEL_FOLDER_VTRASH = 1 << 7,
CAMEL_FOLDER_SHARED_TO_ME = 1 << 8,
CAMEL_FOLDER_SHARED_BY_ME = 1 << 9,
CAMEL_FOLDER_TYPE_NORMAL = 0 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_INBOX = 1 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_OUTBOX = 2 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_TRASH = 3 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_JUNK = 4 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_SENT = 5 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_CONTACTS = 6 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_EVENTS = 7 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_MEMOS = 8 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_TYPE_TASKS = 9 << CAMEL_FOLDER_TYPE_BIT,
CAMEL_FOLDER_READONLY = 1 << 16,
/* empty gap from unused flag removal */
CAMEL_FOLDER_FLAGGED = 1 << 18,
CAMEL_FOLDER_FLAGS_LAST = 1 << 24 /*< skip >*/
} CamelFolderInfoFlags;
#define CAMEL_FOLDER_TYPE_MASK (63 << CAMEL_FOLDER_TYPE_BIT)
/* Note: The HTML elements are escaped in the doc comment intentionally,
* to have them shown as expected in generated documentation. */
/**
* CamelMimeFilterToHTMLFlags:
* @CAMEL_MIME_FILTER_TOHTML_PRE:
* Enclose the content in <pre> ... </pre> tags.
* @CAMEL_MIME_FILTER_TOHTML_CONVERT_NL:
* Convert newline characters to <br> tags.
* @CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES:
* Convert space and tab characters to a non-breaking space ( ).
* @CAMEL_MIME_FILTER_TOHTML_CONVERT_URLS:
* Convert recognized URLs to <a href="foo">foo</a>.
* @CAMEL_MIME_FILTER_TOHTML_MARK_CITATION:
* Color quoted lines (lines beginning with '>').
* @CAMEL_MIME_FILTER_TOHTML_CONVERT_ADDRESSES:
* Convert mailto: URLs to <a href="mailto:foo">mailto:foo</a>.
* @CAMEL_MIME_FILTER_TOHTML_ESCAPE_8BIT:
* Convert 8-bit characters to escaped hexdecimal (&#nnn;).
* @CAMEL_MIME_FILTER_TOHTML_CITE:
* Prefix each line with "> ".
* @CAMEL_MIME_FILTER_TOHTML_PRESERVE_8BIT:
* This flag is not used by #CamelMimeFilterToHTML.
* @CAMEL_MIME_FILTER_TOHTML_FORMAT_FLOWED:
* This flag is not used by #CamelMimeFilterToHTML.
* @CAMEL_MIME_FILTER_TOHTML_QUOTE_CITATION:
* Group lines beginning with one or more '>' characters in
* <blockquote type="cite"> ... </blockquote> tags. The tags
* are nested according to the number of '>' characters.
*
* Flags for converting text/plain content into text/html.
**/
typedef enum { /*< flags >*/
CAMEL_MIME_FILTER_TOHTML_PRE = 1 << 0,
CAMEL_MIME_FILTER_TOHTML_CONVERT_NL = 1 << 1,
CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES = 1 << 2,
CAMEL_MIME_FILTER_TOHTML_CONVERT_URLS = 1 << 3,
CAMEL_MIME_FILTER_TOHTML_MARK_CITATION = 1 << 4,
CAMEL_MIME_FILTER_TOHTML_CONVERT_ADDRESSES = 1 << 5,
CAMEL_MIME_FILTER_TOHTML_ESCAPE_8BIT = 1 << 6,
CAMEL_MIME_FILTER_TOHTML_CITE = 1 << 7,
CAMEL_MIME_FILTER_TOHTML_PRESERVE_8BIT = 1 << 8,
CAMEL_MIME_FILTER_TOHTML_FORMAT_FLOWED = 1 << 9,
CAMEL_MIME_FILTER_TOHTML_QUOTE_CITATION = 1 << 10
} CamelMimeFilterToHTMLFlags;
/* WARNING: This enum and CamelFolderInfoFlags must stay in sync.
* FIXME: Eliminate the need for two separate types. */
typedef enum { /*< flags >*/
CAMEL_STORE_INFO_FOLDER_NOSELECT = 1 << 0,
CAMEL_STORE_INFO_FOLDER_NOINFERIORS = 1 << 1,
CAMEL_STORE_INFO_FOLDER_CHILDREN = 1 << 2,
CAMEL_STORE_INFO_FOLDER_NOCHILDREN = 1 << 3,
CAMEL_STORE_INFO_FOLDER_SUBSCRIBED = 1 << 4,
CAMEL_STORE_INFO_FOLDER_VIRTUAL = 1 << 5,
CAMEL_STORE_INFO_FOLDER_SYSTEM = 1 << 6,
CAMEL_STORE_INFO_FOLDER_VTRASH = 1 << 7,
CAMEL_STORE_INFO_FOLDER_SHARED_TO_ME = 1 << 8,
CAMEL_STORE_INFO_FOLDER_SHARED_BY_ME = 1 << 9,
CAMEL_STORE_INFO_FOLDER_READONLY = 1 << 16,
/* empty gap from unused flag removal */
CAMEL_STORE_INFO_FOLDER_FLAGGED = 1 << 18,
CAMEL_STORE_INFO_FOLDER_LAST = 1 << 24 /*< skip >*/
} CamelStoreInfoFlags;
/**
* CamelFetchHeadersType:
* @CAMEL_FETCH_HEADERS_BASIC:
* Fetch only basic headers (Date, From, To, Subject, etc.).
* @CAMEL_FETCH_HEADERS_BASIC_AND_MAILING_LIST:
* Fetch all basic headers and mailing list headers.
* @CAMEL_FETCH_HEADERS_ALL:
* Fetch all available message headers.
*
* Describes what headers to fetch when downloading message summaries.
*
* Since: 3.2
**/
typedef enum {
CAMEL_FETCH_HEADERS_BASIC,
CAMEL_FETCH_HEADERS_BASIC_AND_MAILING_LIST,
CAMEL_FETCH_HEADERS_ALL
} CamelFetchHeadersType;
/**
* CamelJunkStatus:
* @CAMEL_JUNK_STATUS_ERROR:
* An error occurred while invoking the junk filter.
* @CAMEL_JUNK_STATUS_INCONCLUSIVE:
* The junk filter could not determine whether the message is junk.
* @CAMEL_JUNK_STATUS_MESSAGE_IS_JUNK:
* The junk filter believes the message is junk.
* @CAMEL_JUNK_STATUS_MESSAGE_IS_NOT_JUNK:
* The junk filter believes the message is not junk.
*
* These are result codes used when passing messages through a junk filter.
**/
typedef enum {
CAMEL_JUNK_STATUS_ERROR,
CAMEL_JUNK_STATUS_INCONCLUSIVE,
CAMEL_JUNK_STATUS_MESSAGE_IS_JUNK,
CAMEL_JUNK_STATUS_MESSAGE_IS_NOT_JUNK
} CamelJunkStatus;
typedef enum {
CAMEL_MIME_FILTER_BASIC_INVALID,
CAMEL_MIME_FILTER_BASIC_BASE64_ENC,
CAMEL_MIME_FILTER_BASIC_BASE64_DEC,
CAMEL_MIME_FILTER_BASIC_QP_ENC,
CAMEL_MIME_FILTER_BASIC_QP_DEC,
CAMEL_MIME_FILTER_BASIC_UU_ENC,
CAMEL_MIME_FILTER_BASIC_UU_DEC
} CamelMimeFilterBasicType;
typedef enum {
CAMEL_MIME_FILTER_CRLF_ENCODE,
CAMEL_MIME_FILTER_CRLF_DECODE
} CamelMimeFilterCRLFDirection;
typedef enum {
CAMEL_MIME_FILTER_CRLF_MODE_CRLF_DOTS,
CAMEL_MIME_FILTER_CRLF_MODE_CRLF_ONLY
} CamelMimeFilterCRLFMode;
typedef enum {
CAMEL_MIME_FILTER_GZIP_MODE_ZIP,
CAMEL_MIME_FILTER_GZIP_MODE_UNZIP
} CamelMimeFilterGZipMode;
typedef enum {
CAMEL_MIME_FILTER_YENC_DIRECTION_ENCODE,
CAMEL_MIME_FILTER_YENC_DIRECTION_DECODE
} CamelMimeFilterYencDirection;
/**
* CamelNetworkSecurityMethod:
* @CAMEL_NETWORK_SECURITY_METHOD_NONE:
* Use an unencrypted network connection.
* @CAMEL_NETWORK_SECURITY_METHOD_SSL_ON_ALTERNATE_PORT:
* Use SSL by connecting to an alternate port number.
* @CAMEL_NETWORK_SECURITY_METHOD_STARTTLS_ON_STANDARD_PORT:
* Use SSL or TLS by connecting to the standard port and invoking
* STARTTLS before authenticating. This is the recommended method.
*
* Methods for establishing an encrypted (or unencrypted) network connection.
*
* Since: 3.2
**/
typedef enum {
CAMEL_NETWORK_SECURITY_METHOD_NONE,
CAMEL_NETWORK_SECURITY_METHOD_SSL_ON_ALTERNATE_PORT,
CAMEL_NETWORK_SECURITY_METHOD_STARTTLS_ON_STANDARD_PORT
} CamelNetworkSecurityMethod;
typedef enum {
CAMEL_PROVIDER_CONF_END,
CAMEL_PROVIDER_CONF_SECTION_START,
CAMEL_PROVIDER_CONF_SECTION_END,
CAMEL_PROVIDER_CONF_CHECKBOX,
CAMEL_PROVIDER_CONF_CHECKSPIN,
CAMEL_PROVIDER_CONF_ENTRY,
CAMEL_PROVIDER_CONF_LABEL,
CAMEL_PROVIDER_CONF_HIDDEN,
CAMEL_PROVIDER_CONF_OPTIONS
} CamelProviderConfType;
/**
* CamelProviderFlags:
* @CAMEL_PROVIDER_IS_REMOTE:
* Provider works with remote data.
* @CAMEL_PROVIDER_IS_LOCAL:
* Provider can be used as a backend for local folder tree folders.
* (Not just the opposite of #CAMEL_PROVIDER_IS_REMOTE.)
* @CAMEL_PROVIDER_IS_SOURCE:
* Mail arrives there, so it should be offered as an option in the
* mail config dialog.
* @CAMEL_PROVIDER_IS_STORAGE:
* Mail is stored there. It will appear in the folder tree.
* @CAMEL_PROVIDER_IS_EXTERNAL:
* Provider appears in the folder tree but is not created by the
* mail component.
* @CAMEL_PROVIDER_HAS_LICENSE:
* Provider configuration first needs the license to be accepted.
* (No longer used.)
* @CAMEL_PROVIDER_ALLOW_REAL_TRASH_FOLDER:
* Provider may use a real trash folder instead of a virtual folder.
* @CAMEL_PROVIDER_ALLOW_REAL_JUNK_FOLDER:
* Provider may use a real junk folder instead of a virtual folder.
* @CAMEL_PROVIDER_SUPPORTS_MOBILE_DEVICES:
* Download limited set of emails instead of operating on full cache.
* @CAMEL_PROVIDER_SUPPORTS_BATCH_FETCH:
* Support to fetch messages in batch.
* @CAMEL_PROVIDER_SUPPORTS_PURGE_MESSAGE_CACHE:
* Support to remove oldest downloaded messages to conserve space.
*
**/
typedef enum { /*< flags >*/
CAMEL_PROVIDER_IS_REMOTE = 1 << 0,
CAMEL_PROVIDER_IS_LOCAL = 1 << 1,
CAMEL_PROVIDER_IS_EXTERNAL = 1 << 2,
CAMEL_PROVIDER_IS_SOURCE = 1 << 3,
CAMEL_PROVIDER_IS_STORAGE = 1 << 4,
CAMEL_PROVIDER_SUPPORTS_SSL = 1 << 5,
CAMEL_PROVIDER_HAS_LICENSE = 1 << 6,
CAMEL_PROVIDER_DISABLE_SENT_FOLDER = 1 << 7,
CAMEL_PROVIDER_ALLOW_REAL_TRASH_FOLDER = 1 << 8,
CAMEL_PROVIDER_ALLOW_REAL_JUNK_FOLDER = 1 << 9,
CAMEL_PROVIDER_SUPPORTS_MOBILE_DEVICES = 1 << 10,
CAMEL_PROVIDER_SUPPORTS_BATCH_FETCH = 1 << 11,
CAMEL_PROVIDER_SUPPORTS_PURGE_MESSAGE_CACHE = 1 << 12
} CamelProviderFlags;
typedef enum {
CAMEL_PROVIDER_STORE,
CAMEL_PROVIDER_TRANSPORT,
CAMEL_NUM_PROVIDER_TYPES /*< skip >*/
} CamelProviderType;
typedef enum {
CAMEL_SASL_ANON_TRACE_EMAIL,
CAMEL_SASL_ANON_TRACE_OPAQUE,
CAMEL_SASL_ANON_TRACE_EMPTY
} CamelSaslAnonTraceType;
/**
* CamelServiceConnectionStatus:
* @CAMEL_SERVICE_DISCONNECTED:
* #CamelService is disconnected from a remote server.
* @CAMEL_SERVICE_CONNECTING:
* #CamelService is connecting to a remote server.
* @CAMEL_SERVICE_CONNECTED:
* #CamelService is connected to a remote server.
* @CAMEL_SERVICE_DISCONNECTING:
* #CamelService is disconnecting from a remote server.
*
* Connection status returned by camel_service_get_connection_status().
*
* Since: 3.6
**/
typedef enum {
CAMEL_SERVICE_DISCONNECTED,
CAMEL_SERVICE_CONNECTING,
CAMEL_SERVICE_CONNECTED,
CAMEL_SERVICE_DISCONNECTING
} CamelServiceConnectionStatus;
typedef enum {
CAMEL_SESSION_ALERT_INFO,
CAMEL_SESSION_ALERT_WARNING,
CAMEL_SESSION_ALERT_ERROR
} CamelSessionAlertType;
/**
* CamelSortType:
* @CAMEL_SORT_ASCENDING:
* Sorting is in ascending order.
* @CAMEL_SORT_DESCENDING:
* Sorting is in descending order.
*
* Determines the direction of a sort.
*
* Since: 3.2
**/
typedef enum {
CAMEL_SORT_ASCENDING,
CAMEL_SORT_DESCENDING
} CamelSortType;
typedef enum { /*< flags >*/
CAMEL_STORE_VTRASH = 1 << 0,
CAMEL_STORE_VJUNK = 1 << 1,
CAMEL_STORE_PROXY = 1 << 2,
CAMEL_STORE_IS_MIGRATING = 1 << 3,
CAMEL_STORE_REAL_JUNK_FOLDER = 1 << 4,
CAMEL_STORE_CAN_EDIT_FOLDERS = 1 << 5,
CAMEL_STORE_USE_CACHE_DIR = 1 << 6,
CAMEL_STORE_CAN_DELETE_FOLDERS_AT_ONCE = 1 << 7
} CamelStoreFlags;
/**
* CamelStoreGetFolderInfoFlags:
* @CAMEL_STORE_FOLDER_INFO_FAST:
* @CAMEL_STORE_FOLDER_INFO_RECURSIVE:
* @CAMEL_STORE_FOLDER_INFO_SUBSCRIBED:
* @CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL:
* Do not include virtual trash or junk folders.
* @CAMEL_STORE_FOLDER_INFO_SUBSCRIPTION_LIST:
* Fetch only the subscription list. Clients should use this
* flag for requesting the list of folders available for
* subscription. Used in Exchange / IMAP connectors for public
* folder fetching.
**/
typedef enum { /*< flags >*/
CAMEL_STORE_FOLDER_INFO_FAST = 1 << 0,
CAMEL_STORE_FOLDER_INFO_RECURSIVE = 1 << 1,
CAMEL_STORE_FOLDER_INFO_SUBSCRIBED = 1 << 2,
CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL = 1 << 3,
CAMEL_STORE_FOLDER_INFO_SUBSCRIPTION_LIST = 1 << 4
} CamelStoreGetFolderInfoFlags;
typedef enum { /*< flags >*/
CAMEL_STORE_READ = 1 << 0,
CAMEL_STORE_WRITE = 1 << 1
} CamelStorePermissionFlags;
/* Note: If you change this, make sure you change the
* 'encodings' array in camel-mime-part.c. */
typedef enum {
CAMEL_TRANSFER_ENCODING_DEFAULT,
CAMEL_TRANSFER_ENCODING_7BIT,
CAMEL_TRANSFER_ENCODING_8BIT,
CAMEL_TRANSFER_ENCODING_BASE64,
CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE,
CAMEL_TRANSFER_ENCODING_BINARY,
CAMEL_TRANSFER_ENCODING_UUENCODE,
CAMEL_TRANSFER_NUM_ENCODINGS
} CamelTransferEncoding;
#endif /* CAMEL_ENUMS_H */