+ GObject *obj;
+ ModestMainWindow *self;
+ ModestMainWindowPrivate *priv;
+ ModestWindowPrivate *parent_priv;
+ GtkWidget *main_vbox;
+ GtkWidget *status_hbox;
+ GtkWidget *header_win, *folder_win;
+ GtkActionGroup *action_group;
+ GError *error = NULL;
+
+ obj = g_object_new(MODEST_TYPE_MAIN_WINDOW, NULL);
+ self = MODEST_MAIN_WINDOW(obj);
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+ parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
+
+ /* ***************** */
+ parent_priv->ui_manager = gtk_ui_manager_new();
+ action_group = gtk_action_group_new ("ModestMainWindowActions");
+
+ /* Add common actions */
+ gtk_action_group_add_actions (action_group,
+ modest_action_entries,
+ G_N_ELEMENTS (modest_action_entries),
+ obj);
+
+ gtk_ui_manager_insert_action_group (parent_priv->ui_manager, action_group, 0);
+ g_object_unref (action_group);
+
+ /* Load the UI definition */
+ gtk_ui_manager_add_ui_from_file (parent_priv->ui_manager,
+ MODEST_UIDIR "modest-main-window-ui.xml", &error);
+ if (error != NULL) {
+ g_printerr ("modest: could not merge modest-main-window-ui.xml: %s", error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ /* *************** */
+
+ /* Add accelerators */
+ gtk_window_add_accel_group (GTK_WINDOW (obj),
+ gtk_ui_manager_get_accel_group (parent_priv->ui_manager));
+
+ /* Toolbar / Menubar */
+ parent_priv->toolbar = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar");
+ parent_priv->menubar = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/MenuBar");
+
+ gtk_toolbar_set_tooltips (GTK_TOOLBAR (parent_priv->toolbar), TRUE);
+ folder_win = wrapped_in_scrolled_window (GTK_WIDGET(self->folder_view), FALSE);
+ header_win = wrapped_in_scrolled_window (GTK_WIDGET(self->header_view), FALSE);
+
+ /* paned */
+ priv->folder_paned = gtk_vpaned_new ();
+ priv->msg_paned = gtk_vpaned_new ();
+ priv->main_paned = gtk_hpaned_new ();
+ gtk_paned_add1 (GTK_PANED(priv->main_paned), folder_win);
+ gtk_paned_add2 (GTK_PANED(priv->main_paned), priv->msg_paned);
+ gtk_paned_add1 (GTK_PANED(priv->msg_paned), header_win);
+ gtk_paned_add2 (GTK_PANED(priv->msg_paned), GTK_WIDGET(self->msg_preview));
+
+ gtk_widget_show (GTK_WIDGET(self->header_view));
+
+ /* status bar / progress */
+ status_hbox = gtk_hbox_new (FALSE, 0);
+ gtk_box_pack_start (GTK_BOX(status_hbox), priv->folder_info_label, FALSE,FALSE, 6);
+ gtk_box_pack_start (GTK_BOX(status_hbox), self->status_bar, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(status_hbox), self->progress_bar,FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX(status_hbox), priv->online_toggle,FALSE, FALSE, 0);
+
+ /* putting it all together... */
+ main_vbox = gtk_vbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX(main_vbox), parent_priv->menubar, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX(main_vbox), parent_priv->toolbar, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_paned, TRUE, TRUE,0);
+ gtk_box_pack_start (GTK_BOX(main_vbox), status_hbox, FALSE, FALSE, 0);
+
+ gtk_container_add (GTK_CONTAINER(obj), main_vbox);
+ restore_sizes (MODEST_MAIN_WINDOW(obj));