* small updates (send button in edit window)
[modest] / src / gtk2 / modest-ui.c
index 7a95ca8..834b0dc 100644 (file)
@@ -56,6 +56,8 @@ struct _ModestUIPrivate {
         ModestAccountMgr      *account_mgr;
        ModestWidgetFactory   *widget_factory;  
         ModestTnyAccountStore *account_store;
+
+       GtkWidget              *main_window;
 };
 
 #define MODEST_UI_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
@@ -89,6 +91,7 @@ modest_ui_get_type (void)
                        sizeof(ModestUI),
                        1,              /* n_preallocs */
                        (GInstanceInitFunc) modest_ui_init,
+                       NULL
                };
                my_type = g_type_register_static (G_TYPE_OBJECT,
                                                  "ModestUI",
@@ -123,6 +126,8 @@ modest_ui_init (ModestUI *obj)
        priv->account_mgr    = NULL;
        priv->conf           = NULL;
        priv->widget_factory = NULL;
+
+       priv->main_window    = NULL;
 }
 
 
@@ -181,7 +186,8 @@ modest_ui_new (ModestConf *modest_conf)
                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;
@@ -190,19 +196,33 @@ modest_ui_new (ModestConf *modest_conf)
        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;
 }