2 * e-mail-config-confirm-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 #include "e-mail-config-confirm-page.h"
22 #include <glib/gi18n-lib.h>
24 #include <libebackend/libebackend.h>
26 #define E_MAIL_CONFIG_CONFIRM_PAGE_GET_PRIVATE(obj) \
27 (G_TYPE_INSTANCE_GET_PRIVATE \
28 ((obj), E_TYPE_MAIL_CONFIG_CONFIRM_PAGE, EMailConfigConfirmPagePrivate))
30 struct _EMailConfigConfirmPagePrivate
{
39 /* Forward Declarations */
40 static void e_mail_config_confirm_page_interface_init
41 (EMailConfigPageInterface
*interface
);
43 G_DEFINE_TYPE_WITH_CODE (
44 EMailConfigConfirmPage
,
45 e_mail_config_confirm_page
,
47 G_IMPLEMENT_INTERFACE (
48 E_TYPE_EXTENSIBLE
, NULL
)
49 G_IMPLEMENT_INTERFACE (
50 E_TYPE_MAIL_CONFIG_PAGE
,
51 e_mail_config_confirm_page_interface_init
))
54 mail_config_confirm_page_set_property (GObject
*object
,
59 switch (property_id
) {
61 e_mail_config_confirm_page_set_text (
62 E_MAIL_CONFIG_CONFIRM_PAGE (object
),
63 g_value_get_string (value
));
67 G_OBJECT_WARN_INVALID_PROPERTY_ID (object
, property_id
, pspec
);
71 mail_config_confirm_page_get_property (GObject
*object
,
76 switch (property_id
) {
80 e_mail_config_confirm_page_get_text (
81 E_MAIL_CONFIG_CONFIRM_PAGE (object
)));
85 G_OBJECT_WARN_INVALID_PROPERTY_ID (object
, property_id
, pspec
);
89 mail_config_confirm_page_finalize (GObject
*object
)
91 EMailConfigConfirmPagePrivate
*priv
;
93 priv
= E_MAIL_CONFIG_CONFIRM_PAGE_GET_PRIVATE (object
);
97 /* Chain up to parent's finalize() method. */
98 G_OBJECT_CLASS (e_mail_config_confirm_page_parent_class
)->
103 mail_config_confirm_page_constructed (GObject
*object
)
105 EMailConfigConfirmPage
*page
;
108 page
= E_MAIL_CONFIG_CONFIRM_PAGE (object
);
110 /* Chain up to parent's constructed() method. */
111 G_OBJECT_CLASS (e_mail_config_confirm_page_parent_class
)->
112 constructed (object
);
114 gtk_orientable_set_orientation (
115 GTK_ORIENTABLE (page
), GTK_ORIENTATION_VERTICAL
);
117 gtk_box_set_spacing (GTK_BOX (page
), 12);
119 gtk_widget_set_valign (GTK_WIDGET (page
), GTK_ALIGN_CENTER
);
121 widget
= gtk_label_new (NULL
);
122 gtk_label_set_line_wrap (GTK_LABEL (widget
), TRUE
);
123 gtk_misc_set_alignment (GTK_MISC (widget
), 0.0, 0.5);
124 gtk_box_pack_start (GTK_BOX (page
), widget
, FALSE
, FALSE
, 0);
125 gtk_widget_show (widget
);
127 g_object_bind_property (
130 G_BINDING_BIDIRECTIONAL
|
131 G_BINDING_SYNC_CREATE
);
133 e_extensible_load_extensions (E_EXTENSIBLE (page
));
137 e_mail_config_confirm_page_class_init (EMailConfigConfirmPageClass
*class)
139 GObjectClass
*object_class
;
141 g_type_class_add_private (
142 class, sizeof (EMailConfigConfirmPagePrivate
));
144 object_class
= G_OBJECT_CLASS (class);
145 object_class
->set_property
= mail_config_confirm_page_set_property
;
146 object_class
->get_property
= mail_config_confirm_page_get_property
;
147 object_class
->finalize
= mail_config_confirm_page_finalize
;
148 object_class
->constructed
= mail_config_confirm_page_constructed
;
150 g_object_class_install_property (
153 g_param_spec_string (
156 "Confirmation message",
157 _("Congratulations, your mail configuration is "
158 "complete.\n\nYou are now ready to send and "
159 "receive email using Evolution.\n\nClick "
160 "\"Apply\" to save your settings."),
163 G_PARAM_STATIC_STRINGS
));
167 e_mail_config_confirm_page_interface_init (EMailConfigPageInterface
*interface
)
169 interface
->title
= _("Done");
170 interface
->page_type
= GTK_ASSISTANT_PAGE_CONFIRM
;
171 interface
->sort_order
= E_MAIL_CONFIG_CONFIRM_PAGE_SORT_ORDER
;
175 e_mail_config_confirm_page_init (EMailConfigConfirmPage
*page
)
177 page
->priv
= E_MAIL_CONFIG_CONFIRM_PAGE_GET_PRIVATE (page
);
181 e_mail_config_confirm_page_new (void)
183 return g_object_new (E_TYPE_MAIL_CONFIG_CONFIRM_PAGE
, NULL
);
187 e_mail_config_confirm_page_get_text (EMailConfigConfirmPage
*page
)
189 g_return_val_if_fail (E_IS_MAIL_CONFIG_CONFIRM_PAGE (page
), NULL
);
191 return page
->priv
->text
;
195 e_mail_config_confirm_page_set_text (EMailConfigConfirmPage
*page
,
198 g_return_if_fail (E_IS_MAIL_CONFIG_CONFIRM_PAGE (page
));
200 if (g_strcmp0 (page
->priv
->text
, (text
!= NULL
) ? text
: "") == 0)
203 g_free (page
->priv
->text
);
204 page
->priv
->text
= g_strdup ((text
!= NULL
) ? text
: "");
206 g_object_notify (G_OBJECT (page
), "text");