ModestAccountMgr *account_mgr;
ModestWidgetFactory *widget_factory;
ModestTnyAccountStore *account_store;
+
+ GtkWidget *main_window;
};
#define MODEST_UI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
sizeof(ModestUI),
1, /* n_preallocs */
(GInstanceInitFunc) modest_ui_init,
+ NULL
};
my_type = g_type_register_static (G_TYPE_OBJECT,
"ModestUI",
priv->account_mgr = NULL;
priv->conf = NULL;
priv->widget_factory = NULL;
+
+ priv->main_window = NULL;
}
return NULL;
}
- priv->widget_factory = modest_widget_factory_new (priv->account_store, TRUE);
+ priv->widget_factory = modest_widget_factory_new (
+ priv->conf, priv->account_store, priv->account_mgr);
if (!priv->account_store) {
g_printerr ("modest: could not initialize widget factory\n");
return NULL;
return MODEST_UI(obj);
}
+static gboolean
+on_main_window_delete_event (GtkWidget *widget, GdkEvent *event, ModestUI *self)
+{
+ g_warning (__FUNCTION__);
+ gtk_main_quit ();
+ return FALSE;
+}
+
GtkWidget*
modest_ui_main_window (ModestUI *modest_ui)
{
- GtkWidget* win;
ModestUIPrivate *priv;
g_return_val_if_fail (modest_ui, NULL);
priv = MODEST_UI_GET_PRIVATE(modest_ui);
- win = modest_main_window_new (priv->widget_factory);
- if (!win)
+ if (!priv->main_window) {
+ priv->main_window =
+ modest_main_window_new (priv->conf, priv->account_mgr,
+ priv->widget_factory);
+ g_signal_connect (G_OBJECT(priv->main_window), "delete-event",
+ G_CALLBACK(on_main_window_delete_event), modest_ui);
+ }
+
+ if (!priv->main_window)
g_printerr ("modest: could not create main window\n");
-
- return win;
+
+ return priv->main_window;
}