Revision 533 src/prefs_account.c

prefs_account.c (revision 533)
25 25

  
26 26
#include <glib.h>
27 27
#include <glib/gi18n.h>
28
#include <gtk/gtk.h>
29
#include <gdk/gdkkeysyms.h>
30 28
#include <stdio.h>
31 29
#include <sys/types.h>
32 30
#include <sys/stat.h>
......
34 32
#include <stdlib.h>
35 33
#include <ctype.h>
36 34

  
37
#include "main.h"
38 35
#include "prefs.h"
39
#include "prefs_ui.h"
40 36
#include "prefs_account.h"
41 37
#include "prefs_customheader.h"
42 38
#include "prefs_common.h"
43 39
#include "account.h"
44
#include "mainwindow.h"
45
#include "manage_window.h"
46
#include "foldersel.h"
47
#include "inc.h"
48
#include "menu.h"
49
#include "gtkutils.h"
50 40
#include "utils.h"
51
#include "alertpanel.h"
52 41
#include "smtp.h"
53 42
#include "imap.h"
54 43

  
55
static gboolean cancelled;
56

  
57 44
static PrefsAccount tmp_ac_prefs;
58 45

  
59
static PrefsDialog dialog;
60

  
61
static struct Basic {
62
	GtkWidget *acname_entry;
63
	GtkWidget *default_chkbtn;
64

  
65
	GtkWidget *name_entry;
66
	GtkWidget *addr_entry;
67
	GtkWidget *org_entry;
68

  
69
	GtkWidget *serv_frame;
70
	GtkWidget *serv_table;
71
	GtkWidget *protocol_optmenu;
72
	GtkWidget *recvserv_label;
73
	GtkWidget *smtpserv_label;
74
	GtkWidget *nntpserv_label;
75
	GtkWidget *recvserv_entry;
76
	GtkWidget *smtpserv_entry;
77
	GtkWidget *nntpserv_entry;
78
	GtkWidget *nntpauth_chkbtn;
79
	GtkWidget *uid_label;
80
	GtkWidget *pass_label;
81
	GtkWidget *uid_entry;
82
	GtkWidget *pass_entry;
83
} basic;
84

  
85
static struct Receive {
86
	GtkWidget *pop3_frame;
87
	GtkWidget *use_apop_chkbtn;
88
	GtkWidget *rmmail_chkbtn;
89
	GtkWidget *leave_time_entry;
90
	GtkWidget *getall_chkbtn;
91
	GtkWidget *size_limit_chkbtn;
92
	GtkWidget *size_limit_entry;
93
	GtkWidget *filter_on_recv_chkbtn;
94
	GtkWidget *inbox_label;
95
	GtkWidget *inbox_entry;
96
	GtkWidget *inbox_btn;
97

  
98
	GtkWidget *imap_frame;
99
	GtkWidget *imap_auth_type_optmenu;
100

  
101
	GtkWidget *nntp_frame;
102
	GtkWidget *maxarticle_spinbtn;
103
	GtkObject *maxarticle_spinbtn_adj;
104

  
105
	GtkWidget *recvatgetall_chkbtn;
106
} receive;
107

  
108
static struct Send {
109
	GtkWidget *date_chkbtn;
110
	GtkWidget *msgid_chkbtn;
111

  
112
	GtkWidget *customhdr_chkbtn;
113

  
114
	GtkWidget *smtp_auth_chkbtn;
115
	GtkWidget *smtp_auth_type_optmenu;
116
	GtkWidget *smtp_uid_entry;
117
	GtkWidget *smtp_pass_entry;
118
	/* GtkWidget *pop_bfr_smtp_chkbtn; */
119
} p_send;
120

  
121
static struct Compose {
122
	GtkWidget *sigfile_radiobtn;
123
	GtkWidget *sigpath_entry;
124

  
125
	GtkWidget *autocc_chkbtn;
126
	GtkWidget *autocc_entry;
127
	GtkWidget *autobcc_chkbtn;
128
	GtkWidget *autobcc_entry;
129
	GtkWidget *autoreplyto_chkbtn;
130
	GtkWidget *autoreplyto_entry;
131
} compose;
132

  
133
#if USE_GPGME
134
static struct Privacy {
135
	GtkWidget *default_sign_chkbtn;
136
	GtkWidget *default_encrypt_chkbtn;
137
	GtkWidget *encrypt_reply_chkbtn;
138
	GtkWidget *ascii_armored_chkbtn;
139
	GtkWidget *clearsign_chkbtn;
140
	GtkWidget *defaultkey_radiobtn;
141
	GtkWidget *emailkey_radiobtn;
142
	GtkWidget *customkey_radiobtn;
143
	GtkWidget *customkey_entry;
144
} privacy;
145
#endif /* USE_GPGME */
146

  
147
#if USE_SSL
148
static struct SSLPrefs {
149
	GtkWidget *pop_frame;
150
	GtkWidget *pop_nossl_radiobtn;
151
	GtkWidget *pop_ssltunnel_radiobtn;
152
	GtkWidget *pop_starttls_radiobtn;
153

  
154
	GtkWidget *imap_frame;
155
	GtkWidget *imap_nossl_radiobtn;
156
	GtkWidget *imap_ssltunnel_radiobtn;
157
	GtkWidget *imap_starttls_radiobtn;
158

  
159
	GtkWidget *nntp_frame;
160
	GtkWidget *nntp_nossl_radiobtn;
161
	GtkWidget *nntp_ssltunnel_radiobtn;
162

  
163
	GtkWidget *send_frame;
164
	GtkWidget *smtp_nossl_radiobtn;
165
	GtkWidget *smtp_ssltunnel_radiobtn;
166
	GtkWidget *smtp_starttls_radiobtn;
167

  
168
	GtkWidget *use_nonblocking_ssl_chkbtn;
169
} ssl;
170
#endif /* USE_SSL */
171

  
172
static struct Advanced {
173
	GtkWidget *smtpport_chkbtn;
174
	GtkWidget *smtpport_entry;
175
	GtkWidget *popport_hbox;
176
	GtkWidget *popport_chkbtn;
177
	GtkWidget *popport_entry;
178
	GtkWidget *imapport_hbox;
179
	GtkWidget *imapport_chkbtn;
180
	GtkWidget *imapport_entry;
181
	GtkWidget *nntpport_hbox;
182
	GtkWidget *nntpport_chkbtn;
183
	GtkWidget *nntpport_entry;
184
	GtkWidget *domain_chkbtn;
185
	GtkWidget *domain_entry;
186

  
187
	GtkWidget *imap_frame;
188
	GtkWidget *imapdir_entry;
189

  
190
	GtkWidget *sent_folder_chkbtn;
191
	GtkWidget *sent_folder_entry;
192
	GtkWidget *draft_folder_chkbtn;
193
	GtkWidget *draft_folder_entry;
194
	GtkWidget *trash_folder_chkbtn;
195
	GtkWidget *trash_folder_entry;
196
} advanced;
197

  
198
static void prefs_account_protocol_set_data_from_optmenu(PrefParam *pparam);
199
static void prefs_account_protocol_set_optmenu		(PrefParam *pparam);
200
static void prefs_account_protocol_activated		(GtkMenuItem *menuitem);
201

  
202
static void prefs_account_imap_auth_type_set_data_from_optmenu
203
							(PrefParam *pparam);
204
static void prefs_account_imap_auth_type_set_optmenu	(PrefParam *pparam);
205
static void prefs_account_smtp_auth_type_set_data_from_optmenu
206
							(PrefParam *pparam);
207
static void prefs_account_smtp_auth_type_set_optmenu	(PrefParam *pparam);
208

  
209
static void prefs_account_enum_set_data_from_radiobtn	(PrefParam *pparam);
210
static void prefs_account_enum_set_radiobtn		(PrefParam *pparam);
211

  
212
#if USE_GPGME
213
static void prefs_account_ascii_armored_warning		(GtkWidget *widget);
214
#endif /* USE_GPGME */
215

  
216 46
static PrefParam param[] = {
217 47
	/* Basic */
218
	{"account_name", NULL, &tmp_ac_prefs.account_name, P_STRING,
219
	 P_WID(&basic.acname_entry),
220
	 prefs_set_data_from_entry, prefs_set_entry},
48
	{"account_name", NULL, &tmp_ac_prefs.account_name, P_STRING},
49
	{"is_default", "FALSE", &tmp_ac_prefs.is_default, P_BOOL},
50
	{"name", NULL, &tmp_ac_prefs.name, P_STRING},
51
	{"address", NULL, &tmp_ac_prefs.address, P_STRING},
52
	{"organization", NULL, &tmp_ac_prefs.organization, P_STRING},
53
	{"protocol", NULL, &tmp_ac_prefs.protocol, P_ENUM},
54
	{"receive_server", NULL, &tmp_ac_prefs.recv_server, P_STRING},
55
	{"smtp_server", NULL, &tmp_ac_prefs.smtp_server, P_STRING},
56
	{"nntp_server", NULL, &tmp_ac_prefs.nntp_server, P_STRING},
57
	{"use_nntp_auth", "FALSE", &tmp_ac_prefs.use_nntp_auth, P_BOOL},
58
	{"user_id", "ENV_USER", &tmp_ac_prefs.userid, P_STRING},
59
	{"password", NULL, &tmp_ac_prefs.passwd, P_STRING},
60
	{"inbox", "inbox", &tmp_ac_prefs.inbox, P_STRING},
221 61

  
222
	{"is_default", "FALSE", &tmp_ac_prefs.is_default, P_BOOL,
223
	 P_WID(&basic.default_chkbtn),
224
	 prefs_set_data_from_toggle, prefs_set_toggle},
225

  
226
	{"name", NULL, &tmp_ac_prefs.name, P_STRING,
227
	 P_WID(&basic.name_entry), prefs_set_data_from_entry, prefs_set_entry},
228

  
229
	{"address", NULL, &tmp_ac_prefs.address, P_STRING,
230
	 P_WID(&basic.addr_entry), prefs_set_data_from_entry, prefs_set_entry},
231

  
232
	{"organization", NULL, &tmp_ac_prefs.organization, P_STRING,
233
	 P_WID(&basic.org_entry), prefs_set_data_from_entry, prefs_set_entry},
234

  
235
	{"protocol", NULL, &tmp_ac_prefs.protocol, P_ENUM,
236
	 P_WID(&basic.protocol_optmenu),
237
	 prefs_account_protocol_set_data_from_optmenu,
238
	 prefs_account_protocol_set_optmenu},
239

  
240
	{"receive_server", NULL, &tmp_ac_prefs.recv_server, P_STRING,
241
	 P_WID(&basic.recvserv_entry),
242
	 prefs_set_data_from_entry, prefs_set_entry},
243

  
244
	{"smtp_server", NULL, &tmp_ac_prefs.smtp_server, P_STRING,
245
	 P_WID(&basic.smtpserv_entry),
246
	 prefs_set_data_from_entry, prefs_set_entry},
247

  
248
	{"nntp_server", NULL, &tmp_ac_prefs.nntp_server, P_STRING,
249
	 P_WID(&basic.nntpserv_entry),
250
	 prefs_set_data_from_entry, prefs_set_entry},
251

  
252
	{"use_nntp_auth", "FALSE", &tmp_ac_prefs.use_nntp_auth, P_BOOL,
253
	 P_WID(&basic.nntpauth_chkbtn),
254
	 prefs_set_data_from_toggle, prefs_set_toggle},
255

  
256
	{"user_id", "ENV_USER", &tmp_ac_prefs.userid, P_STRING,
257
	 P_WID(&basic.uid_entry), prefs_set_data_from_entry, prefs_set_entry},
258

  
259
	{"password", NULL, &tmp_ac_prefs.passwd, P_STRING,
260
	 P_WID(&basic.pass_entry), prefs_set_data_from_entry, prefs_set_entry},
261

  
262
	{"inbox", "inbox", &tmp_ac_prefs.inbox, P_STRING,
263
	 P_WID(&receive.inbox_entry),
264
	 prefs_set_data_from_entry, prefs_set_entry},
265

  
266 62
	/* Receive */
267
	{"use_apop_auth", "FALSE", &tmp_ac_prefs.use_apop_auth, P_BOOL,
268
	 P_WID(&receive.use_apop_chkbtn),
269
	 prefs_set_data_from_toggle, prefs_set_toggle},
63
	{"use_apop_auth", "FALSE", &tmp_ac_prefs.use_apop_auth, P_BOOL},
64
	{"remove_mail", "TRUE", &tmp_ac_prefs.rmmail, P_BOOL},
65
	{"message_leave_time", "0", &tmp_ac_prefs.msg_leave_time, P_INT},
66
	{"get_all_mail", "FALSE", &tmp_ac_prefs.getall, P_BOOL},
67
	{"enable_size_limit", "FALSE", &tmp_ac_prefs.enable_size_limit, P_BOOL},
68
	{"size_limit", "1024", &tmp_ac_prefs.size_limit, P_INT},
69
	{"filter_on_receive", "TRUE", &tmp_ac_prefs.filter_on_recv, P_BOOL},
70
	{"imap_auth_method", "0", &tmp_ac_prefs.imap_auth_type, P_ENUM},
71
	{"max_nntp_articles", "300", &tmp_ac_prefs.max_nntp_articles, P_INT},
72
	{"receive_at_get_all", "TRUE", &tmp_ac_prefs.recv_at_getall, P_BOOL},
270 73

  
271
	{"remove_mail", "TRUE", &tmp_ac_prefs.rmmail, P_BOOL,
272
	 P_WID(&receive.rmmail_chkbtn),
273
	 prefs_set_data_from_toggle, prefs_set_toggle},
274

  
275
	{"message_leave_time", "0", &tmp_ac_prefs.msg_leave_time, P_INT,
276
	 P_WID(&receive.leave_time_entry),
277
	 prefs_set_data_from_entry, prefs_set_entry},
278

  
279
	{"get_all_mail", "FALSE", &tmp_ac_prefs.getall, P_BOOL,
280
	 P_WID(&receive.getall_chkbtn),
281
	 prefs_set_data_from_toggle, prefs_set_toggle},
282

  
283
	{"enable_size_limit", "FALSE", &tmp_ac_prefs.enable_size_limit, P_BOOL,
284
	 P_WID(&receive.size_limit_chkbtn),
285
	 prefs_set_data_from_toggle, prefs_set_toggle},
286
	{"size_limit", "1024", &tmp_ac_prefs.size_limit, P_INT,
287
	 P_WID(&receive.size_limit_entry),
288
	 prefs_set_data_from_entry, prefs_set_entry},
289

  
290
	{"filter_on_receive", "TRUE", &tmp_ac_prefs.filter_on_recv, P_BOOL,
291
	 P_WID(&receive.filter_on_recv_chkbtn),
292
	 prefs_set_data_from_toggle, prefs_set_toggle},
293

  
294
	{"imap_auth_method", "0", &tmp_ac_prefs.imap_auth_type, P_ENUM,
295
	 P_WID(&receive.imap_auth_type_optmenu),
296
	 prefs_account_imap_auth_type_set_data_from_optmenu,
297
	 prefs_account_imap_auth_type_set_optmenu},
298

  
299
	{"max_nntp_articles", "300", &tmp_ac_prefs.max_nntp_articles, P_INT,
300
	 P_WID(&receive.maxarticle_spinbtn),
301
	 prefs_set_data_from_spinbtn, prefs_set_spinbtn},
302

  
303
	{"receive_at_get_all", "TRUE", &tmp_ac_prefs.recv_at_getall, P_BOOL,
304
	 P_WID(&receive.recvatgetall_chkbtn),
305
	 prefs_set_data_from_toggle, prefs_set_toggle},
306

  
307 74
	/* Send */
308
	{"add_date", "TRUE", &tmp_ac_prefs.add_date, P_BOOL,
309
	 P_WID(&p_send.date_chkbtn),
310
	 prefs_set_data_from_toggle, prefs_set_toggle},
75
	{"add_date", "TRUE", &tmp_ac_prefs.add_date, P_BOOL},
76
	{"generate_msgid", "TRUE", &tmp_ac_prefs.gen_msgid, P_BOOL},
77
	{"add_custom_header", "FALSE", &tmp_ac_prefs.add_customhdr, P_BOOL},
78
	{"use_smtp_auth", "FALSE", &tmp_ac_prefs.use_smtp_auth, P_BOOL},
79
	{"smtp_auth_method", "0", &tmp_ac_prefs.smtp_auth_type, P_ENUM},
80
	{"smtp_user_id", NULL, &tmp_ac_prefs.smtp_userid, P_STRING},
81
	{"smtp_password", NULL, &tmp_ac_prefs.smtp_passwd, P_STRING},
82
	{"pop_before_smtp", "FALSE", &tmp_ac_prefs.pop_before_smtp, P_BOOL},
311 83

  
312
	{"generate_msgid", "TRUE", &tmp_ac_prefs.gen_msgid, P_BOOL,
313
	 P_WID(&p_send.msgid_chkbtn),
314
	 prefs_set_data_from_toggle, prefs_set_toggle},
315

  
316
	{"add_custom_header", "FALSE", &tmp_ac_prefs.add_customhdr, P_BOOL,
317
	 P_WID(&p_send.customhdr_chkbtn),
318
	 prefs_set_data_from_toggle, prefs_set_toggle},
319

  
320
	{"use_smtp_auth", "FALSE", &tmp_ac_prefs.use_smtp_auth, P_BOOL,
321
	 P_WID(&p_send.smtp_auth_chkbtn),
322
	 prefs_set_data_from_toggle, prefs_set_toggle},
323

  
324
	{"smtp_auth_method", "0", &tmp_ac_prefs.smtp_auth_type, P_ENUM,
325
	 P_WID(&p_send.smtp_auth_type_optmenu),
326
	 prefs_account_smtp_auth_type_set_data_from_optmenu,
327
	 prefs_account_smtp_auth_type_set_optmenu},
328

  
329
	{"smtp_user_id", NULL, &tmp_ac_prefs.smtp_userid, P_STRING,
330
	 P_WID(&p_send.smtp_uid_entry),
331
	 prefs_set_data_from_entry, prefs_set_entry},
332
	{"smtp_password", NULL, &tmp_ac_prefs.smtp_passwd, P_STRING,
333
	 P_WID(&p_send.smtp_pass_entry),
334
	 prefs_set_data_from_entry, prefs_set_entry},
335

  
336
	{"pop_before_smtp", "FALSE", &tmp_ac_prefs.pop_before_smtp, P_BOOL,
337
	 NULL, NULL, NULL},
338
#if 0
339
	 P_WID(&p_send.pop_bfr_smtp_chkbtn),
340
	 prefs_set_data_from_toggle, prefs_set_toggle},
341
#endif
342

  
343 84
	/* Compose */
344
	{"signature_type", "0", &tmp_ac_prefs.sig_type, P_ENUM,
345
	 P_WID(&compose.sigfile_radiobtn),
346
	 prefs_account_enum_set_data_from_radiobtn,
347
	 prefs_account_enum_set_radiobtn},
85
	{"signature_type", "0", &tmp_ac_prefs.sig_type, P_ENUM},
348 86
	{"signature_path", "~" G_DIR_SEPARATOR_S DEFAULT_SIGNATURE,
349
	 &tmp_ac_prefs.sig_path, P_STRING,
350
	 P_WID(&compose.sigpath_entry),
351
	 prefs_set_data_from_entry, prefs_set_entry},
87
	 &tmp_ac_prefs.sig_path, P_STRING},
88
	{"set_autocc", "FALSE", &tmp_ac_prefs.set_autocc, P_BOOL},
89
	{"auto_cc", NULL, &tmp_ac_prefs.auto_cc, P_STRING},
90
	{"set_autobcc", "FALSE", &tmp_ac_prefs.set_autobcc, P_BOOL},
91
	{"auto_bcc", NULL, &tmp_ac_prefs.auto_bcc, P_STRING},
92
	{"set_autoreplyto", "FALSE", &tmp_ac_prefs.set_autoreplyto, P_BOOL},
93
	{"auto_replyto", NULL, &tmp_ac_prefs.auto_replyto, P_STRING},
352 94

  
353
	{"set_autocc", "FALSE", &tmp_ac_prefs.set_autocc, P_BOOL,
354
	 P_WID(&compose.autocc_chkbtn),
355
	 prefs_set_data_from_toggle, prefs_set_toggle},
356

  
357
	{"auto_cc", NULL, &tmp_ac_prefs.auto_cc, P_STRING,
358
	 P_WID(&compose.autocc_entry),
359
	 prefs_set_data_from_entry, prefs_set_entry},
360

  
361
	{"set_autobcc", "FALSE", &tmp_ac_prefs.set_autobcc, P_BOOL,
362
	 P_WID(&compose.autobcc_chkbtn),
363
	 prefs_set_data_from_toggle, prefs_set_toggle},
364

  
365
	{"auto_bcc", NULL, &tmp_ac_prefs.auto_bcc, P_STRING,
366
	 P_WID(&compose.autobcc_entry),
367
	 prefs_set_data_from_entry, prefs_set_entry},
368

  
369
	{"set_autoreplyto", "FALSE", &tmp_ac_prefs.set_autoreplyto, P_BOOL,
370
	 P_WID(&compose.autoreplyto_chkbtn),
371
	 prefs_set_data_from_toggle, prefs_set_toggle},
372

  
373
	{"auto_replyto", NULL, &tmp_ac_prefs.auto_replyto, P_STRING,
374
	 P_WID(&compose.autoreplyto_entry),
375
	 prefs_set_data_from_entry, prefs_set_entry},
376

  
377 95
#if USE_GPGME
378 96
	/* Privacy */
379
	{"default_sign", "FALSE", &tmp_ac_prefs.default_sign, P_BOOL,
380
	 P_WID(&privacy.default_sign_chkbtn),
381
	 prefs_set_data_from_toggle, prefs_set_toggle},
382
	{"default_encrypt", "FALSE", &tmp_ac_prefs.default_encrypt, P_BOOL,
383
	 P_WID(&privacy.default_encrypt_chkbtn),
384
	 prefs_set_data_from_toggle, prefs_set_toggle},
385
	{"encrypt_reply", "TRUE", &tmp_ac_prefs.encrypt_reply, P_BOOL,
386
	 P_WID(&privacy.encrypt_reply_chkbtn),
387
	 prefs_set_data_from_toggle, prefs_set_toggle},
388
	{"ascii_armored", "FALSE", &tmp_ac_prefs.ascii_armored, P_BOOL,
389
	 P_WID(&privacy.ascii_armored_chkbtn),
390
	 prefs_set_data_from_toggle, prefs_set_toggle},
391
	{"clearsign", "FALSE", &tmp_ac_prefs.clearsign, P_BOOL,
392
	 P_WID(&privacy.clearsign_chkbtn),
393
	 prefs_set_data_from_toggle, prefs_set_toggle},
394
	{"sign_key", NULL, &tmp_ac_prefs.sign_key, P_ENUM,
395
	 P_WID(&privacy.defaultkey_radiobtn),
396
	 prefs_account_enum_set_data_from_radiobtn,
397
	 prefs_account_enum_set_radiobtn},
398
	{"sign_key_id", NULL, &tmp_ac_prefs.sign_key_id, P_STRING,
399
	 P_WID(&privacy.customkey_entry),
400
	 prefs_set_data_from_entry, prefs_set_entry},
97
	{"default_sign", "FALSE", &tmp_ac_prefs.default_sign, P_BOOL},
98
	{"default_encrypt", "FALSE", &tmp_ac_prefs.default_encrypt, P_BOOL},
99
	{"encrypt_reply", "TRUE", &tmp_ac_prefs.encrypt_reply, P_BOOL},
100
	{"ascii_armored", "FALSE", &tmp_ac_prefs.ascii_armored, P_BOOL},
101
	{"clearsign", "FALSE", &tmp_ac_prefs.clearsign, P_BOOL},
102
	{"sign_key", NULL, &tmp_ac_prefs.sign_key, P_ENUM},
103
	{"sign_key_id", NULL, &tmp_ac_prefs.sign_key_id, P_STRING},
401 104
#endif /* USE_GPGME */
402 105

  
403 106
#if USE_SSL
404 107
	/* SSL */
405
	{"ssl_pop", "0", &tmp_ac_prefs.ssl_pop, P_ENUM,
406
	 P_WID(&ssl.pop_nossl_radiobtn),
407
	 prefs_account_enum_set_data_from_radiobtn,
408
	 prefs_account_enum_set_radiobtn},
409
	{"ssl_imap", "0", &tmp_ac_prefs.ssl_imap, P_ENUM,
410
	 P_WID(&ssl.imap_nossl_radiobtn),
411
	 prefs_account_enum_set_data_from_radiobtn,
412
	 prefs_account_enum_set_radiobtn},
413
	{"ssl_nntp", "0", &tmp_ac_prefs.ssl_nntp, P_ENUM,
414
	 P_WID(&ssl.nntp_nossl_radiobtn),
415
	 prefs_account_enum_set_data_from_radiobtn,
416
	 prefs_account_enum_set_radiobtn},
417
	{"ssl_smtp", "0", &tmp_ac_prefs.ssl_smtp, P_ENUM,
418
	 P_WID(&ssl.smtp_nossl_radiobtn),
419
	 prefs_account_enum_set_data_from_radiobtn,
420
	 prefs_account_enum_set_radiobtn},
421

  
422
	{"use_nonblocking_ssl", "1", &tmp_ac_prefs.use_nonblocking_ssl, P_BOOL,
423
	 P_WID(&ssl.use_nonblocking_ssl_chkbtn),
424
	 prefs_set_data_from_toggle, prefs_set_toggle},
108
	{"ssl_pop", "0", &tmp_ac_prefs.ssl_pop, P_ENUM},
109
	{"ssl_imap", "0", &tmp_ac_prefs.ssl_imap, P_ENUM},
110
	{"ssl_nntp", "0", &tmp_ac_prefs.ssl_nntp, P_ENUM},
111
	{"ssl_smtp", "0", &tmp_ac_prefs.ssl_smtp, P_ENUM},
112
	{"use_nonblocking_ssl", "1", &tmp_ac_prefs.use_nonblocking_ssl, P_BOOL},
425 113
#endif /* USE_SSL */
426 114

  
427 115
	/* Advanced */
428
	{"set_smtpport", "FALSE", &tmp_ac_prefs.set_smtpport, P_BOOL,
429
	 P_WID(&advanced.smtpport_chkbtn),
430
	 prefs_set_data_from_toggle, prefs_set_toggle},
116
	{"set_smtpport", "FALSE", &tmp_ac_prefs.set_smtpport, P_BOOL},
117
	{"smtp_port", "25", &tmp_ac_prefs.smtpport, P_USHORT},
118
	{"set_popport", "FALSE", &tmp_ac_prefs.set_popport, P_BOOL},
119
	{"pop_port", "110", &tmp_ac_prefs.popport, P_USHORT},
120
	{"set_imapport", "FALSE", &tmp_ac_prefs.set_imapport, P_BOOL},
121
	{"imap_port", "143", &tmp_ac_prefs.imapport, P_USHORT},
122
	{"set_nntpport", "FALSE", &tmp_ac_prefs.set_nntpport, P_BOOL},
123
	{"nntp_port", "119", &tmp_ac_prefs.nntpport, P_USHORT},
124
	{"set_domain", "FALSE", &tmp_ac_prefs.set_domain, P_BOOL},
125
	{"domain", NULL, &tmp_ac_prefs.domain, P_STRING},
126
	{"imap_directory", NULL, &tmp_ac_prefs.imap_dir, P_STRING},
127
	{"set_sent_folder", "FALSE", &tmp_ac_prefs.set_sent_folder, P_BOOL},
128
	{"sent_folder", NULL, &tmp_ac_prefs.sent_folder, P_STRING},
129
	{"set_draft_folder", "FALSE", &tmp_ac_prefs.set_draft_folder, P_BOOL},
130
	{"draft_folder", NULL, &tmp_ac_prefs.draft_folder, P_STRING},
131
	{"set_trash_folder", "FALSE", &tmp_ac_prefs.set_trash_folder, P_BOOL},
132
	{"trash_folder", NULL, &tmp_ac_prefs.trash_folder, P_STRING},
431 133

  
432
	{"smtp_port", "25", &tmp_ac_prefs.smtpport, P_USHORT,
433
	 P_WID(&advanced.smtpport_entry),
434
	 prefs_set_data_from_entry, prefs_set_entry},
134
	{NULL, NULL, NULL, P_OTHER}
135
};
435 136

  
436
	{"set_popport", "FALSE", &tmp_ac_prefs.set_popport, P_BOOL,
437
	 P_WID(&advanced.popport_chkbtn),
438
	 prefs_set_data_from_toggle, prefs_set_toggle},
137
static gint prefs_account_get_new_id(void);
439 138

  
440
	{"pop_port", "110", &tmp_ac_prefs.popport, P_USHORT,
441
	 P_WID(&advanced.popport_entry),
442
	 prefs_set_data_from_entry, prefs_set_entry},
443 139

  
444
	{"set_imapport", "FALSE", &tmp_ac_prefs.set_imapport, P_BOOL,
445
	 P_WID(&advanced.imapport_chkbtn),
446
	 prefs_set_data_from_toggle, prefs_set_toggle},
140
PrefsAccount *prefs_account_get_tmp_prefs(void)
141
{
142
	return &tmp_ac_prefs;
143
}
447 144

  
448
	{"imap_port", "143", &tmp_ac_prefs.imapport, P_USHORT,
449
	 P_WID(&advanced.imapport_entry),
450
	 prefs_set_data_from_entry, prefs_set_entry},
145
void prefs_account_set_tmp_prefs(PrefsAccount *ac_prefs)
146
{
147
	tmp_ac_prefs = *ac_prefs;
148
}
451 149

  
452
	{"set_nntpport", "FALSE", &tmp_ac_prefs.set_nntpport, P_BOOL,
453
	 P_WID(&advanced.nntpport_chkbtn),
454
	 prefs_set_data_from_toggle, prefs_set_toggle},
150
void prefs_account_apply_tmp_prefs(PrefsAccount *ac_prefs)
151
{
152
	*ac_prefs = tmp_ac_prefs;
153
}
455 154

  
456
	{"nntp_port", "119", &tmp_ac_prefs.nntpport, P_USHORT,
457
	 P_WID(&advanced.nntpport_entry),
458
	 prefs_set_data_from_entry, prefs_set_entry},
155
PrefParam *prefs_account_get_params(void)
156
{
157
	return param;
158
}
459 159

  
460
	{"set_domain", "FALSE", &tmp_ac_prefs.set_domain, P_BOOL,
461
	 P_WID(&advanced.domain_chkbtn),
462
	 prefs_set_data_from_toggle, prefs_set_toggle},
463

  
464
	{"domain", NULL, &tmp_ac_prefs.domain, P_STRING,
465
	 P_WID(&advanced.domain_entry),
466
	 prefs_set_data_from_entry, prefs_set_entry},
467

  
468
	{"imap_directory", NULL, &tmp_ac_prefs.imap_dir, P_STRING,
469
	 P_WID(&advanced.imapdir_entry),
470
	 prefs_set_data_from_entry, prefs_set_entry},
471

  
472
	{"set_sent_folder", "FALSE", &tmp_ac_prefs.set_sent_folder, P_BOOL,
473
	 P_WID(&advanced.sent_folder_chkbtn),
474
	 prefs_set_data_from_toggle, prefs_set_toggle},
475
	{"sent_folder", NULL, &tmp_ac_prefs.sent_folder, P_STRING,
476
	 P_WID(&advanced.sent_folder_entry),
477
	 prefs_set_data_from_entry, prefs_set_entry},
478

  
479
	{"set_draft_folder", "FALSE", &tmp_ac_prefs.set_draft_folder, P_BOOL,
480
	 P_WID(&advanced.draft_folder_chkbtn),
481
	 prefs_set_data_from_toggle, prefs_set_toggle},
482
	{"draft_folder", NULL, &tmp_ac_prefs.draft_folder, P_STRING,
483
	 P_WID(&advanced.draft_folder_entry),
484
	 prefs_set_data_from_entry, prefs_set_entry},
485

  
486
	{"set_trash_folder", "FALSE", &tmp_ac_prefs.set_trash_folder, P_BOOL,
487
	 P_WID(&advanced.trash_folder_chkbtn),
488
	 prefs_set_data_from_toggle, prefs_set_toggle},
489
	{"trash_folder", NULL, &tmp_ac_prefs.trash_folder, P_STRING,
490
	 P_WID(&advanced.trash_folder_entry),
491
	 prefs_set_data_from_entry, prefs_set_entry},
492

  
493
	{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
494
};
495

  
496
static gint prefs_account_get_new_id		(void);
497

  
498
static void prefs_account_create		(void);
499
static void prefs_account_basic_create		(void);
500
static void prefs_account_receive_create	(void);
501
static void prefs_account_send_create		(void);
502
static void prefs_account_compose_create	(void);
503
#if USE_GPGME
504
static void prefs_account_privacy_create	(void);
505
#endif /* USE_GPGME */
506
#if USE_SSL
507
static void prefs_account_ssl_create		(void);
508
#endif /* USE_SSL */
509
static void prefs_account_advanced_create	(void);
510

  
511
static void prefs_account_select_folder_cb	(GtkWidget	*widget,
512
						 gpointer	 data);
513
static void prefs_account_edit_custom_header	(void);
514

  
515
static gint prefs_account_deleted		(GtkWidget	*widget,
516
						 GdkEventAny	*event,
517
						 gpointer	 data);
518
static gboolean prefs_account_key_pressed	(GtkWidget	*widget,
519
						 GdkEventKey	*event,
520
						 gpointer	 data);
521
static void prefs_account_ok			(void);
522
static gint prefs_account_apply			(void);
523
static void prefs_account_cancel		(void);
524

  
525 160
PrefsAccount *prefs_account_new(void)
526 161
{
527 162
	PrefsAccount *ac_prefs;
......
623 258

  
624 259
	return last_id + 1;
625 260
}
626

  
627
PrefsAccount *prefs_account_open(PrefsAccount *ac_prefs)
628
{
629
	gboolean new_account = FALSE;
630

  
631
	debug_print(_("Opening account preferences window...\n"));
632

  
633
	inc_lock();
634

  
635
	cancelled = FALSE;
636

  
637
	if (!ac_prefs) {
638
		ac_prefs = prefs_account_new();
639
		new_account = TRUE;
640
	}
641

  
642
	if (!dialog.window) {
643
		prefs_account_create();
644
	}
645

  
646
	gtkut_box_set_reverse_order(GTK_BOX(dialog.confirm_area),
647
				    !prefs_common.comply_gnome_hig);
648
	manage_window_set_transient(GTK_WINDOW(dialog.window));
649
	gtk_notebook_set_current_page(GTK_NOTEBOOK(dialog.notebook), 0);
650
	gtk_widget_grab_focus(dialog.ok_btn);
651

  
652
	tmp_ac_prefs = *ac_prefs;
653

  
654
	if (new_account) {
655
		PrefsAccount *def_ac;
656
		gchar *buf;
657

  
658
		prefs_set_dialog_to_default(param);
659
		buf = g_strdup_printf(_("Account%d"), ac_prefs->account_id);
660
		gtk_entry_set_text(GTK_ENTRY(basic.acname_entry), buf);
661
		g_free(buf);
662
		def_ac = account_get_default();
663
		if (def_ac) {
664
			gtk_entry_set_text(GTK_ENTRY(basic.name_entry),
665
					   def_ac->name ? def_ac->name : "");
666
			gtk_entry_set_text(GTK_ENTRY(basic.addr_entry),
667
					   def_ac->address ? def_ac->address : "");
668
			gtk_entry_set_text(GTK_ENTRY(basic.org_entry),
669
					   def_ac->organization ? def_ac->organization : "");
670
		}
671
		menu_set_sensitive_all
672
			(GTK_MENU_SHELL
673
				(gtk_option_menu_get_menu
674
					(GTK_OPTION_MENU
675
						(basic.protocol_optmenu))),
676
			 TRUE);
677
		gtk_window_set_title(GTK_WINDOW(dialog.window),
678
				     _("Preferences for new account"));
679
		gtk_widget_hide(dialog.apply_btn);
680
	} else {
681
		prefs_set_dialog(param);
682
		gtk_window_set_title(GTK_WINDOW(dialog.window),
683
				     _("Account preferences"));
684
		gtk_widget_show(dialog.apply_btn);
685
	}
686

  
687
	gtk_widget_show(dialog.window);
688
	gtk_main();
689
	gtk_widget_hide(dialog.window);
690

  
691
	inc_unlock();
692

  
693
	if (cancelled && new_account) {
694
		g_free(ac_prefs);
695
		return NULL;
696
	} else {
697
		*ac_prefs = tmp_ac_prefs;
698
		return ac_prefs;
699
	}
700
}
701

  
702
static void prefs_account_create(void)
703
{
704
	gint page = 0;
705

  
706
	debug_print(_("Creating account preferences window...\n"));
707

  
708
	/* create dialog */
709
	prefs_dialog_create(&dialog);
710
	g_signal_connect(G_OBJECT(dialog.window), "delete_event",
711
			 G_CALLBACK(prefs_account_deleted), NULL);
712
	g_signal_connect(G_OBJECT(dialog.window), "key_press_event",
713
			 G_CALLBACK(prefs_account_key_pressed), NULL);
714
	MANAGE_WINDOW_SIGNALS_CONNECT(dialog.window);
715

  
716
	g_signal_connect(G_OBJECT(dialog.ok_btn), "clicked",
717
	 		 G_CALLBACK(prefs_account_ok), NULL);
718
	g_signal_connect(G_OBJECT(dialog.apply_btn), "clicked",
719
			 G_CALLBACK(prefs_account_apply), NULL);
720
	g_signal_connect(G_OBJECT(dialog.cancel_btn), "clicked",
721
			 G_CALLBACK(prefs_account_cancel), NULL);
722

  
723
	prefs_account_basic_create();
724
	SET_NOTEBOOK_LABEL(dialog.notebook, _("Basic"), page++);
725
	prefs_account_receive_create();
726
	SET_NOTEBOOK_LABEL(dialog.notebook, _("Receive"), page++);
727
	prefs_account_send_create();
728
	SET_NOTEBOOK_LABEL(dialog.notebook, _("Send"), page++);
729
	prefs_account_compose_create();
730
	SET_NOTEBOOK_LABEL(dialog.notebook, _("Compose"), page++);
731
#if USE_GPGME
732
	prefs_account_privacy_create();
733
	SET_NOTEBOOK_LABEL(dialog.notebook, _("Privacy"), page++);
734
#endif /* USE_GPGME */
735
#if USE_SSL
736
	prefs_account_ssl_create();
737
	SET_NOTEBOOK_LABEL(dialog.notebook, _("SSL"), page++);
738
#endif /* USE_SSL */
739
	prefs_account_advanced_create();
740
	SET_NOTEBOOK_LABEL(dialog.notebook, _("Advanced"), page++);
741
}
742

  
743
#define SET_ACTIVATE(menuitem) \
744
{ \
745
	g_signal_connect(G_OBJECT(menuitem), "activate", \
746
			 G_CALLBACK(prefs_account_protocol_activated), NULL); \
747
}
748

  
749
static void prefs_account_basic_create(void)
750
{
751
	GtkWidget *vbox1;
752
	GtkWidget *hbox;
753
	GtkWidget *label;
754
	GtkWidget *acname_entry;
755
	GtkWidget *default_chkbtn;
756
	GtkWidget *frame1;
757
	GtkWidget *table1;
758
	GtkWidget *name_entry;
759
	GtkWidget *addr_entry;
760
	GtkWidget *org_entry;
761

  
762
	GtkWidget *serv_frame;
763
	GtkWidget *vbox2;
764
	GtkWidget *optmenu;
765
	GtkWidget *optmenu_menu;
766
	GtkWidget *menuitem;
767
	GtkWidget *serv_table;
768
	GtkWidget *recvserv_label;
769
	GtkWidget *smtpserv_label;
770
	GtkWidget *nntpserv_label;
771
	GtkWidget *recvserv_entry;
772
	GtkWidget *smtpserv_entry;
773
	GtkWidget *nntpserv_entry;
774
	GtkWidget *nntpauth_chkbtn;
775
	GtkWidget *uid_label;
776
	GtkWidget *pass_label;
777
	GtkWidget *uid_entry;
778
	GtkWidget *pass_entry;
779

  
780
	vbox1 = gtk_vbox_new (FALSE, VSPACING);
781
	gtk_widget_show (vbox1);
782
	gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
783
	gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
784

  
785
	hbox = gtk_hbox_new (FALSE, 8);
786
	gtk_widget_show (hbox);
787
	gtk_box_pack_start (GTK_BOX (vbox1), hbox, FALSE, FALSE, 0);
788

  
789
	label = gtk_label_new (_("Name of this account"));
790
	gtk_widget_show (label);
791
	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
792

  
793
	acname_entry = gtk_entry_new ();
794
	gtk_widget_show (acname_entry);
795
	gtk_widget_set_size_request (acname_entry, DEFAULT_ENTRY_WIDTH, -1);
796
	gtk_box_pack_start (GTK_BOX (hbox), acname_entry, TRUE, TRUE, 0);
797

  
798
	default_chkbtn = gtk_check_button_new_with_label (_("Set as default"));
799
	gtk_widget_show (default_chkbtn);
800
	gtk_box_pack_end (GTK_BOX (hbox), default_chkbtn, FALSE, FALSE, 0);
801

  
802
	PACK_FRAME (vbox1, frame1, _("Personal information"));
803

  
804
	table1 = gtk_table_new (3, 2, FALSE);
805
	gtk_widget_show (table1);
806
	gtk_container_add (GTK_CONTAINER (frame1), table1);
807
	gtk_container_set_border_width (GTK_CONTAINER (table1), 8);
808
	gtk_table_set_row_spacings (GTK_TABLE (table1), VSPACING_NARROW);
809
	gtk_table_set_col_spacings (GTK_TABLE (table1), 8);
810

  
811
	label = gtk_label_new (_("Full name"));
812
	gtk_widget_show (label);
813
	gtk_table_attach (GTK_TABLE (table1), label, 0, 1, 0, 1,
814
			  GTK_FILL, 0, 0, 0);
815
	gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);
816

  
817
	label = gtk_label_new (_("Mail address"));
818
	gtk_widget_show (label);
819
	gtk_table_attach (GTK_TABLE (table1), label, 0, 1, 1, 2,
820
			  GTK_FILL, 0, 0, 0);
821
	gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);
822

  
823
	label = gtk_label_new (_("Organization"));
824
	gtk_widget_show (label);
825
	gtk_table_attach (GTK_TABLE (table1), label, 0, 1, 2, 3,
826
			  GTK_FILL, 0, 0, 0);
827
	gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);
828

  
829
	name_entry = gtk_entry_new ();
830
	gtk_widget_show (name_entry);
831
	gtk_table_attach (GTK_TABLE (table1), name_entry, 1, 2, 0, 1,
832
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
833
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
834

  
835
	addr_entry = gtk_entry_new ();
836
	gtk_widget_show (addr_entry);
837
	gtk_table_attach (GTK_TABLE (table1), addr_entry, 1, 2, 1, 2,
838
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
839
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
840

  
841
	org_entry = gtk_entry_new ();
842
	gtk_widget_show (org_entry);
843
	gtk_table_attach (GTK_TABLE (table1), org_entry, 1, 2, 2, 3,
844
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
845
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
846

  
847
	PACK_FRAME (vbox1, serv_frame, _("Server information"));
848

  
849
	vbox2 = gtk_vbox_new (FALSE, VSPACING_NARROW);
850
	gtk_widget_show (vbox2);
851
	gtk_container_add (GTK_CONTAINER (serv_frame), vbox2);
852
	gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
853

  
854
	hbox = gtk_hbox_new (FALSE, 8);
855
	gtk_widget_show (hbox);
856
	gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0);
857

  
858
	label = gtk_label_new (_("Protocol"));
859
	gtk_widget_show (label);
860
	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
861

  
862
	optmenu = gtk_option_menu_new ();
863
	gtk_widget_show (optmenu);
864
	gtk_box_pack_start (GTK_BOX (hbox), optmenu, FALSE, FALSE, 0);
865

  
866
	optmenu_menu = gtk_menu_new ();
867

  
868
	MENUITEM_ADD (optmenu_menu, menuitem, _("POP3"),  A_POP3);
869
	SET_ACTIVATE (menuitem);
870
	MENUITEM_ADD (optmenu_menu, menuitem, _("IMAP4"), A_IMAP4);
871
	SET_ACTIVATE (menuitem);
872
	MENUITEM_ADD (optmenu_menu, menuitem, _("News (NNTP)"), A_NNTP);
873
	SET_ACTIVATE (menuitem);
874
	MENUITEM_ADD (optmenu_menu, menuitem, _("None (local)"), A_LOCAL);
875
	SET_ACTIVATE (menuitem);
876

  
877
	gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu), optmenu_menu);
878

  
879
	serv_table = gtk_table_new (6, 4, FALSE);
880
	gtk_widget_show (serv_table);
881
	gtk_box_pack_start (GTK_BOX (vbox2), serv_table, FALSE, FALSE, 0);
882
	gtk_table_set_row_spacings (GTK_TABLE (serv_table), VSPACING_NARROW);
883
	gtk_table_set_row_spacing (GTK_TABLE (serv_table), 3, 0);
884
	gtk_table_set_col_spacings (GTK_TABLE (serv_table), 8);
885

  
886
	nntpauth_chkbtn = gtk_check_button_new_with_label
887
		(_("This server requires authentication"));
888
	gtk_widget_show (nntpauth_chkbtn);
889
	gtk_table_attach (GTK_TABLE (serv_table), nntpauth_chkbtn, 0, 4, 4, 5,
890
			  GTK_FILL, 0, 0, 0);
891

  
892
	nntpserv_entry = gtk_entry_new ();
893
	gtk_widget_show (nntpserv_entry);
894
	gtk_table_attach (GTK_TABLE (serv_table), nntpserv_entry, 1, 4, 0, 1,
895
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
896
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
897
	gtk_table_set_row_spacing (GTK_TABLE (serv_table), 0, 0);
898

  
899
	recvserv_entry = gtk_entry_new ();
900
	gtk_widget_show (recvserv_entry);
901
	gtk_table_attach (GTK_TABLE (serv_table), recvserv_entry, 1, 4, 1, 2,
902
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
903
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
904

  
905
	smtpserv_entry = gtk_entry_new ();
906
	gtk_widget_show (smtpserv_entry);
907
	gtk_table_attach (GTK_TABLE (serv_table), smtpserv_entry, 1, 4, 2, 3,
908
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
909
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
910

  
911
	uid_entry = gtk_entry_new ();
912
	gtk_widget_show (uid_entry);
913
	gtk_widget_set_size_request (uid_entry, DEFAULT_ENTRY_WIDTH, -1);
914
	gtk_table_attach (GTK_TABLE (serv_table), uid_entry, 1, 2, 5, 6,
915
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
916
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
917

  
918
	pass_entry = gtk_entry_new ();
919
	gtk_widget_show (pass_entry);
920
	gtk_widget_set_size_request (pass_entry, DEFAULT_ENTRY_WIDTH, -1);
921
	gtk_table_attach (GTK_TABLE (serv_table), pass_entry, 3, 4, 5, 6,
922
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
923
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
924
	gtk_entry_set_visibility (GTK_ENTRY (pass_entry), FALSE);
925

  
926
	nntpserv_label = gtk_label_new (_("News server"));
927
	gtk_widget_show (nntpserv_label);
928
	gtk_table_attach (GTK_TABLE (serv_table), nntpserv_label, 0, 1, 0, 1,
929
			  GTK_FILL, 0, 0, 0);
930
	gtk_misc_set_alignment (GTK_MISC (nntpserv_label), 1, 0.5);
931

  
932
	recvserv_label = gtk_label_new (_("Server for receiving"));
933
	gtk_widget_show (recvserv_label);
934
	gtk_table_attach (GTK_TABLE (serv_table), recvserv_label, 0, 1, 1, 2,
935
			  GTK_FILL, 0, 0, 0);
936
	gtk_misc_set_alignment (GTK_MISC (recvserv_label), 1, 0.5);
937

  
938
	smtpserv_label = gtk_label_new (_("SMTP server (send)"));
939
	gtk_widget_show (smtpserv_label);
940
	gtk_table_attach (GTK_TABLE (serv_table), smtpserv_label, 0, 1, 2, 3,
941
			  GTK_FILL, 0, 0, 0);
942
	gtk_misc_set_alignment (GTK_MISC (smtpserv_label), 1, 0.5);
943
	gtk_table_set_row_spacing (GTK_TABLE (serv_table), 2, 0);
944

  
945
	uid_label = gtk_label_new (_("User ID"));
946
	gtk_widget_show (uid_label);
947
	gtk_table_attach (GTK_TABLE (serv_table), uid_label, 0, 1, 5, 6,
948
			  GTK_FILL, 0, 0, 0);
949
	gtk_misc_set_alignment (GTK_MISC (uid_label), 1, 0.5);
950

  
951
	pass_label = gtk_label_new (_("Password"));
952
	gtk_widget_show (pass_label);
953
	gtk_table_attach (GTK_TABLE (serv_table), pass_label, 2, 3, 5, 6,
954
			  0, 0, 0, 0);
955

  
956
	SET_TOGGLE_SENSITIVITY (nntpauth_chkbtn, uid_label);
957
	SET_TOGGLE_SENSITIVITY (nntpauth_chkbtn, pass_label);
958
	SET_TOGGLE_SENSITIVITY (nntpauth_chkbtn, uid_entry);
959
	SET_TOGGLE_SENSITIVITY (nntpauth_chkbtn, pass_entry);
960

  
961
	basic.acname_entry   = acname_entry;
962
	basic.default_chkbtn = default_chkbtn;
963

  
964
	basic.name_entry = name_entry;
965
	basic.addr_entry = addr_entry;
966
	basic.org_entry  = org_entry;
967

  
968
	basic.serv_frame       = serv_frame;
969
	basic.serv_table       = serv_table;
970
	basic.protocol_optmenu = optmenu;
971
	basic.recvserv_label   = recvserv_label;
972
	basic.recvserv_entry   = recvserv_entry;
973
	basic.smtpserv_label   = smtpserv_label;
974
	basic.smtpserv_entry   = smtpserv_entry;
975
	basic.nntpserv_label   = nntpserv_label;
976
	basic.nntpserv_entry   = nntpserv_entry;
977
	basic.nntpauth_chkbtn  = nntpauth_chkbtn;
978
	basic.uid_label        = uid_label;
979
	basic.pass_label       = pass_label;
980
	basic.uid_entry        = uid_entry;
981
	basic.pass_entry       = pass_entry;
982
}
983

  
984
static void prefs_account_receive_create(void)
985
{
986
	GtkWidget *vbox1;
987
	GtkWidget *frame1;
988
	GtkWidget *vbox2;
989
	GtkWidget *use_apop_chkbtn;
990
	GtkWidget *rmmail_chkbtn;
991
	GtkWidget *hbox_spc;
992
	GtkWidget *leave_time_label;
993
	GtkWidget *leave_time_entry;
994
	GtkWidget *getall_chkbtn;
995
	GtkWidget *hbox1;
996
	GtkWidget *size_limit_chkbtn;
997
	GtkWidget *size_limit_entry;
998
	GtkWidget *label;
999
	GtkWidget *filter_on_recv_chkbtn;
1000
	GtkWidget *vbox3;
1001
	GtkWidget *inbox_label;
1002
	GtkWidget *inbox_entry;
1003
	GtkWidget *inbox_btn;
1004

  
1005
	GtkWidget *imap_frame;
1006
	GtkWidget *optmenu;
1007
	GtkWidget *optmenu_menu;
1008
	GtkWidget *menuitem;
1009

  
1010
	GtkWidget *nntp_frame;
1011
	GtkWidget *maxarticle_label;
1012
	GtkWidget *maxarticle_spinbtn;
1013
	GtkObject *maxarticle_spinbtn_adj;
1014
	GtkWidget *maxarticle_desc_label;
1015

  
1016
	GtkWidget *recvatgetall_chkbtn;
1017

  
1018
	vbox1 = gtk_vbox_new (FALSE, VSPACING);
1019
	gtk_widget_show (vbox1);
1020
	gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
1021
	gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
1022

  
1023
	PACK_FRAME (vbox1, frame1, _("POP3"));
1024

  
1025
	vbox2 = gtk_vbox_new (FALSE, 0);
1026
	gtk_widget_show (vbox2);
1027
	gtk_container_add (GTK_CONTAINER (frame1), vbox2);
1028
	gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
1029

  
1030
	PACK_CHECK_BUTTON (vbox2, use_apop_chkbtn,
1031
			   _("Use secure authentication (APOP)"));
1032

  
1033
	PACK_CHECK_BUTTON (vbox2, rmmail_chkbtn,
1034
			   _("Remove messages on server when received"));
1035

  
1036
	hbox1 = gtk_hbox_new (FALSE, 8);
1037
	gtk_widget_show (hbox1);
1038
	gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
1039

  
1040
	hbox_spc = gtk_hbox_new (FALSE, 0);
1041
	gtk_widget_show (hbox_spc);
1042
	gtk_box_pack_start (GTK_BOX (hbox1), hbox_spc, FALSE, FALSE, 0);
1043
	gtk_widget_set_size_request (hbox_spc, 12, -1);
1044

  
1045
	leave_time_label = gtk_label_new (_("Remove after"));
1046
	gtk_widget_show (leave_time_label);
1047
	gtk_box_pack_start (GTK_BOX (hbox1), leave_time_label, FALSE, FALSE, 0);
1048

  
1049
	leave_time_entry = gtk_entry_new ();
1050
	gtk_widget_show (leave_time_entry);
1051
	gtk_widget_set_size_request (leave_time_entry, 64, -1);
1052
	gtk_box_pack_start (GTK_BOX (hbox1), leave_time_entry, FALSE, FALSE, 0);
1053

  
1054
	leave_time_label = gtk_label_new (_("days"));
1055
	gtk_widget_show (leave_time_label);
1056
	gtk_box_pack_start (GTK_BOX (hbox1), leave_time_label, FALSE, FALSE, 0);
1057

  
1058
	SET_TOGGLE_SENSITIVITY (rmmail_chkbtn, hbox1);
1059

  
1060
	PACK_VSPACER(vbox2, vbox3, VSPACING_NARROW_2);
1061

  
1062
	hbox1 = gtk_hbox_new (FALSE, 8);
1063
	gtk_widget_show (hbox1);
1064
	gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
1065

  
1066
	hbox_spc = gtk_hbox_new (FALSE, 0);
1067
	gtk_widget_show (hbox_spc);
1068
	gtk_box_pack_start (GTK_BOX (hbox1), hbox_spc, FALSE, FALSE, 0);
1069
	gtk_widget_set_size_request (hbox_spc, 12, -1);
1070

  
1071
	leave_time_label = gtk_label_new (_("(0 days: remove immediately)"));
1072
	gtk_widget_show (leave_time_label);
1073
	gtk_box_pack_start (GTK_BOX (hbox1), leave_time_label, FALSE, FALSE, 0);
1074

  
1075
	SET_TOGGLE_SENSITIVITY (rmmail_chkbtn, hbox1);
1076

  
1077
	PACK_CHECK_BUTTON (vbox2, getall_chkbtn,
1078
			   _("Download all messages on server"));
1079

  
1080
	hbox1 = gtk_hbox_new (FALSE, 8);
1081
	gtk_widget_show (hbox1);
1082
	gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
1083

  
1084
	PACK_CHECK_BUTTON (hbox1, size_limit_chkbtn, _("Receive size limit"));
1085

  
1086
	size_limit_entry = gtk_entry_new ();
1087
	gtk_widget_show (size_limit_entry);
1088
	gtk_widget_set_size_request (size_limit_entry, 64, -1);
1089
	gtk_box_pack_start (GTK_BOX (hbox1), size_limit_entry, FALSE, FALSE, 0);
1090

  
1091
	label = gtk_label_new (_("KB"));
1092
	gtk_widget_show (label);
1093
	gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
1094

  
1095
	SET_TOGGLE_SENSITIVITY (size_limit_chkbtn, size_limit_entry);
1096

  
1097
	PACK_CHECK_BUTTON (vbox2, filter_on_recv_chkbtn,
1098
			   _("Filter messages on receiving"));
1099

  
1100
	PACK_VSPACER(vbox2, vbox3, VSPACING_NARROW_2);
1101

  
1102
	hbox1 = gtk_hbox_new (FALSE, 8);
1103
	gtk_widget_show (hbox1);
1104
	gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
1105

  
1106
	inbox_label = gtk_label_new (_("Default inbox"));
1107
	gtk_widget_show (inbox_label);
1108
	gtk_box_pack_start (GTK_BOX (hbox1), inbox_label, FALSE, FALSE, 0);
1109

  
1110
	inbox_entry = gtk_entry_new ();
1111
	gtk_widget_show (inbox_entry);
1112
	gtk_widget_set_size_request (inbox_entry, DEFAULT_ENTRY_WIDTH, -1);
1113
	gtk_box_pack_start (GTK_BOX (hbox1), inbox_entry, TRUE, TRUE, 0);
1114

  
1115
	inbox_btn = gtk_button_new_with_label (_(" Select... "));
1116
	gtk_widget_show (inbox_btn);
1117
	gtk_box_pack_start (GTK_BOX (hbox1), inbox_btn, FALSE, FALSE, 0);
1118
	g_signal_connect (G_OBJECT (inbox_btn), "clicked",
1119
			  G_CALLBACK (prefs_account_select_folder_cb),
1120
			  inbox_entry);
1121

  
1122
	PACK_VSPACER(vbox2, vbox3, VSPACING_NARROW_2);
1123

  
1124
	PACK_SMALL_LABEL
1125
		(vbox2, label, 
1126
		 _("Unfiltered messages will be stored in this folder."));
1127

  
1128
	PACK_FRAME (vbox1, imap_frame, _("IMAP4"));
1129

  
1130
	vbox2 = gtk_vbox_new (FALSE, 0);
1131
	gtk_widget_show (vbox2);
1132
	gtk_container_add (GTK_CONTAINER (imap_frame), vbox2);
1133
	gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
1134

  
1135
	hbox1 = gtk_hbox_new (FALSE, 8);
1136
	gtk_widget_show (hbox1);
1137
	gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
1138

  
1139
	label = gtk_label_new (_("Authentication method"));
1140
	gtk_widget_show (label);
1141
	gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
1142

  
1143
	optmenu = gtk_option_menu_new ();
1144
	gtk_widget_show (optmenu);
1145
	gtk_box_pack_start (GTK_BOX (hbox1), optmenu, FALSE, FALSE, 0);
1146

  
1147
	optmenu_menu = gtk_menu_new ();
1148

  
1149
	MENUITEM_ADD (optmenu_menu, menuitem, _("Automatic"), 0);
1150
	MENUITEM_ADD (optmenu_menu, menuitem, "LOGIN", IMAP_AUTH_LOGIN);
1151
	MENUITEM_ADD (optmenu_menu, menuitem, "CRAM-MD5", IMAP_AUTH_CRAM_MD5);
1152

  
1153
	gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu), optmenu_menu);
1154

  
1155
	PACK_FRAME (vbox1, nntp_frame, _("News"));
1156

  
1157
	vbox2 = gtk_vbox_new (FALSE, 0);
1158
	gtk_widget_show (vbox2);
1159
	gtk_container_add (GTK_CONTAINER (nntp_frame), vbox2);
1160
	gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
1161

  
1162
	hbox1 = gtk_hbox_new (FALSE, 8);
1163
	gtk_widget_show (hbox1);
1164
	gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
1165

  
1166
	maxarticle_label = gtk_label_new
1167
		(_("Maximum number of articles to download"));
1168
	gtk_widget_show (maxarticle_label);
1169
	gtk_box_pack_start (GTK_BOX (hbox1), maxarticle_label, FALSE, FALSE, 0);
1170
	gtk_label_set_justify (GTK_LABEL (maxarticle_label), GTK_JUSTIFY_LEFT);
1171

  
1172
	maxarticle_spinbtn_adj =
1173
		gtk_adjustment_new (300, 0, 10000, 10, 100, 100);
1174
	maxarticle_spinbtn = gtk_spin_button_new
1175
		(GTK_ADJUSTMENT (maxarticle_spinbtn_adj), 10, 0);
1176
	gtk_widget_show (maxarticle_spinbtn);
1177
	gtk_box_pack_start (GTK_BOX (hbox1), maxarticle_spinbtn,
1178
			    FALSE, FALSE, 0);
1179
	gtk_widget_set_size_request (maxarticle_spinbtn, 64, -1);
1180
	gtk_spin_button_set_numeric
1181
		(GTK_SPIN_BUTTON (maxarticle_spinbtn), TRUE);
1182

  
1183
	PACK_SMALL_LABEL (vbox2, maxarticle_desc_label,
1184
			  _("No limit if 0 is specified."));
1185

  
1186
	PACK_CHECK_BUTTON
1187
		(vbox1, recvatgetall_chkbtn,
1188
		 _("`Get all' checks for new messages on this account"));
1189

  
1190
	receive.pop3_frame            = frame1;
1191
	receive.use_apop_chkbtn       = use_apop_chkbtn;
1192
	receive.rmmail_chkbtn         = rmmail_chkbtn;
1193
	receive.leave_time_entry      = leave_time_entry;
1194
	receive.getall_chkbtn         = getall_chkbtn;
1195
	receive.size_limit_chkbtn     = size_limit_chkbtn;
1196
	receive.size_limit_entry      = size_limit_entry;
1197
	receive.filter_on_recv_chkbtn = filter_on_recv_chkbtn;
1198
	receive.inbox_label           = inbox_label;
1199
	receive.inbox_entry           = inbox_entry;
1200
	receive.inbox_btn             = inbox_btn;
1201

  
1202
	receive.imap_frame             = imap_frame;
1203
	receive.imap_auth_type_optmenu = optmenu;
1204

  
1205
	receive.nntp_frame             = nntp_frame;
1206
	receive.maxarticle_spinbtn     = maxarticle_spinbtn;
1207
	receive.maxarticle_spinbtn_adj = maxarticle_spinbtn_adj;
1208

  
1209
	receive.recvatgetall_chkbtn = recvatgetall_chkbtn;
1210
}
1211

  
1212
static void prefs_account_send_create(void)
1213
{
1214
	GtkWidget *vbox1;
1215
	GtkWidget *vbox2;
1216
	GtkWidget *frame;
1217
	GtkWidget *date_chkbtn;
1218
	GtkWidget *msgid_chkbtn;
1219
	GtkWidget *hbox;
1220
	GtkWidget *customhdr_chkbtn;
1221
	GtkWidget *customhdr_edit_btn;
1222
	GtkWidget *vbox3;
1223
	GtkWidget *smtp_auth_chkbtn;
1224
	GtkWidget *optmenu;
1225
	GtkWidget *optmenu_menu;
1226
	GtkWidget *menuitem;
1227
	GtkWidget *vbox4;
1228
	GtkWidget *hbox_spc;
1229
	GtkWidget *label;
1230
	GtkWidget *smtp_uid_entry;
1231
	GtkWidget *smtp_pass_entry;
1232
	GtkWidget *vbox_spc;
1233
	/* GtkWidget *pop_bfr_smtp_chkbtn; */
1234

  
1235
	vbox1 = gtk_vbox_new (FALSE, VSPACING);
1236
	gtk_widget_show (vbox1);
1237
	gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
1238
	gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
1239

  
1240
	PACK_FRAME (vbox1, frame, _("Header"));
1241

  
1242
	vbox2 = gtk_vbox_new (FALSE, 0);
1243
	gtk_widget_show (vbox2);
1244
	gtk_container_add (GTK_CONTAINER (frame), vbox2);
1245
	gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
1246

  
1247
	PACK_CHECK_BUTTON (vbox2, date_chkbtn, _("Add Date header field"));
1248
	PACK_CHECK_BUTTON (vbox2, msgid_chkbtn, _("Generate Message-ID"));
1249

  
1250
	hbox = gtk_hbox_new (FALSE, 12);
1251
	gtk_widget_show (hbox);
1252
	gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0);
1253

  
1254
	PACK_CHECK_BUTTON (hbox, customhdr_chkbtn,
1255
			   _("Add user-defined header"));
1256

  
1257
	customhdr_edit_btn = gtk_button_new_with_label (_(" Edit... "));
1258
	gtk_widget_show (customhdr_edit_btn);
1259
	gtk_box_pack_start (GTK_BOX (hbox), customhdr_edit_btn,
1260
			    FALSE, FALSE, 0);
1261
	g_signal_connect (G_OBJECT (customhdr_edit_btn), "clicked",
1262
			  G_CALLBACK (prefs_account_edit_custom_header),
1263
			  NULL);
1264

  
1265
	SET_TOGGLE_SENSITIVITY (customhdr_chkbtn, customhdr_edit_btn);
1266

  
1267
	PACK_FRAME (vbox1, frame, _("Authentication"));
1268

  
1269
	vbox3 = gtk_vbox_new (FALSE, 0);
1270
	gtk_widget_show (vbox3);
1271
	gtk_container_add (GTK_CONTAINER (frame), vbox3);
1272
	gtk_container_set_border_width (GTK_CONTAINER (vbox3), 8);
1273

  
1274
	PACK_CHECK_BUTTON (vbox3, smtp_auth_chkbtn,
1275
		_("SMTP Authentication (SMTP AUTH)"));
1276

  
1277
	vbox4 = gtk_vbox_new (FALSE, 0);
1278
	gtk_widget_show (vbox4);
1279
	gtk_box_pack_start (GTK_BOX (vbox3), vbox4, FALSE, FALSE, 0);
1280

  
1281
	hbox = gtk_hbox_new (FALSE, 8);
1282
	gtk_widget_show (hbox);
1283
	gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, FALSE, 0);
1284

  
1285
	hbox_spc = gtk_hbox_new (FALSE, 0);
1286
	gtk_widget_show (hbox_spc);
1287
	gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
1288
	gtk_widget_set_size_request (hbox_spc, 12, -1);
1289

  
1290
	label = gtk_label_new (_("Authentication method"));
1291
	gtk_widget_show (label);
1292
	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
1293

  
1294
	optmenu = gtk_option_menu_new ();
1295
	gtk_widget_show (optmenu);
1296
	gtk_box_pack_start (GTK_BOX (hbox), optmenu, FALSE, FALSE, 0);
1297

  
1298
	optmenu_menu = gtk_menu_new ();
1299

  
1300
	MENUITEM_ADD (optmenu_menu, menuitem, _("Automatic"), 0);
1301
	MENUITEM_ADD (optmenu_menu, menuitem, "PLAIN", SMTPAUTH_PLAIN);
1302
	MENUITEM_ADD (optmenu_menu, menuitem, "LOGIN", SMTPAUTH_LOGIN);
1303
	MENUITEM_ADD (optmenu_menu, menuitem, "CRAM-MD5", SMTPAUTH_CRAM_MD5);
1304
	MENUITEM_ADD (optmenu_menu, menuitem, "DIGEST-MD5", SMTPAUTH_DIGEST_MD5);
1305
	gtk_widget_set_sensitive (menuitem, FALSE);
1306

  
1307
	gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu), optmenu_menu);
1308

  
1309
	PACK_VSPACER(vbox4, vbox_spc, VSPACING_NARROW_2);
1310

  
1311
	hbox = gtk_hbox_new (FALSE, 8);
1312
	gtk_widget_show (hbox);
1313
	gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, FALSE, 0);
1314

  
1315
	hbox_spc = gtk_hbox_new (FALSE, 0);
1316
	gtk_widget_show (hbox_spc);
1317
	gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
1318
	gtk_widget_set_size_request (hbox_spc, 12, -1);
1319

  
1320
	label = gtk_label_new (_("User ID"));
1321
	gtk_widget_show (label);
1322
	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
1323

  
1324
	smtp_uid_entry = gtk_entry_new ();
1325
	gtk_widget_show (smtp_uid_entry);
1326
	gtk_widget_set_size_request (smtp_uid_entry, DEFAULT_ENTRY_WIDTH, -1);
1327
	gtk_box_pack_start (GTK_BOX (hbox), smtp_uid_entry, TRUE, TRUE, 0);
1328

  
1329
	label = gtk_label_new (_("Password"));
1330
	gtk_widget_show (label);
1331
	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
1332

  
1333
	smtp_pass_entry = gtk_entry_new ();
1334
	gtk_widget_show (smtp_pass_entry);
1335
	gtk_widget_set_size_request (smtp_pass_entry, DEFAULT_ENTRY_WIDTH, -1);
1336
	gtk_box_pack_start (GTK_BOX (hbox), smtp_pass_entry, TRUE, TRUE, 0);
1337
	gtk_entry_set_visibility (GTK_ENTRY (smtp_pass_entry), FALSE);
1338

  
1339
	PACK_VSPACER(vbox4, vbox_spc, VSPACING_NARROW_2);
1340

  
1341
	hbox = gtk_hbox_new (FALSE, 8);
1342
	gtk_widget_show (hbox);
1343
	gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, FALSE, 0);
1344

  
1345
	hbox_spc = gtk_hbox_new (FALSE, 0);
1346
	gtk_widget_show (hbox_spc);
1347
	gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
1348
	gtk_widget_set_size_request (hbox_spc, 12, -1);
1349

  
1350
	label = gtk_label_new
1351
		(_("If you leave these entries empty, the same "
1352
		   "user ID and password as receiving will be used."));
1353
	gtk_widget_show (label);
1354
	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
1355
	gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
1356
	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
1357
	gtkut_widget_set_small_font_size (label);
1358

  
1359
	SET_TOGGLE_SENSITIVITY (smtp_auth_chkbtn, vbox4);
1360

  
1361
#if 0
1362
	PACK_CHECK_BUTTON (vbox3, pop_bfr_smtp_chkbtn,
1363
		_("Authenticate with POP3 before sending"));
1364
	gtk_widget_set_sensitive(pop_bfr_smtp_chkbtn, FALSE);
1365
#endif
1366

  
1367
	p_send.date_chkbtn      = date_chkbtn;
1368
	p_send.msgid_chkbtn     = msgid_chkbtn;
1369
	p_send.customhdr_chkbtn = customhdr_chkbtn;
1370

  
1371
	p_send.smtp_auth_chkbtn       = smtp_auth_chkbtn;
1372
	p_send.smtp_auth_type_optmenu = optmenu;
1373
	p_send.smtp_uid_entry         = smtp_uid_entry;
1374
	p_send.smtp_pass_entry        = smtp_pass_entry;
1375
	/* p_send.pop_bfr_smtp_chkbtn    = pop_bfr_smtp_chkbtn; */
1376
}
1377

  
1378
static void prefs_account_compose_create(void)
1379
{
1380
	GtkWidget *vbox1;
1381
	GtkWidget *sig_vbox;
1382
	GtkWidget *sig_hbox;
1383
	GtkWidget *sigfile_radiobtn;
1384
	GtkWidget *sigcmd_radiobtn;
1385
	GtkWidget *sigpath_entry;
1386
	GtkWidget *frame;
1387
	GtkWidget *table;
1388
	GtkWidget *autocc_chkbtn;
1389
	GtkWidget *autocc_entry;
1390
	GtkWidget *autobcc_chkbtn;
1391
	GtkWidget *autobcc_entry;
1392
	GtkWidget *autoreplyto_chkbtn;
1393
	GtkWidget *autoreplyto_entry;
1394

  
1395
	vbox1 = gtk_vbox_new (FALSE, VSPACING);
1396
	gtk_widget_show (vbox1);
1397
	gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
1398
	gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
1399

  
1400
	PACK_FRAME (vbox1, frame, _("Signature"));
1401

  
1402
	sig_vbox = gtk_vbox_new (FALSE, VSPACING_NARROW_2);
1403
	gtk_widget_show (sig_vbox);
1404
	gtk_container_add (GTK_CONTAINER (frame), sig_vbox);
1405
	gtk_container_set_border_width (GTK_CONTAINER (sig_vbox), 8);
1406

  
1407
	sig_hbox = gtk_hbox_new (FALSE, 8);
1408
	gtk_widget_show (sig_hbox);
1409
	gtk_box_pack_start (GTK_BOX (sig_vbox), sig_hbox, FALSE, FALSE, 0);
1410

  
1411
	sigfile_radiobtn = gtk_radio_button_new_with_label (NULL, _("File"));
1412
	gtk_widget_show (sigfile_radiobtn);
1413
	gtk_box_pack_start (GTK_BOX (sig_hbox), sigfile_radiobtn,
1414
			    FALSE, FALSE, 0);
1415
	g_object_set_data (G_OBJECT (sigfile_radiobtn), MENU_VAL_ID,
1416
			   GINT_TO_POINTER (SIG_FILE));
1417

  
1418
	sigcmd_radiobtn = gtk_radio_button_new_with_label_from_widget
1419
		(GTK_RADIO_BUTTON(sigfile_radiobtn), _("Command output"));
1420
	gtk_widget_show (sigcmd_radiobtn);
1421
	gtk_box_pack_start (GTK_BOX (sig_hbox), sigcmd_radiobtn,
1422
			    FALSE, FALSE, 0);
1423
	g_object_set_data (G_OBJECT (sigcmd_radiobtn), MENU_VAL_ID,
1424
			   GINT_TO_POINTER (SIG_COMMAND));
1425

  
1426
	sigpath_entry = gtk_entry_new ();
1427
	gtk_widget_show (sigpath_entry);
1428
	gtk_box_pack_start (GTK_BOX (sig_vbox), sigpath_entry, TRUE, TRUE, 0);
1429

  
1430
	PACK_FRAME (vbox1, frame, _("Automatically set the following addresses"));
1431

  
1432
	table =  gtk_table_new (3, 2, FALSE);
1433
	gtk_widget_show (table);
1434
	gtk_container_add (GTK_CONTAINER (frame), table);
1435
	gtk_container_set_border_width (GTK_CONTAINER (table), 8);
1436
	gtk_table_set_row_spacings (GTK_TABLE (table), VSPACING_NARROW_2);
1437
	gtk_table_set_col_spacings (GTK_TABLE (table), 8);
1438

  
1439
	autocc_chkbtn = gtk_check_button_new_with_label (_("Cc"));
1440
	gtk_widget_show (autocc_chkbtn);
1441
	gtk_table_attach (GTK_TABLE (table), autocc_chkbtn, 0, 1, 0, 1,
1442
			  GTK_FILL, 0, 0, 0);
1443

  
1444
	autocc_entry = gtk_entry_new ();
1445
	gtk_widget_show (autocc_entry);
1446
	gtk_table_attach (GTK_TABLE (table), autocc_entry, 1, 2, 0, 1,
1447
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
1448
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
1449

  
1450
	SET_TOGGLE_SENSITIVITY (autocc_chkbtn, autocc_entry);
1451

  
1452
	autobcc_chkbtn = gtk_check_button_new_with_label (_("Bcc"));
1453
	gtk_widget_show (autobcc_chkbtn);
1454
	gtk_table_attach (GTK_TABLE (table), autobcc_chkbtn, 0, 1, 1, 2,
1455
			  GTK_FILL, 0, 0, 0);
1456

  
1457
	autobcc_entry = gtk_entry_new ();
1458
	gtk_widget_show (autobcc_entry);
1459
	gtk_table_attach (GTK_TABLE (table), autobcc_entry, 1, 2, 1, 2,
1460
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
1461
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
1462

  
1463
	SET_TOGGLE_SENSITIVITY (autobcc_chkbtn, autobcc_entry);
1464

  
1465
	autoreplyto_chkbtn = gtk_check_button_new_with_label (_("Reply-To"));
1466
	gtk_widget_show (autoreplyto_chkbtn);
1467
	gtk_table_attach (GTK_TABLE (table), autoreplyto_chkbtn, 0, 1, 2, 3,
1468
			  GTK_FILL, 0, 0, 0);
1469

  
1470
	autoreplyto_entry = gtk_entry_new ();
1471
	gtk_widget_show (autoreplyto_entry);
1472
	gtk_table_attach (GTK_TABLE (table), autoreplyto_entry, 1, 2, 2, 3,
1473
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL,
1474
			  GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
1475

  
1476
	SET_TOGGLE_SENSITIVITY (autoreplyto_chkbtn, autoreplyto_entry);
1477

  
1478

  
1479
	compose.sigfile_radiobtn = sigfile_radiobtn;
1480
	compose.sigpath_entry    = sigpath_entry;
1481

  
1482
	compose.autocc_chkbtn      = autocc_chkbtn;
1483
	compose.autocc_entry       = autocc_entry;
1484
	compose.autobcc_chkbtn     = autobcc_chkbtn;
1485
	compose.autobcc_entry      = autobcc_entry;
1486
	compose.autoreplyto_chkbtn = autoreplyto_chkbtn;
1487
	compose.autoreplyto_entry  = autoreplyto_entry;
1488
}
1489

  
1490
#if USE_GPGME
1491
static void prefs_account_privacy_create(void)
1492
{
1493
	GtkWidget *vbox1;
1494
	GtkWidget *frame1;
1495
	GtkWidget *vbox2;
1496
	GtkWidget *hbox1;
1497
	GtkWidget *label;
1498
	GtkWidget *default_sign_chkbtn;
1499
	GtkWidget *default_encrypt_chkbtn;
1500
	GtkWidget *encrypt_reply_chkbtn;
1501
	GtkWidget *ascii_armored_chkbtn;
1502
	GtkWidget *clearsign_chkbtn;
1503
	GtkWidget *defaultkey_radiobtn;
1504
	GtkWidget *emailkey_radiobtn;
1505
	GtkWidget *customkey_radiobtn;
1506
	GtkWidget *customkey_entry;
1507

  
1508
	vbox1 = gtk_vbox_new (FALSE, VSPACING);
1509
	gtk_widget_show (vbox1);
1510
	gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
1511
	gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
1512

  
1513
	vbox2 = gtk_vbox_new (FALSE, 0);
1514
	gtk_widget_show (vbox2);
1515
	gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
1516

  
1517
	PACK_CHECK_BUTTON (vbox2, default_sign_chkbtn,
1518
			   _("Sign message by default"));
1519
	PACK_CHECK_BUTTON (vbox2, default_encrypt_chkbtn,
1520
			   _("Encrypt message by default"));
1521
	PACK_CHECK_BUTTON (vbox2, encrypt_reply_chkbtn,
1522
			   _("Encrypt when replying to encrypted message"));
1523
	PACK_CHECK_BUTTON (vbox2, ascii_armored_chkbtn,
1524
			   _("Use ASCII-armored format for encryption"));
1525
	PACK_CHECK_BUTTON (vbox2, clearsign_chkbtn,
1526
			   _("Use clear text signature"));
1527
	g_signal_connect (G_OBJECT (ascii_armored_chkbtn), "toggled",
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff