support image/x-eps format via pdf_viewer
[claws.git] / src / etpan / imap-thread.h
blob4518ba98944777f83d77a18f32b6bfb70c48ed11
1 /*
2 * Claws Mail -- a GTK based, lightweight, and fast e-mail client
3 * Copyright (C) 2005-2023 the Claws Mail team and DINH Viet Hoa
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/>.
20 #ifndef IMAP_THREAD_H
22 #define IMAP_THREAD_H
24 #include <libetpan/libetpan.h>
25 #include "folder.h"
27 typedef enum
29 IMAP_FLAG_SEEN = 1 << 0,
30 IMAP_FLAG_ANSWERED = 1 << 1,
31 IMAP_FLAG_FLAGGED = 1 << 2,
32 IMAP_FLAG_DELETED = 1 << 3,
33 IMAP_FLAG_DRAFT = 1 << 4,
34 IMAP_FLAG_FORWARDED = 1 << 5,
35 IMAP_FLAG_SPAM = 1 << 6,
36 IMAP_FLAG_HAM = 1 << 7
37 } IMAPFlags;
39 void imap_main_set_timeout(int sec);
40 void imap_main_init(gboolean skip_ssl_cert_check);
41 void imap_main_done(gboolean have_connectivity);
43 void imap_init(Folder * folder);
44 void imap_done(Folder * folder);
46 int imap_threaded_connect(Folder * folder, const char * server, int port, ProxyInfo *proxy_info);
47 int imap_threaded_connect_ssl(Folder * folder, const char * server, int port, ProxyInfo *proxy_info);
48 int imap_threaded_capability(Folder *folder, struct mailimap_capability_data ** caps);
50 #ifndef G_OS_WIN32
51 int imap_threaded_connect_cmd(Folder * folder, const char * command,
52 const char * server, int port);
53 #endif
54 void imap_threaded_disconnect(Folder * folder);
56 int imap_threaded_list(Folder * folder, const char * base,
57 const char * wildcard,
58 clist ** p_result);
59 int imap_threaded_lsub(Folder * folder, const char * base,
60 const char * wildcard,
61 clist ** p_result);
62 int imap_threaded_login(Folder * folder,
63 const char * login, const char * password,
64 const char * type);
65 int imap_threaded_status(Folder * folder, const char * mb,
66 struct mailimap_mailbox_data_status ** data_status,
67 guint mask);
68 int imap_threaded_close(Folder * folder);
70 int imap_threaded_noop(Folder * folder, unsigned int * p_exists,
71 unsigned int *p_recent,
72 unsigned int *p_expunge,
73 unsigned int *p_unseen,
74 unsigned int *p_uidnext,
75 unsigned int *p_uidval);
76 int imap_threaded_starttls(Folder * folder, const gchar *host, int port);
77 int imap_threaded_create(Folder * folder, const char * mb);
78 int imap_threaded_rename(Folder * folder,
79 const char * mb, const char * new_name);
80 int imap_threaded_delete(Folder * folder, const char * mb);
81 int imap_threaded_select(Folder * folder, const char * mb,
82 gint * exists, gint * recent, gint * unseen,
83 guint32 * uid_validity, gint * can_create_flags,
84 GSList **ok_flags);
85 int imap_threaded_examine(Folder * folder, const char * mb,
86 gint * exists, gint * recent, gint * unseen,
87 guint32 * uid_validity);
88 int imap_threaded_subscribe(Folder * folder, const char * mb,
89 gboolean subscribe);
91 enum {
92 IMAP_SEARCH_TYPE_SIMPLE,
93 IMAP_SEARCH_TYPE_SEEN,
94 IMAP_SEARCH_TYPE_UNSEEN,
95 IMAP_SEARCH_TYPE_ANSWERED,
96 IMAP_SEARCH_TYPE_FLAGGED,
97 IMAP_SEARCH_TYPE_DELETED,
98 IMAP_SEARCH_TYPE_FORWARDED,
99 IMAP_SEARCH_TYPE_SPAM,
101 IMAP_SEARCH_TYPE_KEYED,
104 typedef struct mailimap_search_key IMAPSearchKey;
106 enum {
107 IMAP_SEARCH_CRITERIA_ALL,
108 IMAP_SEARCH_CRITERIA_READ,
109 IMAP_SEARCH_CRITERIA_UNREAD,
110 IMAP_SEARCH_CRITERIA_NEW,
111 IMAP_SEARCH_CRITERIA_MARKED,
112 IMAP_SEARCH_CRITERIA_DELETED,
113 IMAP_SEARCH_CRITERIA_REPLIED,
114 IMAP_SEARCH_CRITERIA_TAG,
115 IMAP_SEARCH_CRITERIA_SUBJECT,
116 IMAP_SEARCH_CRITERIA_FROM,
117 IMAP_SEARCH_CRITERIA_TO,
118 IMAP_SEARCH_CRITERIA_CC,
119 IMAP_SEARCH_CRITERIA_AGE_GREATER,
120 IMAP_SEARCH_CRITERIA_AGE_LOWER,
121 IMAP_SEARCH_CRITERIA_BODY,
122 IMAP_SEARCH_CRITERIA_MESSAGE,
123 IMAP_SEARCH_CRITERIA_HEADER,
124 IMAP_SEARCH_CRITERIA_SIZE_GREATER,
125 IMAP_SEARCH_CRITERIA_SIZE_SMALLER,
128 IMAPSearchKey* imap_search_new(gint criteria,
129 const gchar *header,
130 const gchar *expr,
131 int value);
132 IMAPSearchKey* imap_search_not(IMAPSearchKey* key);
133 IMAPSearchKey* imap_search_or(IMAPSearchKey* l, IMAPSearchKey* r);
134 IMAPSearchKey* imap_search_and(IMAPSearchKey* l, IMAPSearchKey* r);
135 void imap_search_free(IMAPSearchKey* search);
137 int imap_threaded_search(Folder * folder, int search_type, IMAPSearchKey* key,
138 const char *charset, struct mailimap_set * set, clist ** result);
140 int imap_threaded_fetch_uid(Folder * folder, uint32_t first_index,
141 carray ** result);
143 void imap_fetch_uid_list_free(carray * uid_list);
145 int imap_threaded_fetch_uid_flags(Folder * folder, uint32_t first_index,
146 carray ** fetch_result);
148 void imap_fetch_uid_flags_list_free(carray * uid_flags_list);
150 int imap_threaded_fetch_content(Folder * folder, uint32_t msg_index,
151 int with_body,
152 const char * filename);
154 struct imap_fetch_env_info {
155 uint32_t uid;
156 char * headers;
157 uint32_t size;
158 int flags;
161 int imap_threaded_fetch_env(Folder * folder, struct mailimap_set * set,
162 carray ** p_env_list);
164 void imap_fetch_env_free(carray * env_list);
166 int imap_threaded_append(Folder * folder, const char * mailbox,
167 const char * filename,
168 struct mailimap_flag_list * flag_list,
169 int *uid);
171 int imap_threaded_expunge(Folder * folder);
173 int imap_threaded_copy(Folder * folder, struct mailimap_set * set,
174 const char * mb, struct mailimap_set **source,
175 struct mailimap_set **dest);
177 int imap_threaded_store(Folder * folder, struct mailimap_set * set,
178 struct mailimap_store_att_flags * store_att_flags);
180 void imap_threaded_cancel(Folder * folder);
182 #endif