2 * e-mail-config-service-page.h
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) version 3.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with the program; if not, see <http://www.gnu.org/licenses/>
19 /* XXX This is very similar to ESourceConfig for address books and
20 * calendars, but not similar enough to easily unify the APIs.
21 * Probably with more thought and effort it could be done. */
23 #ifndef E_MAIL_CONFIG_SERVICE_PAGE_H
24 #define E_MAIL_CONFIG_SERVICE_PAGE_H
26 #include <camel/camel.h>
28 #include <mail/e-mail-autoconfig.h>
29 #include <mail/e-mail-config-activity-page.h>
30 #include <mail/e-mail-config-service-backend.h>
32 /* Standard GObject macros */
33 #define E_TYPE_MAIL_CONFIG_SERVICE_PAGE \
34 (e_mail_config_service_page_get_type ())
35 #define E_MAIL_CONFIG_SERVICE_PAGE(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST \
37 ((obj), E_TYPE_MAIL_CONFIG_SERVICE_PAGE, EMailConfigServicePage))
38 #define E_MAIL_CONFIG_SERVICE_PAGE_CLASS(cls) \
39 (G_TYPE_CHECK_CLASS_CAST \
40 ((cls), E_TYPE_MAIL_CONFIG_SERVICE_PAGE, EMailConfigServicePageClass))
41 #define E_IS_MAIL_CONFIG_SERVICE_PAGE(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE \
43 ((obj), E_TYPE_MAIL_CONFIG_SERVICE_PAGE))
44 #define E_IS_MAIL_CONFIG_SERVICE_PAGE_CLASS(cls) \
45 (G_TYPE_CHECK_CLASS_TYPE \
46 ((cls), E_TYPE_MAIL_CONFIG_SERVICE_PAGE))
47 #define E_MAIL_CONFIG_SERVICE_PAGE_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS \
49 ((obj), E_TYPE_MAIL_CONFIG_SERVICE_PAGE, EMailConfigServicePageClass))
53 typedef struct _EMailConfigServicePage EMailConfigServicePage
;
54 typedef struct _EMailConfigServicePageClass EMailConfigServicePageClass
;
55 typedef struct _EMailConfigServicePagePrivate EMailConfigServicePagePrivate
;
57 struct _EMailConfigServicePage
{
58 EMailConfigActivityPage parent
;
59 EMailConfigServicePagePrivate
*priv
;
62 struct _EMailConfigServicePageClass
{
63 EMailConfigActivityPageClass parent_class
;
65 const gchar
*extension_name
;
66 CamelProviderType provider_type
;
67 const gchar
*default_backend_name
;
70 GType e_mail_config_service_page_get_type
72 EMailConfigServiceBackend
*
73 e_mail_config_service_page_get_active_backend
74 (EMailConfigServicePage
*page
);
75 void e_mail_config_service_page_set_active_backend
76 (EMailConfigServicePage
*page
,
77 EMailConfigServiceBackend
*backend
);
78 const gchar
* e_mail_config_service_page_get_email_address
79 (EMailConfigServicePage
*page
);
80 void e_mail_config_service_page_set_email_address
81 (EMailConfigServicePage
*page
,
82 const gchar
*email_address
);
84 e_mail_config_service_page_get_registry
85 (EMailConfigServicePage
*page
);
86 EMailConfigServiceBackend
*
87 e_mail_config_service_page_add_scratch_source
88 (EMailConfigServicePage
*page
,
89 ESource
*scratch_source
,
90 ESource
*opt_collection
);
91 EMailConfigServiceBackend
*
92 e_mail_config_service_page_lookup_backend
93 (EMailConfigServicePage
*page
,
94 const gchar
*backend_name
);
95 void e_mail_config_service_page_auto_configure
96 (EMailConfigServicePage
*page
,
97 EMailAutoconfig
*autoconfig
);
101 #endif /* E_MAIL_CONFIG_SERVICE_PAGE_H */