1 /*
2  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3  * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
4  *
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.
9  *
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.
14  *
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/>.
17  *
18  */
19 
20 #ifndef __ACCOUNT_H__
21 #define __ACCOUNT_H__
22 
23 #include <glib.h>
24 
25 #include "prefs_gtk.h"
26 #include "prefs_account.h"
27 #include "folder.h"
28 
29 typedef gint	(*AccountFunc)	(PrefsAccount	*ac_prefs,
30 				 gpointer	 user_data);
31 
32 typedef struct {
33 	const gchar *user;
34 	const gchar *server;
35 	const gchar *protocol;
36 	guint16 port;
37 
38 	gchar *password;
39 } PasswordRequest;
40 
41 #define PASSWORD_GET_HOOKLIST "password_get_hooklist"
42 
43 extern PrefsAccount *cur_account;
44 
45 PrefsAccount *account_get_cur_account   (void);
46 void	      account_read_config_all	(void);
47 void	      account_write_config_all	(void);
48 
49 GList        *account_find_all_from_address	(GList		*ac_list,
50 						 const gchar	*address);
51 GList	     *account_find_all		(void);
52 PrefsAccount *account_find_from_smtp_server	(const gchar	*address,
53 						 const gchar	*smtp_server);
54 PrefsAccount *account_find_from_address		(const gchar	*address, gboolean newsgroups_ok);
55 PrefsAccount *account_find_from_id		(gint		 id);
56 PrefsAccount *account_find_from_item		(FolderItem	*item);
57 
58 void	      account_set_menu_only_toolbar	(void);
59 
60 GList	     *account_get_list		(void);
61 
62 void	      account_edit_open		(gpointer a, gpointer b);
63 void	      account_add		(void);
64 void	      account_open		(PrefsAccount	*ac_prefs, gboolean called_from_acc_list);
65 void	      account_set_as_recv_at_get_all	(PrefsAccount	*ac_prefs);
66 PrefsAccount *account_get_default	(void);
67 
68 void	      account_set_missing_folder(void);
69 FolderItem   *account_get_special_folder(PrefsAccount		*ac_prefs,
70 					 SpecialFolderItemType	 type);
71 
72 PrefsAccount *account_get_reply_account	(MsgInfo 	*msginfo,
73 					 gboolean	 reply_autosel);
74 void 	      account_rename_path	(const gchar 	*old_id,
75 					 const gchar 	*new_id);
76 gchar *account_get_signature_str(PrefsAccount *account);
77 
78 gboolean      password_get(const gchar *user,
79 			   const gchar *server,
80 			   const gchar *protocol,
81 			   guint16 port,
82 			   gchar **password);
83 
84 void		  account_sigsep_matchlist_create	  (void);
85 void		  account_sigsep_matchlist_delete	  (void);
86 gboolean	  account_sigsep_matchlist_str_found  (const gchar *str, const gchar *format);
87 gboolean	  account_sigsep_matchlist_nchar_found    (const gchar *str, const gchar *format);
88 
89 #endif /* __ACCOUNT_H__ */
90