Commit f582dae7 authored by Milan Crha's avatar Milan Crha
Browse files

Bug 783987 - Mail account assistant/editor too tall for small resolution

parent 152ae96c
......@@ -3943,3 +3943,110 @@ e_util_next_uri_from_uri_list (guchar **uri_list,
return (gchar *) uri;
}
/**
* e_util_resize_window_for_screen:
* @window: a #GtkWindow
* @window_width: the @window width without @children, or -1 to compute
* @window_height: the @window height without @children, or -1 to compute
* @children: (element-type GtkWidget): (nullable): a #GSList with children to calculate with
*
* Calculates the size of the @window considering preferred sizes of @children,
* and shrinks the @window in case it won't be completely visible on the screen
* it is assigned to.
*
* Since: 3.26
**/
void
e_util_resize_window_for_screen (GtkWindow *window,
gint window_width,
gint window_height,
const GSList *children)
{
gint width = -1, height = -1, content_width = -1, content_height = -1, current_width = -1, current_height = -1;
GtkRequisition requisition;
const GSList *link;
g_return_if_fail (GTK_IS_WINDOW (window));
gtk_window_get_default_size (window, &width, &height);
if (width < 0 || height < 0) {
gtk_widget_get_preferred_size (GTK_WIDGET (window), &requisition, NULL);
width = requisition.width;
height = requisition.height;
}
for (link = children; link; link = g_slist_next (link)) {
GtkWidget *widget = link->data;
if (GTK_IS_SCROLLED_WINDOW (widget))
widget = gtk_bin_get_child (GTK_BIN (widget));
if (GTK_IS_VIEWPORT (widget))
widget = gtk_bin_get_child (GTK_BIN (widget));
if (!GTK_IS_WIDGET (widget))
continue;
gtk_widget_get_preferred_size (widget, &requisition, NULL);
if (requisition.width > content_width)
content_width = requisition.width;
if (requisition.height > content_height)
content_height = requisition.height;
widget = gtk_widget_get_parent (widget);
if (GTK_IS_VIEWPORT (widget))
widget = gtk_widget_get_parent (widget);
if (GTK_IS_WIDGET (widget)) {
gtk_widget_get_preferred_size (widget, &requisition, NULL);
if (current_width == -1 || current_width < requisition.width)
current_width = requisition.width;
if (current_height == -1 || current_height < requisition.height)
current_height = requisition.height;
}
}
if (content_width > 0 && content_height > 0 && width > 0 && height > 0) {
GdkScreen *screen;
GdkRectangle monitor_area;
gint x = 0, y = 0, monitor;
screen = gtk_window_get_screen (GTK_WINDOW (window));
gtk_window_get_position (GTK_WINDOW (window), &x, &y);
monitor = gdk_screen_get_monitor_at_point (screen, x, y);
if (monitor < 0 || monitor >= gdk_screen_get_n_monitors (screen))
monitor = 0;
gdk_screen_get_monitor_workarea (screen, monitor, &monitor_area);
/* When the children are packed inside the window then influence the window
size too, thus subtract it, if possible. */
if (window_width < 0) {
if (current_width > 0 && current_width < width)
width -= current_width;
} else {
width = window_width;
}
if (window_height < 0) {
if (current_height > 0 && current_height < height)
height -= current_height;
} else {
height = window_height;
}
if (content_width > monitor_area.width - width)
content_width = monitor_area.width - width;
if (content_height > monitor_area.height - height)
content_height = monitor_area.height - height;
if (content_width > 0 && content_height > 0)
gtk_window_set_default_size (GTK_WINDOW (window), width + content_width, height + content_height);
}
}
......@@ -335,6 +335,10 @@ gboolean e_util_get_webkit_developer_mode_enabled
gchar * e_util_next_uri_from_uri_list (guchar **uri_list,
gint *len,
gint *list_len);
void e_util_resize_window_for_screen (GtkWindow *window,
gint window_width,
gint window_height,
const GSList *children); /* GtkWidget * */
G_END_DECLS
......
......@@ -521,9 +521,8 @@ e_preferences_window_setup (EPreferencesWindow *window)
{
gint i, num;
GtkNotebook *notebook;
GtkRequisition requisition;
gint width = -1, height = -1, content_width = -1, content_height = -1;
EPreferencesWindowPrivate *priv;
GSList *children = NULL;
g_return_if_fail (E_IS_PREFERENCES_WINDOW (window));
......@@ -532,14 +531,6 @@ e_preferences_window_setup (EPreferencesWindow *window)
if (priv->setup)
return;
gtk_window_get_default_size (GTK_WINDOW (window), &width, &height);
if (width < 0 || height < 0) {
gtk_widget_get_preferred_size (GTK_WIDGET (window), &requisition, NULL);
width = requisition.width;
height = requisition.height;
}
notebook = GTK_NOTEBOOK (priv->notebook);
num = gtk_notebook_get_n_pages (notebook);
......@@ -558,6 +549,8 @@ e_preferences_window_setup (EPreferencesWindow *window)
if (content) {
GtkScrolledWindow *scrolled;
children = g_slist_prepend (children, content);
scrolled = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new (NULL, NULL));
gtk_scrolled_window_add_with_viewport (scrolled, content);
gtk_scrolled_window_set_min_content_width (scrolled, 320);
......@@ -570,43 +563,15 @@ e_preferences_window_setup (EPreferencesWindow *window)
GTK_SHADOW_NONE);
gtk_widget_show (content);
gtk_widget_get_preferred_size (GTK_WIDGET (content), &requisition, NULL);
if (requisition.width > content_width)
content_width = requisition.width;
if (requisition.height > content_height)
content_height = requisition.height;
gtk_widget_show (GTK_WIDGET (scrolled));
gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (scrolled));
}
}
if (content_width > 0 && content_height > 0 && width > 0 && height > 0) {
GdkScreen *screen;
GdkRectangle monitor_area;
gint x = 0, y = 0, monitor;
e_util_resize_window_for_screen (GTK_WINDOW (window), -1, -1, children);
screen = gtk_window_get_screen (GTK_WINDOW (window));
gtk_window_get_position (GTK_WINDOW (window), &x, &y);
monitor = gdk_screen_get_monitor_at_point (screen, x, y);
if (monitor < 0 || monitor >= gdk_screen_get_n_monitors (screen))
monitor = 0;
gdk_screen_get_monitor_workarea (screen, monitor, &monitor_area);
if (content_width > monitor_area.width - width)
content_width = monitor_area.width - width;
if (content_height > monitor_area.height - height)
content_height = monitor_area.height - height;
if (content_width > 0 && content_height > 0)
gtk_window_set_default_size (GTK_WINDOW (window), width + content_width, height + content_height);
}
g_slist_free (children);
priv->setup = TRUE;
}
......@@ -24,6 +24,7 @@
((obj), E_TYPE_MAIL_CONFIG_ACTIVITY_PAGE, EMailConfigActivityPagePrivate))
struct _EMailConfigActivityPagePrivate {
GtkWidget *box; /* not referenced */
GtkWidget *activity_bar; /* not referenced */
GtkWidget *alert_bar; /* not referenced */
};
......@@ -35,7 +36,7 @@ static void e_mail_config_activity_page_alert_sink_init
G_DEFINE_ABSTRACT_TYPE_WITH_CODE (
EMailConfigActivityPage,
e_mail_config_activity_page,
GTK_TYPE_BOX,
GTK_TYPE_SCROLLED_WINDOW,
G_IMPLEMENT_INTERFACE (
E_TYPE_ALERT_SINK,
e_mail_config_activity_page_alert_sink_init))
......@@ -52,15 +53,14 @@ mail_config_activity_page_constructed (GObject *object)
/* Chain up to parent's constructed() method. */
G_OBJECT_CLASS (e_mail_config_activity_page_parent_class)->constructed (object);
gtk_orientable_set_orientation (
GTK_ORIENTABLE (page), GTK_ORIENTATION_VERTICAL);
page->priv->box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
/* Does not matter what order the EActivityBar and EAlertBar are
* packed. They should never both be visible at the same time. */
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_box_pack_end (GTK_BOX (page), frame, FALSE, FALSE, 0);
gtk_box_pack_end (GTK_BOX (page->priv->box), frame, FALSE, FALSE, 0);
/* Visibility is bound to the EActivityBar. */
widget = e_activity_bar_new ();
......@@ -75,7 +75,7 @@ mail_config_activity_page_constructed (GObject *object)
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_box_pack_end (GTK_BOX (page), frame, FALSE, FALSE, 0);
gtk_box_pack_end (GTK_BOX (page->priv->box), frame, FALSE, FALSE, 0);
/* Visibility is bound to the EAlertBar. */
widget = e_alert_bar_new ();
......@@ -143,6 +143,14 @@ e_mail_config_activity_page_init (EMailConfigActivityPage *page)
page->priv = E_MAIL_CONFIG_ACTIVITY_PAGE_GET_PRIVATE (page);
}
GtkWidget *
e_mail_config_activity_page_get_internal_box (EMailConfigActivityPage *page)
{
g_return_val_if_fail (E_IS_MAIL_CONFIG_ACTIVITY_PAGE (page), NULL);
return page->priv->box;
}
EActivity *
e_mail_config_activity_page_new_activity (EMailConfigActivityPage *page)
{
......
......@@ -52,16 +52,18 @@ typedef struct _EMailConfigActivityPageClass EMailConfigActivityPageClass;
typedef struct _EMailConfigActivityPagePrivate EMailConfigActivityPagePrivate;
struct _EMailConfigActivityPage {
GtkBox parent;
GtkScrolledWindow parent;
EMailConfigActivityPagePrivate *priv;
};
struct _EMailConfigActivityPageClass {
GtkBoxClass parent_class;
GtkScrolledWindowClass parent_class;
};
GType e_mail_config_activity_page_get_type
(void) G_GNUC_CONST;
GtkWidget * e_mail_config_activity_page_get_internal_box
(EMailConfigActivityPage *page);
EActivity * e_mail_config_activity_page_new_activity
(EMailConfigActivityPage *page);
......
......@@ -652,6 +652,9 @@ mail_config_assistant_constructed (GObject *object)
GList *list, *link;
const gchar *extension_name;
const gchar *title;
GtkRequisition requisition;
GSList *children = NULL;
gint ii, npages;
assistant = E_MAIL_CONFIG_ASSISTANT (object);
......@@ -711,6 +714,10 @@ mail_config_assistant_constructed (GObject *object)
e_mail_session_get_local_folder_uri (
session, E_MAIL_LOCAL_FOLDER_SENT));
gtk_widget_get_preferred_size (GTK_WIDGET (assistant), &requisition, NULL);
requisition.width += 2 * 12;
requisition.height += 2 * 12;
/*** Welcome Page ***/
page = e_mail_config_welcome_page_new ();
......@@ -906,6 +913,15 @@ mail_config_assistant_constructed (GObject *object)
e_mail_config_assistant_add_page (assistant, page);
e_extensible_load_extensions (E_EXTENSIBLE (assistant));
npages = gtk_assistant_get_n_pages (GTK_ASSISTANT (assistant));
for (ii = 0; ii < npages; ii++) {
children = g_slist_prepend (children, gtk_assistant_get_nth_page (GTK_ASSISTANT (assistant), ii));
}
e_util_resize_window_for_screen (GTK_WINDOW (assistant), requisition.width, requisition.height, children);
g_slist_free (children);
}
static void
......
......@@ -43,7 +43,7 @@ static void e_mail_config_confirm_page_interface_init
G_DEFINE_TYPE_WITH_CODE (
EMailConfigConfirmPage,
e_mail_config_confirm_page,
GTK_TYPE_BOX,
GTK_TYPE_SCROLLED_WINDOW,
G_IMPLEMENT_INTERFACE (
E_TYPE_EXTENSIBLE, NULL)
G_IMPLEMENT_INTERFACE (
......@@ -103,24 +103,20 @@ static void
mail_config_confirm_page_constructed (GObject *object)
{
EMailConfigConfirmPage *page;
GtkWidget *widget;
GtkWidget *main_box, *widget;
page = E_MAIL_CONFIG_CONFIRM_PAGE (object);
/* Chain up to parent's constructed() method. */
G_OBJECT_CLASS (e_mail_config_confirm_page_parent_class)->constructed (object);
gtk_orientable_set_orientation (
GTK_ORIENTABLE (page), GTK_ORIENTATION_VERTICAL);
gtk_box_set_spacing (GTK_BOX (page), 12);
gtk_widget_set_valign (GTK_WIDGET (page), GTK_ALIGN_CENTER);
main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
gtk_widget_set_valign (main_box, GTK_ALIGN_CENTER);
widget = gtk_label_new (NULL);
gtk_label_set_line_wrap (GTK_LABEL (widget), TRUE);
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
gtk_widget_show (widget);
e_binding_bind_property (
......@@ -129,6 +125,8 @@ mail_config_confirm_page_constructed (GObject *object)
G_BINDING_BIDIRECTIONAL |
G_BINDING_SYNC_CREATE);
e_mail_config_page_set_content (E_MAIL_CONFIG_PAGE (page), main_box);
e_extensible_load_extensions (E_EXTENSIBLE (page));
}
......
......@@ -50,12 +50,12 @@ typedef struct _EMailConfigConfirmPageClass EMailConfigConfirmPageClass;
typedef struct _EMailConfigConfirmPagePrivate EMailConfigConfirmPagePrivate;
struct _EMailConfigConfirmPage {
GtkBox parent;
GtkScrolledWindow parent;
EMailConfigConfirmPagePrivate *priv;
};
struct _EMailConfigConfirmPageClass {
GtkBoxClass parent_class;
GtkScrolledWindowClass parent_class;
};
GType e_mail_config_confirm_page_get_type
......
......@@ -776,7 +776,7 @@ mail_config_defaults_page_constructed (GObject *object)
GtkButton *button;
GtkWidget *widget;
GtkWidget *container;
GtkWidget *hbox;
GtkWidget *hbox, *main_box;
GtkSizeGroup *size_group;
GEnumClass *enum_class;
GEnumValue *enum_value;
......@@ -810,10 +810,9 @@ mail_config_defaults_page_constructed (GObject *object)
extension_name = E_SOURCE_EXTENSION_MDN;
mdn_ext = e_source_get_extension (source, extension_name);
gtk_orientable_set_orientation (
GTK_ORIENTABLE (page), GTK_ORIENTATION_VERTICAL);
main_box = e_mail_config_activity_page_get_internal_box (E_MAIL_CONFIG_ACTIVITY_PAGE (page));
gtk_box_set_spacing (GTK_BOX (page), 12);
gtk_box_set_spacing (GTK_BOX (main_box), 12);
size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
......@@ -822,7 +821,7 @@ mail_config_defaults_page_constructed (GObject *object)
widget = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
gtk_grid_set_column_spacing (GTK_GRID (widget), 6);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
gtk_widget_show (widget);
container = widget;
......@@ -1020,7 +1019,7 @@ mail_config_defaults_page_constructed (GObject *object)
widget = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
gtk_grid_set_column_spacing (GTK_GRID (widget), 6);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
gtk_widget_show (widget);
container = widget;
......@@ -1121,7 +1120,7 @@ mail_config_defaults_page_constructed (GObject *object)
widget = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
gtk_grid_set_column_spacing (GTK_GRID (widget), 6);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
gtk_widget_show (widget);
container = widget;
......@@ -1186,6 +1185,8 @@ mail_config_defaults_page_constructed (GObject *object)
g_object_unref (size_group);
e_mail_config_page_set_content (E_MAIL_CONFIG_PAGE (page), main_box);
e_extensible_load_extensions (E_EXTENSIBLE (page));
}
......
......@@ -65,7 +65,7 @@ static void e_mail_config_identity_page_interface_init
G_DEFINE_TYPE_WITH_CODE (
EMailConfigIdentityPage,
e_mail_config_identity_page,
GTK_TYPE_BOX,
GTK_TYPE_SCROLLED_WINDOW,
G_IMPLEMENT_INTERFACE (
E_TYPE_EXTENSIBLE, NULL)
G_IMPLEMENT_INTERFACE (
......@@ -485,7 +485,7 @@ mail_config_identity_page_constructed (GObject *object)
GtkTreeModel *model;
GtkTreeSelection *selection;
GtkCellRenderer *renderer;
GtkWidget *widget;
GtkWidget *main_box, *widget;
GtkWidget *container;
GtkWidget *scrolledwindow;
GtkSizeGroup *size_group;
......@@ -503,12 +503,9 @@ mail_config_identity_page_constructed (GObject *object)
source = e_mail_config_identity_page_get_identity_source (page);
extension = e_source_get_extension (source, extension_name);
gtk_orientable_set_orientation (
GTK_ORIENTABLE (page), GTK_ORIENTATION_VERTICAL);
gtk_box_set_spacing (GTK_BOX (page), 12);
gtk_widget_set_valign (GTK_WIDGET (page), GTK_ALIGN_FILL);
gtk_widget_set_vexpand (GTK_WIDGET (page), TRUE);
main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
gtk_widget_set_valign (main_box, GTK_ALIGN_FILL);
gtk_widget_set_vexpand (main_box, TRUE);
/* This keeps all mnemonic labels the same width. */
size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
......@@ -520,7 +517,7 @@ mail_config_identity_page_constructed (GObject *object)
widget = gtk_label_new (text);
gtk_label_set_line_wrap (GTK_LABEL (widget), TRUE);
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
e_binding_bind_property (
page, "show-instructions",
......@@ -532,7 +529,7 @@ mail_config_identity_page_constructed (GObject *object)
widget = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
gtk_grid_set_column_spacing (GTK_GRID (widget), 6);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
e_binding_bind_property (
page, "show-account-info",
......@@ -591,7 +588,7 @@ mail_config_identity_page_constructed (GObject *object)
widget = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
gtk_grid_set_column_spacing (GTK_GRID (widget), 6);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
gtk_widget_show (widget);
container = widget;
......@@ -678,7 +675,7 @@ mail_config_identity_page_constructed (GObject *object)
widget = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
gtk_grid_set_column_spacing (GTK_GRID (widget), 6);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
gtk_widget_show (widget);
container = widget;
......@@ -898,7 +895,9 @@ mail_config_identity_page_constructed (GObject *object)
page->priv->autodiscover_check = widget;
gtk_container_add (GTK_CONTAINER (page), widget);
gtk_container_add (GTK_CONTAINER (main_box), widget);
e_mail_config_page_set_content (E_MAIL_CONFIG_PAGE (page), main_box);
e_extensible_load_extensions (E_EXTENSIBLE (page));
}
......
......@@ -51,12 +51,12 @@ typedef struct _EMailConfigIdentityPageClass EMailConfigIdentityPageClass;
typedef struct _EMailConfigIdentityPagePrivate EMailConfigIdentityPagePrivate;
struct _EMailConfigIdentityPage {
GtkBox parent;
GtkScrolledWindow parent;
EMailConfigIdentityPagePrivate *priv;
};
struct _EMailConfigIdentityPageClass {
GtkBoxClass parent_class;
GtkScrolledWindowClass parent_class;
};
GType e_mail_config_identity_page_get_type
......
......@@ -30,7 +30,7 @@ static void e_mail_config_lookup_page_interface_init
G_DEFINE_TYPE_WITH_CODE (
EMailConfigLookupPage,
e_mail_config_lookup_page,
GTK_TYPE_BOX,
GTK_TYPE_SCROLLED_WINDOW,
G_IMPLEMENT_INTERFACE (
E_TYPE_MAIL_CONFIG_PAGE,
e_mail_config_lookup_page_interface_init))
......@@ -40,7 +40,7 @@ mail_config_lookup_page_constructed (GObject *object)
{
EMailConfigLookupPage *page;
GtkWidget *container;
GtkWidget *widget;
GtkWidget *main_box, *widget;
const gchar *text;
page = E_MAIL_CONFIG_LOOKUP_PAGE (object);
......@@ -48,15 +48,11 @@ mail_config_lookup_page_constructed (GObject *object)
/* Chain up to parent's constructed() method. */
G_OBJECT_CLASS (e_mail_config_lookup_page_parent_class)->constructed (object);
gtk_orientable_set_orientation (
GTK_ORIENTABLE (page), GTK_ORIENTATION_VERTICAL);
gtk_box_set_spacing (GTK_BOX (page), 12);
gtk_widget_set_valign (GTK_WIDGET (page), GTK_ALIGN_FILL);
main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
gtk_widget_set_valign (main_box, GTK_ALIGN_FILL);
widget = gtk_alignment_new (0.5, 0.5, 0.5, 0.5);
gtk_box_pack_start (GTK_BOX (page), widget, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, TRUE, TRUE, 0);
gtk_widget_show (widget);
container = widget;
......@@ -68,8 +64,10 @@ mail_config_lookup_page_constructed (GObject *object)
text = _("Looking up account details...");
widget = gtk_label_new (text);
gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
gtk_widget_show (widget);
e_mail_config_page_set_content (E_MAIL_CONFIG_PAGE (page), main_box);
}
static gboolean
......
......@@ -53,12 +53,12 @@ typedef struct _EMailConfigLookupPageClass EMailConfigLookupPageClass;
typedef struct _EMailConfigLookupPagePrivate EMailConfigLookupPagePrivate;
struct _EMailConfigLookupPage {
GtkBox parent;
GtkScrolledWindow parent;
EMailConfigLookupPagePrivate *priv;
};
struct _EMailConfigLookupPageClass {
GtkBoxClass parent_class;
GtkScrolledWindowClass parent_class;
};
GType e_mail_config_lookup_page_get_type
......
......@@ -36,10 +36,7 @@ enum {
static gulong signals[LAST_SIGNAL];
G_DEFINE_INTERFACE (
EMailConfigPage,
e_mail_config_page,
GTK_TYPE_WIDGET)
G_DEFINE_INTERFACE (EMailConfigPage, e_mail_config_page, GTK_TYPE_SCROLLED_WINDOW)
static gboolean
mail_config_page_check_complete (EMailConfigPage *page)
......@@ -170,6 +167,40 @@ e_mail_config_page_default_init (EMailConfigPageInterface *iface)
G_TYPE_POINTER);
}