* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <modest-widget-memory.h>
#include "modest-main-window.h"
#include "modest-account-view-window.h"
-#include "modest-msg-window.h"
+#include "modest-edit-msg-window.h"
/* 'private'/'protected' functions */
static void modest_main_window_class_init (ModestMainWindowClass *klass);
typedef struct _ModestMainWindowPrivate ModestMainWindowPrivate;
struct _ModestMainWindowPrivate {
+
GtkWidget *toolbar;
GtkWidget *menubar;
static void
modest_main_window_finalize (GObject *obj)
{
- ModestMainWindowPrivate *priv;
-
+ ModestMainWindowPrivate *priv;
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(obj);
-
if (priv->widget_factory) {
g_object_unref (G_OBJECT(priv->widget_factory));
priv->widget_factory = NULL;
}
-
if (priv->conf) {
g_object_unref (G_OBJECT(priv->conf));
priv->conf = NULL;
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
account_win = modest_account_view_window_new (priv->conf,
priv->widget_factory);
+
+ gtk_window_set_transient_for (GTK_WINDOW(account_win),
+ GTK_WINDOW(self));
+
gtk_widget_show (account_win);
}
on_menu_new_message (ModestMainWindow *self, guint action, GtkWidget *widget)
{
GtkWidget *msg_win;
+ ModestMainWindowPrivate *priv;
- msg_win = modest_msg_window_new (MODEST_MSG_WINDOW_TYPE_NEW,
- NULL);
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+
+ msg_win = modest_edit_msg_window_new (priv->conf,
+ MODEST_EDIT_TYPE_NEW,
+ NULL);
gtk_widget_show (msg_win);
}
static void
on_menu_quit (ModestMainWindow *self, guint action, GtkWidget *widget)
{
- save_sizes (self);
gtk_main_quit ();
}
restore_sizes (ModestMainWindow *self)
{
ModestMainWindowPrivate *priv;
-
- int fol_x,fol_pos;
- int msg_x,msg_pos;
- int main_y;
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
-
- /* heigth of the main paned */
- main_y = modest_conf_get_int_or_default (priv->conf,
- MODEST_MAIN_PANED_HEIGHT,
- MODEST_MAIN_PANED_HEIGHT_DEFAULT);
- /* size of the folder pane */
- fol_x = modest_conf_get_int_or_default (priv->conf,
- MODEST_FOLDER_PANED_WIDTH,
- MODEST_FOLDER_PANED_WIDTH_DEFAULT);
- fol_pos = modest_conf_get_int_or_default (priv->conf,
- MODEST_FOLDER_PANED_DIVIDER_POS,
- MODEST_FOLDER_PANED_DIVIDER_POS_DEFAULT);
- gtk_paned_set_position (GTK_PANED(priv->folder_paned), fol_pos);
- /* size of the msg pane */
- msg_x = modest_conf_get_int_or_default (priv->conf,
- MODEST_MSG_PANED_WIDTH,
- MODEST_MSG_PANED_WIDTH_DEFAULT);
- msg_pos = modest_conf_get_int_or_default (priv->conf,
- MODEST_MSG_PANED_DIVIDER_POS,
- MODEST_MSG_PANED_DIVIDER_POS_DEFAULT);
- gtk_paned_set_position (GTK_PANED(priv->msg_paned), msg_pos);
-
- g_message ("(%d, %d, %d %d, %d)", main_y, fol_x, fol_pos, msg_x, msg_pos);
-
- //gtk_widget_set_size_request (GTK_WIDGET(self), fol_x + msg_x, main_y+50);
- gtk_widget_set_size_request (priv->main_paned, fol_x + msg_x, main_y);
- gtk_paned_set_position (GTK_PANED(priv->main_paned), fol_x);
+ modest_widget_memory_restore_settings (priv->conf,GTK_WIDGET(self),
+ "modest-main-window");
+ modest_widget_memory_restore_settings (priv->conf, GTK_WIDGET(priv->folder_paned),
+ "modest-folder-paned");
+ modest_widget_memory_restore_settings (priv->conf, GTK_WIDGET(priv->msg_paned),
+ "modest-msg-paned");
+ modest_widget_memory_restore_settings (priv->conf, GTK_WIDGET(priv->main_paned),
+ "modest-main-paned");
+
}
save_sizes (ModestMainWindow *self)
{
ModestMainWindowPrivate *priv;
- int fol_pos, msg_pos;
- int height, width;
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
- height = GTK_WIDGET(priv->main_paned)->allocation.height;
- modest_conf_set_int (priv->conf, MODEST_MAIN_PANED_HEIGHT, height, NULL);
+ modest_widget_memory_save_settings (priv->conf,GTK_WIDGET(self),
+ "modest-main-window");
+ modest_widget_memory_save_settings (priv->conf, GTK_WIDGET(priv->folder_paned),
+ "modest-folder-paned");
+ modest_widget_memory_save_settings (priv->conf, GTK_WIDGET(priv->msg_paned),
+ "modest-msg-paned");
+ modest_widget_memory_save_settings (priv->conf, GTK_WIDGET(priv->main_paned),
+ "modest-main-paned");
- width = GTK_WIDGET(priv->folder_paned)->allocation.width;
- fol_pos = gtk_paned_get_position (GTK_PANED(priv->folder_paned));
- modest_conf_set_int (priv->conf, MODEST_FOLDER_PANED_WIDTH, width, NULL);
- modest_conf_set_int (priv->conf, MODEST_FOLDER_PANED_DIVIDER_POS, fol_pos, NULL);
- width = GTK_WIDGET(priv->msg_paned)->allocation.width;
- msg_pos = gtk_paned_get_position (GTK_PANED(priv->msg_paned));
- modest_conf_set_int (priv->conf, MODEST_MSG_PANED_WIDTH, width, NULL);
- modest_conf_set_int (priv->conf, MODEST_MSG_PANED_DIVIDER_POS, msg_pos, NULL);
+
}
return win;
}
+
+static gboolean
+on_delete_event (GtkWidget *widget, GdkEvent *event, ModestMainWindow *self)
+{
+ save_sizes (self);
+ return TRUE;
+}
+
+
+
+
GtkWidget*
modest_main_window_new (ModestWidgetFactory *factory, ModestConf *conf)
{
priv->main_paned = gtk_hpaned_new ();
gtk_paned_add1 (GTK_PANED(priv->main_paned), priv->folder_paned);
gtk_paned_add2 (GTK_PANED(priv->main_paned), priv->msg_paned);
- gtk_paned_add1 (GTK_PANED(priv->folder_paned),
- gtk_label_new (_("Favorites")));
+// gtk_paned_add1 (GTK_PANED(priv->folder_paned),
+// gtk_label_new (_("Favorites")));
gtk_paned_add2 (GTK_PANED(priv->folder_paned), folder_win);
gtk_paned_add1 (GTK_PANED(priv->msg_paned), header_win);
gtk_paned_add2 (GTK_PANED(priv->msg_paned), GTK_WIDGET(priv->msg_preview));
gtk_widget_show (GTK_WIDGET(priv->header_view));
/* status bar / progress */
- status_hbox = gtk_hbox_new (TRUE, 5);
+ status_hbox = gtk_hbox_new (TRUE, 6);
gtk_box_pack_start (GTK_BOX(status_hbox),
modest_widget_factory_get_status_bar(factory),
- FALSE, TRUE, 5);
+ TRUE, TRUE, 6);
gtk_box_pack_start (GTK_BOX(status_hbox),
modest_widget_factory_get_progress_bar(factory),
- FALSE, TRUE, 5);
-
+ TRUE, FALSE, 6);
+ gtk_box_pack_end (GTK_BOX(status_hbox),
+ modest_widget_factory_get_online_toggle(factory),
+ FALSE, FALSE, 6);
+
/* putting it all together... */
- main_vbox = gtk_vbox_new (FALSE, 2);
- gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 2);
- gtk_box_pack_start (GTK_BOX(main_vbox), priv->toolbar, FALSE, TRUE, 5);
- gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_paned, TRUE, TRUE, 2);
- gtk_box_pack_start (GTK_BOX(main_vbox), status_hbox, FALSE, FALSE, 5);
+ main_vbox = gtk_vbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX(main_vbox), priv->toolbar, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_paned, TRUE, TRUE, 6);
+ gtk_box_pack_start (GTK_BOX(main_vbox), status_hbox, FALSE, FALSE, 6);
gtk_container_add (GTK_CONTAINER(obj), main_vbox);
+ restore_sizes (MODEST_MAIN_WINDOW(obj));
+
gtk_widget_show_all (main_vbox);
-
- gtk_window_set_title (GTK_WINDOW(obj), "Modest");
+ g_signal_connect (G_OBJECT(obj), "delete-event",
+ G_CALLBACK(on_delete_event), obj);
- restore_sizes (MODEST_MAIN_WINDOW(obj));
return GTK_WIDGET(obj);
}