* src/gnome/modest-account-view-window.c:
authorJose Dapena Paz <jdapena@igalia.com>
Thu, 31 Jan 2008 16:48:15 +0000 (16:48 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Thu, 31 Jan 2008 16:48:15 +0000 (16:48 +0000)
        * Now it's a GtkDialog. Fits better with common and maemo code.
        * Close button is now implemented as an action button of the
          dialog.
        * Added scrolled window to accounts tree view. It also provides
          a border (better HIG compliance).
        * Other layout changes to fit better HIG.
        * Use translation strings from modest.po.
* src/gnome/modest-main-window-ui.h
        * Add more maemo standard menu actions.
* src/gnome/modest-msg-edit-window.c:
        * Some changes to improve HIG compliance.
        * Scrolled window for message.
        * Not it's gtkhtml based.
        * It's a WIP, no menus working and a lot of issues not tested
          yet. But it's a preliminar work for the future gnome editor.
* src/gnome/modest-platform.c:
        * Now folder view does not get headers.
* src/gnome/modest-main-window.c:
        * Added ui dimming rules support.
        * Added menu option and shortcut for toggling folders view.
        * Implemented style methods.
        * Now default view for header view is compact view instead of
          columns view.
        * Set toolbar better to set important hint.
        * Added translation domain for ui manager.
* src/gnome/modest-icon-names.h:
        * Stock for split view.
* src/gnome/ui/modest-msg-view-window-ui.xml:
        * More maemo menus also in modest.
* src/gnome/ui/modest-main-window-ui.xml:
        * More maemo menus also in modest.
* src/gnome/modest-msg-view-window.c:
        * Adaptation to common maemo actions.
        * Changed layout to fit better with HIG.
        * Support for ui dimming rules.
        * Misc changes for fixing build.
* src/gnome/modest-account-assistant.c:
        * WIP. Moving to HIG and adding missing functionality.
        * Use maemo translation strings where it's ok.
        * Fix some erros in GtkAssistant usage.
* src/modest-init.c:
        * Now split view is common to gnome and maemo.

pmo-trunk-r4120

src/gnome/modest-account-assistant.c
src/gnome/modest-account-view-window.c
src/gnome/modest-icon-names.h
src/gnome/modest-main-window-ui.h
src/gnome/modest-main-window.c
src/gnome/modest-msg-edit-window.c
src/gnome/modest-msg-view-window.c
src/gnome/modest-platform.c
src/gnome/ui/modest-main-window-ui.xml
src/gnome/ui/modest-msg-view-window-ui.xml
src/modest-init.c

index 917db34..000a5f5 100644 (file)
@@ -59,6 +59,9 @@ struct _ModestAccountAssistantPrivate {
        GtkWidget *account_name;
        GtkWidget *fullname;
        GtkWidget *email;
+       
+       GtkWidget *username;
+       GtkWidget *password;
        
        GtkWidget *store_widget;
        GtkWidget *transport_widget;
@@ -129,22 +132,24 @@ add_intro_page (ModestAccountAssistant *assistant)
 {
        GtkWidget *page, *label;
        
-       page = gtk_vbox_new (FALSE, 6);
+       page = gtk_vbox_new (FALSE, 12);
        
-       label = gtk_label_new (
-               _("Welcome to the account assistant\n\n"
-                 "It will help to set up a new e-mail account\n"));
-       gtk_box_pack_start (GTK_BOX(page), label, FALSE, FALSE, 6);
+       label = gtk_label_new (_("mcen_ia_emailsetup_intro"));
+       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+       gtk_box_pack_start (GTK_BOX(page), label, FALSE, FALSE, 0);
+       gtk_widget_set_size_request (label, 400, -1);
        gtk_widget_show_all (page);
        
        gtk_assistant_append_page (GTK_ASSISTANT(assistant), page);
                
        gtk_assistant_set_page_title (GTK_ASSISTANT(assistant), page,
-                                     _("Modest Account Assistant"));
+                                     _("mcen_ti_emailsetup_welcome"));
        gtk_assistant_set_page_type (GTK_ASSISTANT(assistant), page,
                                     GTK_ASSISTANT_PAGE_INTRO);
        gtk_assistant_set_page_complete (GTK_ASSISTANT(assistant),
                                         page, TRUE);
+
+       return page;
 }
 
 
@@ -180,58 +185,151 @@ identity_page_update_completeness (GtkEditable *editable,
 
        /* FIXME: regexp check for email address */
        txt = gtk_entry_get_text (GTK_ENTRY(priv->email));
-       if (!modest_text_utils_validate_email_address (txt, NULL))
+       if (!modest_text_utils_validate_email_address (txt, NULL)) {
                set_current_page_complete (self, FALSE);
-       else
-               set_current_page_complete (self, TRUE);
+               return;
+       }
+
+       txt = gtk_entry_get_text (GTK_ENTRY(priv->username));
+       if (!txt || txt[0] == '\0') {
+               set_current_page_complete (self, FALSE);
+               return;
+       }
+       set_current_page_complete (self, TRUE);
 }
 
+static GtkWidget *
+field_name_label (const gchar *text)
+{
+       GtkWidget *label;
+       gchar *fixed_text;
+
+       fixed_text = g_strconcat (text, ":", NULL);
+       label = gtk_label_new (fixed_text);
+       g_free (fixed_text);
+       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+
+       return label;
+}
 
 static void
 add_identity_page (ModestAccountAssistant *self)
 {
-       GtkWidget *page, *label, *table;
+       GtkWidget *page, *label, *table, *frame;
+       GtkWidget *alignment;
        ModestAccountAssistantPrivate *priv;
 
        priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
 
-       priv->fullname = gtk_entry_new_with_max_length (40);
-       priv->email    = gtk_entry_new_with_max_length (40);
+       priv->account_name = gtk_entry_new ();
+       gtk_entry_set_max_length (GTK_ENTRY (priv->fullname), 40);
+       priv->fullname = gtk_entry_new ();
+       gtk_entry_set_max_length (GTK_ENTRY (priv->fullname), 40);
+       priv->email    = gtk_entry_new ();
+       gtk_entry_set_width_chars (GTK_ENTRY (priv->email), 40);
+       priv->username = gtk_entry_new ();
+       gtk_entry_set_width_chars (GTK_ENTRY (priv->username), 40);
+       priv->password = gtk_entry_new ();
+       gtk_entry_set_width_chars (GTK_ENTRY (priv->password), 40);
+       gtk_entry_set_visibility (GTK_ENTRY (priv->password), FALSE);
        
-       page = gtk_vbox_new (FALSE, 6);
+       page = gtk_vbox_new (FALSE, 24);
 
        label = gtk_label_new (
-               _("Please enter your name and your e-mail address below.\n\n"));
-       gtk_box_pack_start (GTK_BOX(page), label, FALSE, FALSE, 6);
-       
+               _("Please enter below the name for the account you're creating."));
+       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
+       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 0, 12, 12);
+       gtk_container_add (GTK_CONTAINER (alignment), label);
+       gtk_box_pack_start (GTK_BOX(page), alignment, FALSE, FALSE, 0);
+       
+       table = gtk_table_new (1,2, FALSE);
+       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+       gtk_table_set_row_spacings (GTK_TABLE (table), 1);
+       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Account name")),
+                                  0,1,0,1);
+       gtk_table_attach_defaults (GTK_TABLE(table),priv->account_name,
+                                  1,2,0,1);
+       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
+       gtk_container_add (GTK_CONTAINER (alignment), table);
+       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 0, 12, 0);
+       gtk_box_pack_start (GTK_BOX(page), alignment, FALSE, FALSE, 0);
+
+       frame = gtk_frame_new (NULL);
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL (label), _("<b>Public information </b>"));
+       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
+       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
        table = gtk_table_new (2,2, FALSE);
-       gtk_table_attach_defaults (GTK_TABLE(table),gtk_label_new (_("Full name")),
+       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
+       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Full name")),
                                   0,1,0,1);
-       gtk_table_attach_defaults (GTK_TABLE(table),gtk_label_new (_("E-mail address")),
+       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Email address")),
                                   0,1,1,2);
        gtk_table_attach_defaults (GTK_TABLE(table),priv->fullname,
                                   1,2,0,1);
        gtk_table_attach_defaults (GTK_TABLE(table),priv->email,
                                   1,2,1,2);
+       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
+       gtk_container_add (GTK_CONTAINER (alignment), table);
+       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
+       gtk_container_add (GTK_CONTAINER (frame), alignment);
+       gtk_box_pack_start (GTK_BOX(page), frame, FALSE, FALSE, 0);
+
+
+       frame = gtk_frame_new (NULL);
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL (label), _("<b>Server account </b>"));
+       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
+       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
+       table = gtk_table_new (2,2, FALSE);
+       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
+       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("User name")),
+                                  0,1,0,1);
+       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Password")),
+                                  0,1,1,2);
+       gtk_table_attach_defaults (GTK_TABLE(table),priv->username,
+                                  1,2,0,1);
+       gtk_table_attach_defaults (GTK_TABLE(table),priv->password,
+                                  1,2,1,2);
+       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
+       gtk_container_add (GTK_CONTAINER (alignment), table);
+       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
+       gtk_container_add (GTK_CONTAINER (frame), alignment);
+       gtk_box_pack_start (GTK_BOX(page), frame, FALSE, FALSE, 0);
 
        g_signal_connect (G_OBJECT(priv->fullname), "changed",
                          G_CALLBACK(identity_page_update_completeness),
                          self);
+       g_signal_connect (G_OBJECT(priv->username), "changed",
+                         G_CALLBACK(identity_page_update_completeness),
+                         self);
+       g_signal_connect (G_OBJECT(priv->password), "changed",
+                         G_CALLBACK(identity_page_update_completeness),
+                         self);
        g_signal_connect (G_OBJECT(priv->email), "changed",
                          G_CALLBACK(identity_page_update_completeness),
                          self);
+       g_signal_connect (G_OBJECT(priv->account_name), "changed",
+                         G_CALLBACK(identity_page_update_completeness),
+                         self);
        
-       gtk_box_pack_start (GTK_BOX(page), table, FALSE, FALSE, 6);
-       gtk_widget_show_all (page);
        
-       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
+       gtk_container_add (GTK_CONTAINER (alignment), page);
+       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 12, 12, 12);
+       gtk_widget_show_all (alignment);
+       gtk_assistant_append_page (GTK_ASSISTANT(self), alignment);
        
-       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
+       gtk_assistant_set_page_title (GTK_ASSISTANT(self), alignment,
                                      _("Identity"));
-       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
-                                    GTK_ASSISTANT_PAGE_INTRO);
+       gtk_assistant_set_page_type (GTK_ASSISTANT(self), alignment,
+                                    GTK_ASSISTANT_PAGE_CONTENT);
        gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
-                                        page, FALSE);
+                                        alignment, FALSE);
 }      
 
 
@@ -337,7 +435,7 @@ add_receiving_page (ModestAccountAssistant *self)
        gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
                                      _("Receiving mail"));
        gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
-                                    GTK_ASSISTANT_PAGE_INTRO);
+                                    GTK_ASSISTANT_PAGE_CONTENT);
        gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
                                         page, FALSE);
        gtk_widget_show_all (page);
index 710e990..65db235 100644 (file)
@@ -63,7 +63,7 @@ struct _ModestAccountViewWindowPrivate {
                                                         MODEST_TYPE_ACCOUNT_VIEW_WINDOW, \
                                                         ModestAccountViewWindowPrivate))
 /* globals */
-static GtkWindowClass *parent_class = NULL;
+static GtkDialogClass *parent_class = NULL;
 
 /* uncomment the following if you have defined any signals */
 /* static guint signals[LAST_SIGNAL] = {0}; */
@@ -85,7 +85,7 @@ modest_account_view_window_get_type (void)
                        (GInstanceInitFunc) modest_account_view_window_init,
                        NULL
                };
-               my_type = g_type_register_static (GTK_TYPE_WINDOW,
+               my_type = g_type_register_static (GTK_TYPE_DIALOG,
                                                  "ModestAccountViewWindow",
                                                  &my_info, 0);
        }
@@ -232,15 +232,6 @@ on_default_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
 }
 
 
-
-static void
-on_close_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
-{
-       gtk_widget_destroy (GTK_WIDGET(self));
-}
-
-
-
 static GtkWidget*
 button_box_new (ModestAccountViewWindow *self)
 {
@@ -285,20 +276,18 @@ button_box_new (ModestAccountViewWindow *self)
        return button_box;
 }
 
-
 static GtkWidget*
 window_vbox_new (ModestAccountViewWindow *self)
 {
        ModestAccountViewWindowPrivate *priv;
        GtkTreeSelection *sel;
        GtkWidget *main_hbox, *main_vbox, *button_box;
-       GtkWidget *close_button;
-       GtkWidget *close_hbox;
+       GtkWidget *scrolled_window;
 
        priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
 
-       main_vbox     = gtk_vbox_new (FALSE, 6);
-       main_hbox     = gtk_hbox_new (FALSE, 6);
+       main_vbox     = gtk_vbox_new (FALSE, 0);
+       main_hbox     = gtk_hbox_new (FALSE, 12);
        
        priv->account_view = modest_account_view_new (modest_runtime_get_account_mgr());
        gtk_widget_set_size_request (GTK_WIDGET(priv->account_view), 300, 400);
@@ -309,20 +298,14 @@ window_vbox_new (ModestAccountViewWindow *self)
        
        button_box = button_box_new (self);
        
-       gtk_box_pack_start (GTK_BOX(main_hbox), GTK_WIDGET(priv->account_view), TRUE, TRUE, 2);
-       gtk_box_pack_start (GTK_BOX(main_hbox), button_box, FALSE, FALSE,2);
-
-       gtk_box_pack_start (GTK_BOX(main_vbox), main_hbox, TRUE, TRUE, 2);
+       scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+       gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN);
+       gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (priv->account_view));
+       gtk_box_pack_start (GTK_BOX(main_hbox), scrolled_window, TRUE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX(main_hbox), button_box, FALSE, FALSE,0);
 
-       close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
-       g_signal_connect (G_OBJECT(close_button), "clicked",
-                         G_CALLBACK(on_close_button_clicked),
-                         self);
-       
-       close_hbox = gtk_hbox_new (FALSE, 2);
-       gtk_box_pack_end (GTK_BOX(close_hbox),
-                         close_button, FALSE, FALSE,2);
-       gtk_box_pack_end (GTK_BOX(main_vbox), close_hbox, FALSE, FALSE,2);
+       gtk_box_pack_start (GTK_BOX(main_vbox), main_hbox, TRUE, TRUE, 0);
 
        gtk_widget_show_all (main_vbox);
        return main_vbox;
@@ -338,14 +321,18 @@ modest_account_view_window_new (void)
        obj  = g_object_new(MODEST_TYPE_ACCOUNT_VIEW_WINDOW, NULL);
        priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(obj);
 
-       gtk_window_set_resizable (GTK_WINDOW(obj), FALSE);
-       gtk_window_set_title (GTK_WINDOW(obj), _("Accounts"));
+       gtk_window_set_resizable (GTK_WINDOW(obj), TRUE);
+       gtk_window_set_title (GTK_WINDOW(obj), _("mcen_ti_emailsetup_accounts"));
        gtk_window_set_type_hint (GTK_WINDOW(obj), GDK_WINDOW_TYPE_HINT_DIALOG);
+       gtk_window_set_default_size (GTK_WINDOW (obj), 640, 480);
        
        gtk_window_set_modal (GTK_WINDOW(obj), TRUE);
-               
-       gtk_container_add (GTK_CONTAINER(obj),
-                          window_vbox_new (MODEST_ACCOUNT_VIEW_WINDOW(obj)));
+                                    
+       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(obj)->vbox),
+                           window_vbox_new (MODEST_ACCOUNT_VIEW_WINDOW(obj)),
+                           TRUE, TRUE, 12);
+
+       gtk_dialog_add_button (GTK_DIALOG (obj), GTK_STOCK_CLOSE, GTK_RESPONSE_OK);
                
        return GTK_WIDGET(obj);
 }
index 970839c..6742f16 100644 (file)
@@ -92,6 +92,7 @@
 /* #define  MODEST_TOOLBAR_ICON_PREV           PIXMAP_PREFIX "back.png" */
 #define  MODEST_TOOLBAR_ICON_STOP              PIXMAP_PREFIX "stock-stop.png"
 #define  MODEST_TOOLBAR_ICON_FORMAT_BULLETS     PIXMAP_PREFIX "qgn_list_gene_bullets"
+#define  MODEST_TOOLBAR_ICON_SPLIT_VIEW         PIXMAP_PREFIX "qgn_toolb_rss_fldonoff"
 #define  MODEST_TOOLBAR_ICON_BOLD               GTK_STOCK_BOLD
 #define  MODEST_TOOLBAR_ICON_ITALIC             GTK_STOCK_ITALIC
 
 #define  MODEST_STOCK_NEXT         "modest-stock-next"
 #define  MODEST_STOCK_PREV         "modest-stock-prev"
 #define  MODEST_STOCK_STOP         "modest-stock-stop"
+#define  MODEST_STOCK_SPLIT_VIEW   "modest-stock-split-view"
 
 #endif  /*__MODEST_ICON_NAMES_H__*/
index 959ade5..a6074f8 100644 (file)
@@ -41,50 +41,70 @@ G_BEGIN_DECLS
 static const GtkActionEntry modest_action_entries [] = {
 
        /* Toplevel menus */
-       { "File", NULL, N_("_File") },
-       { "Edit", NULL, N_("_Edit") },
-       { "Actions", NULL, N_("_Actions") },
+       { "Email",       NULL, N_("mcen_me_inbox_email"),        NULL, NULL, NULL },
+       { "Edit",        NULL, N_("mcen_me_inbox_edit"),         NULL, NULL, G_CALLBACK (modest_ui_actions_on_edit_menu_activated) },
+       { "View",        NULL, N_("mcen_me_inbox_view"),         NULL, NULL, G_CALLBACK (modest_ui_actions_on_view_menu_activated) },
+       { "Tools",       NULL, N_("mcen_me_inbox_tools"),        NULL, NULL, G_CALLBACK (modest_ui_actions_on_tools_menu_activated) },
+       { "Attachments", NULL, N_("mcen_me_viewer_attachments"), NULL, NULL, G_CALLBACK (modest_ui_actions_on_attachment_menu_activated) },
        { "Options", NULL, N_("_Options") },
-       { "Email", NULL, N_("E_mail") },
+       { "Zoom",        NULL, N_("Zoom") },
        { "Help", NULL, N_("_Help") },
 
-       /* FILE */
-       { "FileNew",    MODEST_STOCK_NEW_MAIL,     N_("_New"),     "<CTRL>N", N_("Compose new message"),  G_CALLBACK (modest_ui_actions_on_new_msg) },
-       { "FileOpen",   GTK_STOCK_OPEN,    N_("_Open"),    "<CTRL>O", N_("Open a message"), G_CALLBACK (modest_ui_actions_on_open) },
-       { "FileSave",   GTK_STOCK_SAVE,    N_("_Save"),    "<CTRL>S", N_("Save a message"),       NULL },
-       { "FileSaveAs", GTK_STOCK_SAVE_AS, N_("Save _As"), NULL,      N_("Save a message as"),    NULL },
-       { "FileQuit",   GTK_STOCK_QUIT,    N_("_Quit"),    "<CTRL>Q", N_("Exit the application"), G_CALLBACK (modest_ui_actions_on_quit) },
+       /* Email */
+       { "EmailNew", NULL, N_("mcen_me_inbox_new") }, /* submenu */
+       { "EmailNewMessage",  NULL,  N_("mcen_me_inbox_message"),      "<CTRL>N", NULL,   G_CALLBACK (modest_ui_actions_on_new_msg) },
+       { "EmailNewDefault", NULL, N_("mcen_me_viewer_newemail"), "<CTRL>N", NULL, G_CALLBACK (modest_ui_actions_on_new_msg) },
+       { "EmailNewFolder",   NULL,  N_("mcen_me_inbox_folder"),       NULL,      NULL,   G_CALLBACK (modest_ui_actions_on_new_folder) },
+       { "EmailOpen",        NULL,  N_("mcen_me_inbox_open"),          "<CTRL>O", NULL,   G_CALLBACK (modest_ui_actions_on_open) },
+       { "EmailReply",       NULL,  N_("mcen_me_inbox_reply"),         "<CTRL>R",      NULL,   G_CALLBACK (modest_ui_actions_on_reply) },
+       { "EmailReplyAll",    NULL,  N_("mcen_me_inbox_replytoall"),      NULL,      NULL,   G_CALLBACK (modest_ui_actions_on_reply_all) },
+       { "EmailForward",     NULL,  N_("mcen_me_inbox_forward"),      "<CTRL>D",      NULL,   G_CALLBACK (modest_ui_actions_on_forward) },
+       { "EmailRenameFolder", NULL, N_("mcen_me_user_renamefolder"), NULL, NULL, G_CALLBACK (modest_ui_actions_on_rename_folder) },
+       { "EmailDelete",      NULL,  N_("mcen_me_inbox_delete"),    "BackSpace",      NULL,   G_CALLBACK (modest_ui_actions_on_delete_message_or_folder) },
+       { "EmailContents",    NULL,  N_("mcen_me_inbox_retrieve_contents"), NULL,      NULL,   G_CALLBACK (modest_ui_actions_on_retrieve_msg_contents) },
+       { "EmailDetails",     NULL,  N_("mcen_me_inbox_messagedetails"),        NULL,      NULL,   G_CALLBACK (modest_ui_actions_on_details) },
+       { "EmailPurgeAttachments", NULL, N_("mcen_me_inbox_remove_attachments"), NULL,  NULL,   G_CALLBACK (modest_ui_actions_remove_attachments) },
+       { "CloseWindow",          NULL,     N_("mcen_me_inbox_close_window"), "<CTRL>W", NULL,  G_CALLBACK (modest_ui_actions_on_close_window) },
+       { "CloseAllWindows",      NULL,     N_("mcen_me_inbox_close_windows"), "<CTRL>Q", NULL,  G_CALLBACK (modest_ui_actions_on_quit) },
 
        /* EDIT */
-       { "EditUndo",        GTK_STOCK_UNDO,   N_("_Undo"), "<CTRL>Z",        N_("Undo last action"),  NULL },
-       { "EditRedo",        GTK_STOCK_REDO,   N_("_Redo"), "<shift><CTRL>Z", N_("Redo previous action"),  NULL },
-       { "Cut",         GTK_STOCK_CUT,    N_("Cut"),   "<CTRL>X",        N_("_Cut"), G_CALLBACK (modest_ui_actions_on_cut)   },
-       { "Copy",        GTK_STOCK_COPY,   N_("Copy"),  "<CTRL>C",        N_("Copy"), G_CALLBACK (modest_ui_actions_on_copy) },
-       { "Paste",       GTK_STOCK_PASTE,  N_("Paste"), "<CTRL>V",        N_("Paste"), G_CALLBACK (modest_ui_actions_on_paste) },
-       { "EditDelete",      GTK_STOCK_DELETE, N_("_Delete"),      "<CTRL>Q",         N_("Delete"), NULL },
-       { "SelectAll",   NULL,         N_("Select all"),   "<CTRL>A",         N_("Select all"), G_CALLBACK (modest_ui_actions_on_select_all) },
-       { "EditDeselectAll", NULL,             N_("Deselect all"), "<Shift><CTRL>A",  N_("Deselect all"), NULL },
+       { "EditCut",         NULL,      N_("mcen_me_inbox_cut"),          "<CTRL>X",    NULL, G_CALLBACK (modest_ui_actions_on_cut) },
+       { "EditCopy",        NULL,      N_("mcen_me_inbox_copy"),         "<CTRL>C",    NULL, G_CALLBACK (modest_ui_actions_on_copy) },
+       { "EditPaste",       NULL,      N_("mcen_me_inbox_paste"),        "<CTRL>V",    NULL, G_CALLBACK (modest_ui_actions_on_paste) },
+       { "EditSelectAll",   NULL,      N_("mcen_me_viewer_selectall"),    "<CTRL>A",        NULL, G_CALLBACK (modest_ui_actions_on_select_all) },
+       { "EditMarkAsRead", NULL,      N_("mcen_me_inbox_mark_as_read"),       NULL,      NULL, G_CALLBACK (modest_ui_actions_on_mark_as_read) },
+       { "EditMarkAsUnread", NULL,      N_("mcen_me_inbox_mark_as_unread"),       NULL,          NULL, G_CALLBACK (modest_ui_actions_on_mark_as_unread) },
+       { "EditMoveTo",      NULL,      N_("mcen_me_inbox_moveto"),    NULL,      NULL, G_CALLBACK (modest_ui_actions_on_move_to) },
 
-       /* VIEW */
-       { "ToggleView",        GTK_STOCK_CDROM,   N_("_Toggle view"), NULL,        N_("Toggle the list view"),  G_CALLBACK(modest_ui_actions_toggle_header_list_view) },
-       /* ACTIONS */
-       { "ActionsNew",         MODEST_STOCK_NEW_MAIL, N_("_New Message"),   NULL, N_("Compose a new message"), G_CALLBACK (modest_ui_actions_on_new_msg) },
-       { "ActionsReply",       MODEST_STOCK_REPLY, N_("_Reply"),         NULL, N_("Reply to a message"), G_CALLBACK (modest_ui_actions_on_reply) },
-       { "ActionsReplyAll",    MODEST_STOCK_REPLY_ALL, N_("Reply to all"),   NULL, N_("Reply to all"), G_CALLBACK (modest_ui_actions_on_reply_all) },
-       { "ActionsForward",     MODEST_STOCK_FORWARD, N_("_Forward"),       NULL, N_("Forward a message"), G_CALLBACK (modest_ui_actions_on_forward) },
-       { "ActionsBounce",      NULL, N_("_Bounce"),        NULL, N_("Bounce a message"),          NULL },
-       { "ActionsSendReceive", GTK_STOCK_REFRESH, N_("Send/Receive"),   NULL, N_("Send and receive messages"), G_CALLBACK (modest_ui_actions_on_send_receive) },
-       { "ActionsDelete",      GTK_STOCK_DELETE, N_("Delete message"), NULL, N_("Delete messages"), G_CALLBACK (modest_ui_actions_on_delete_message) },
-       { "ActionsFolderNew",   NULL, N_("New Folder"),   NULL, N_("Create a new folder"), G_CALLBACK (modest_ui_actions_on_new_folder) },
-       { "ActionsFolderDelete",   NULL, N_("Delete Folder"),   NULL, N_("Delete the folder"), G_CALLBACK (modest_ui_actions_on_delete_folder) },
-       { "ActionsFolderRename",   NULL, N_("Rename Folder"),   NULL, N_("Rename the folder"), G_CALLBACK (modest_ui_actions_on_rename_folder) },
-       { "ActionsFolderMoveToTrash",   NULL, N_("Move Folder to Trash"),   NULL, N_("Move folder to Trash"), G_CALLBACK (modest_ui_actions_on_move_folder_to_trash_folder) },
+       /* View */
+       { "ViewSort",            NULL,        N_("mcen_me_inbox_sort"),     NULL,      NULL,  G_CALLBACK (modest_ui_actions_on_sort) },
+       { "ViewPreviousMessage", NULL,    N_("mcen_me_viewer_previousmessage"),         NULL, NULL, G_CALLBACK (modest_ui_actions_on_prev) },
+       { "ViewNextMessage", NULL, N_("mcen_me_viewer_nextmessage"),      NULL, NULL, G_CALLBACK (modest_ui_actions_on_next) },
 
+       /* VIEW */
+/*     { "ToggleView",        GTK_STOCK_CDROM,   N_("_Toggle view"), NULL,        N_("Toggle the list view"),  G_CALLBACK(modest_ui_actions_toggle_header_list_view) }, */
 
        /* GOTO */
        { "GotoPrevious", GTK_STOCK_GO_BACK, N_("Previous"), NULL, N_("Go to previous message"), G_CALLBACK (modest_ui_actions_on_prev) },
        { "GotoNext",     GTK_STOCK_GO_FORWARD, N_("Next"),     NULL, N_("Go to next message"), G_CALLBACK (modest_ui_actions_on_next) },
 
+       /* Tools */
+       { "ToolsSettings",        NULL,      N_("mcen_me_inbox_options"),                     NULL, NULL, G_CALLBACK (modest_ui_actions_on_settings) },
+       { "ToolsAccounts",        NULL,      N_("mcen_me_inbox_accounts"),                NULL, NULL,  G_CALLBACK(modest_ui_actions_on_accounts) },
+       { "ToolsSMTPServers",     NULL,      N_("mcen_me_inbox_globalsmtpservers"),                NULL, NULL,  G_CALLBACK(modest_ui_actions_on_smtp_servers) },
+       { "ToolsSendReceive", NULL, N_("mcen_me_inbox_sendandreceive") }, /* submenu */
+       { "ToolsSendReceiveAll",    NULL,      N_("mcen_me_inbox_sendandreceive_all"),          NULL, NULL, G_CALLBACK (modest_ui_actions_on_send_receive) },
+       { "ToolsSendReceiveCancelSending",  NULL,      N_("mcen_me_outbox_cancelsend"),        NULL, NULL,  G_CALLBACK (modest_ui_actions_cancel_send) },
+       { "ToolsContacts",            NULL,      N_("mcen_me_inbox_open_addressbook"),                      NULL, NULL,  G_CALLBACK (modest_ui_actions_on_open_addressbook) },
+       { "ToolsAddToContacts",            NULL,      N_("mcen_me_viewer_addtocontacts"),                      NULL, NULL,  G_CALLBACK (modest_ui_actions_on_add_to_contacts) },
+       { "ToolsSearchMessages",            NULL,      N_("mcen_me_inbox_search"),  "<CTRL>E", NULL,  G_CALLBACK (modest_ui_actions_on_search_messages) },
+       { "ToolsHelp", NULL, N_("mcen_me_inbox_help"), NULL, NULL, G_CALLBACK (modest_ui_actions_on_help) },
+
+       /* Attachments */
+       { "ViewAttachment", NULL, N_("mcen_me_viewer_view_attachment"), NULL, NULL, G_CALLBACK (modest_ui_actions_view_attachment) },
+       { "SaveAttachment", NULL, N_("mcen_me_viewer_save_attachments"), NULL, NULL, G_CALLBACK (modest_ui_actions_save_attachments) },
+       { "RemoveAttachment", NULL, N_("mcen_me_inbox_remove_attachments"), NULL, NULL, G_CALLBACK (modest_ui_actions_remove_attachments) },
+       
        /* OPTIONS */
        { "OptionsAddToContacts", NULL, N_("A_dd to accounts"), NULL, N_("Add selection to accounts"), G_CALLBACK (modest_ui_actions_on_add_to_contacts) },
        { "OptionsAccounts",  NULL, N_("_Accounts"), NULL, N_("Manage accounts"), G_CALLBACK (modest_ui_actions_on_accounts) },
@@ -93,6 +113,21 @@ static const GtkActionEntry modest_action_entries [] = {
 
        /* HELP */
        { "HelpAbout", GTK_STOCK_ABOUT, N_("About"), NULL, N_("About Modest"), G_CALLBACK (modest_ui_actions_on_about) },
+
+       /* Headers Toolbar */
+       { "ToolbarMessageNew",        MODEST_STOCK_NEW_MAIL,     N_("mcen_me_inbox_new"), NULL, NULL,  G_CALLBACK (modest_ui_actions_on_new_msg) },
+       { "ToolbarMessageReply",      MODEST_STOCK_REPLY,     N_("mcen_me_inbox_reply"),      "<CTRL>R", NULL,  G_CALLBACK (modest_ui_actions_on_reply) },
+       { "ToolbarMessageReplyAll",   MODEST_STOCK_REPLY_ALL,     N_("mcen_me_inbox_replytoall"),         NULL, NULL,  G_CALLBACK (modest_ui_actions_on_reply_all) },
+       { "ToolbarMessageForward",    MODEST_STOCK_FORWARD,     N_("mcen_me_inbox_forward"),      NULL, NULL,  G_CALLBACK (modest_ui_actions_on_forward) },
+       { "ToolbarSendReceive",       GTK_STOCK_REFRESH,   N_("mcen_me_inbox_sendandreceive"),      NULL, NULL,  G_CALLBACK (modest_ui_actions_on_send_receive) },
+       { "ToolbarDeleteMessage",     MODEST_STOCK_DELETE,     N_("mcen_me_inbox_delete"),             NULL, NULL,  G_CALLBACK (modest_ui_actions_on_delete_message_or_folder) },
+       { "ToolbarMessageBack",       GTK_STOCK_GO_BACK,    N_("qgn_toolb_gene_back"),         NULL, NULL, G_CALLBACK (modest_ui_actions_on_prev) },
+       { "ToolbarMessageNext",    GTK_STOCK_GO_FORWARD, N_("qgn_toolb_gene_forward"),      NULL, NULL, G_CALLBACK (modest_ui_actions_on_next) },
+
+};
+
+static const GtkToggleActionEntry modest_toggle_action_entries [] = {
+       { "ViewToggleFullscreen",     GTK_STOCK_FULLSCREEN, N_("mcen_me_inbox_fullscreen"), NULL, NULL, G_CALLBACK (modest_ui_actions_on_toggle_fullscreen), FALSE },
 };
 
 
index 8217bad..1174933 100644 (file)
@@ -43,6 +43,7 @@
 #include "modest-widget-memory.h"
 #include "modest-ui-actions.h"
 #include "modest-main-window-ui.h"
+#include "modest-main-window-ui-dimming.h"
 #include "modest-account-mgr.h"
 #include "modest-conf.h"
 #include <modest-tny-msg.h>
@@ -70,6 +71,7 @@ static gboolean     show_context_popup_menu             (ModestMainWindow *windo
                                                         GtkWidget        *menu);
 
 static void         connect_signals                      (ModestMainWindow *self);
+static void         setup_toolbar                        (ModestMainWindow *window);
 
 static void         on_queue_changed                     (ModestMailOperationQueue *queue,
                                                          ModestMailOperation *mail_op,
@@ -95,6 +97,8 @@ struct _ModestMainWindowPrivate {
        GtkWidget        *folder_paned;
        GtkWidget        *msg_paned;
        GtkWidget        *main_paned;
+       GtkWidget        *main_vbox;
+       GtkWidget        *header_win;
        
        GtkWidget        *online_toggle;
        GtkWidget        *folder_info_label;
@@ -103,6 +107,8 @@ struct _ModestMainWindowPrivate {
        ModestFolderView *folder_view;
        ModestMsgView    *msg_preview;
 
+       ModestMainWindowStyle style;
+
        GtkWidget        *status_bar;
        GtkWidget        *progress_bar;
 
@@ -118,6 +124,11 @@ struct _ModestMainWindowPrivate {
 /* globals */
 static GtkWindowClass *parent_class = NULL;
 
+static const GtkToggleActionEntry modest_main_window_toggle_action_entries [] = {
+       { "ToggleFolders",     MODEST_STOCK_SPLIT_VIEW, N_("mcen_me_inbox_hidefolders"), "<CTRL>t", NULL, G_CALLBACK (modest_ui_actions_toggle_folders_view), TRUE },
+};
+
+
 /* uncomment the following if you have defined any signals */
 /* static guint signals[LAST_SIGNAL] = {0}; */
 
@@ -209,6 +220,8 @@ modest_main_window_init (ModestMainWindow *obj)
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(priv->online_toggle), online);
        gtk_button_set_image (GTK_BUTTON(priv->online_toggle),icon);
 
+       priv->style = MODEST_MAIN_WINDOW_STYLE_SPLIT;
+
        /* Paned */
        priv->folder_paned = gtk_vpaned_new ();
        priv->main_paned = gtk_hpaned_new ();
@@ -229,7 +242,7 @@ modest_main_window_init (ModestMainWindow *obj)
 
        /* header view */
        priv->header_view  =
-               MODEST_HEADER_VIEW(modest_header_view_new (NULL, MODEST_HEADER_VIEW_STYLE_DETAILS));
+               MODEST_HEADER_VIEW(modest_header_view_new (NULL, MODEST_HEADER_VIEW_STYLE_TWOLINES));
        if (!priv->header_view)
                g_printerr ("modest: cannot instantiate header view\n");
 
@@ -239,6 +252,7 @@ modest_main_window_init (ModestMainWindow *obj)
                                         TNY_FOLDER_STORE_QUERY_OPTION_SUBSCRIBED);
 
        priv->folder_view = MODEST_FOLDER_VIEW (modest_folder_view_new (query));
+       gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->folder_view), FALSE);
        if (!priv->folder_view)
                g_printerr ("modest: cannot instantiate folder view\n");        
        g_object_unref (G_OBJECT (query));
@@ -420,7 +434,24 @@ wrapped_in_scrolled_window (GtkWidget *widget, gboolean needs_viewport)
        return win;
 }
 
+static void
+setup_toolbar (ModestMainWindow *self)
+{
+       ModestMainWindowPrivate *priv;
+       ModestWindowPrivate *parent_priv;
+       GtkWidget *item;
+
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+       parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
 
+       item = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarMessageNew");
+       gtk_tool_item_set_is_important (GTK_TOOL_ITEM (item), TRUE);
+       item = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarMessageReply");
+       gtk_tool_item_set_is_important (GTK_TOOL_ITEM (item), TRUE);
+       item = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarSendReceive");
+       gtk_tool_item_set_is_important (GTK_TOOL_ITEM (item), TRUE);
+
+}
 
 
 ModestWindow *
@@ -430,12 +461,13 @@ modest_main_window_new (void)
        ModestMainWindow *self;
        ModestMainWindowPrivate *priv;
        ModestWindowPrivate *parent_priv;
-       GtkWidget *main_vbox;
        GtkWidget *status_hbox;
-       GtkWidget *header_win, *folder_win;
+       GtkWidget *folder_win;
        GtkWidget *preview_scroll;
        GtkActionGroup *action_group;
        GError *error = NULL;
+       ModestDimmingRulesGroup *menu_rules_group = NULL;
+       ModestDimmingRulesGroup *toolbar_rules_group = NULL;
                
        obj  = g_object_new(MODEST_TYPE_MAIN_WINDOW, NULL);
        self = MODEST_MAIN_WINDOW(obj);
@@ -447,12 +479,24 @@ modest_main_window_new (void)
        parent_priv->ui_manager = gtk_ui_manager_new();
        parent_priv->ui_dimming_manager = modest_ui_dimming_manager_new ();
        action_group = gtk_action_group_new ("ModestMainWindowActions");
+       gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+
+       menu_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_MENU, FALSE);
+       toolbar_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_TOOLBAR, TRUE);
        
        /* Add common actions */
        gtk_action_group_add_actions (action_group,
                                      modest_action_entries,
                                      G_N_ELEMENTS (modest_action_entries),
                                      obj);
+       gtk_action_group_add_toggle_actions (action_group,
+                                            modest_toggle_action_entries,
+                                            G_N_ELEMENTS (modest_toggle_action_entries),
+                                            self);
+       gtk_action_group_add_toggle_actions (action_group,
+                                            modest_main_window_toggle_action_entries,
+                                            G_N_ELEMENTS (modest_toggle_action_entries),
+                                            self);
 
        gtk_ui_manager_insert_action_group (parent_priv->ui_manager, action_group, 0);
        g_object_unref (action_group);
@@ -466,6 +510,22 @@ modest_main_window_new (void)
                error = NULL;
        }
 
+       /* Add common dimming rules */
+       modest_dimming_rules_group_add_rules (menu_rules_group, 
+                                             modest_main_window_menu_dimming_entries,
+                                             G_N_ELEMENTS (modest_main_window_menu_dimming_entries),
+                                             MODEST_WINDOW (self));
+       modest_dimming_rules_group_add_rules (toolbar_rules_group, 
+                                             modest_main_window_toolbar_dimming_entries,
+                                             G_N_ELEMENTS (modest_main_window_toolbar_dimming_entries),
+                                             MODEST_WINDOW (self));
+
+       /* Insert dimming rules group for this window */
+       modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, menu_rules_group);
+       modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, toolbar_rules_group);
+       g_object_unref (menu_rules_group);
+       g_object_unref (toolbar_rules_group);
+       
        /* Add accelerators */
        gtk_window_add_accel_group (GTK_WINDOW (obj), 
                                    gtk_ui_manager_get_accel_group (parent_priv->ui_manager));
@@ -474,9 +534,10 @@ modest_main_window_new (void)
        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");
 
+       setup_toolbar (MODEST_MAIN_WINDOW (obj));
        gtk_toolbar_set_tooltips (GTK_TOOLBAR (parent_priv->toolbar), TRUE);
        folder_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->folder_view), FALSE);
-       header_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->header_view), FALSE);
+       priv->header_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->header_view), FALSE);
 
        /* Paned */
        preview_scroll = gtk_scrolled_window_new (NULL, NULL);
@@ -484,7 +545,7 @@ modest_main_window_new (void)
                                        GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
        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_add1 (GTK_PANED(priv->msg_paned), priv->header_win);
        gtk_container_add (GTK_CONTAINER (preview_scroll),
                           GTK_WIDGET(priv->msg_preview));
        gtk_paned_add2 (GTK_PANED(priv->msg_paned), preview_scroll);
@@ -496,16 +557,16 @@ modest_main_window_new (void)
        gtk_box_pack_start (GTK_BOX(status_hbox), priv->online_toggle,FALSE, FALSE, 0);
 
        /* putting it all together... */
-       main_vbox = gtk_vbox_new (FALSE, 0);
-       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);
+       priv->main_vbox = gtk_vbox_new (FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(priv->main_vbox), parent_priv->menubar, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(priv->main_vbox), parent_priv->toolbar, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(priv->main_vbox), priv->main_paned, TRUE, TRUE,0);
+       gtk_box_pack_start (GTK_BOX(priv->main_vbox), status_hbox, FALSE, FALSE, 0);
+       gtk_container_add (GTK_CONTAINER(obj), priv->main_vbox);
 
        gtk_window_set_title (GTK_WINDOW(obj), _("Modest"));
        gtk_window_set_icon_from_file  (GTK_WINDOW(obj), MODEST_APP_ICON, NULL);        
-       gtk_widget_show_all (main_vbox);
+       gtk_widget_show_all (priv->main_vbox);
        
        /* Do some tasks on show */
        g_signal_connect (G_OBJECT(self), "show", G_CALLBACK (modest_main_window_on_show), NULL);
@@ -634,7 +695,65 @@ void
 modest_main_window_set_style (ModestMainWindow *self, 
                              ModestMainWindowStyle style)
 {
-       /* TODO */
+       ModestMainWindowPrivate *priv;
+       ModestWindowPrivate *parent_priv;
+       GtkAction *action;
+       gboolean active;
+
+       g_return_if_fail (MODEST_IS_MAIN_WINDOW (self));
+
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+       parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
+
+       /* no change -> nothing to do */
+       if (priv->style == style)
+               return;
+
+       /* Get toggle button and update the state if needed. This will
+         happen only when the set_style is not invoked from the UI,
+         for example when it's called from widget memory */
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ToggleFolders");
+       active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
+       if ((active && style == MODEST_MAIN_WINDOW_STYLE_SIMPLE) ||
+          (!active && style == MODEST_MAIN_WINDOW_STYLE_SPLIT)) {
+              g_signal_handlers_block_by_func (action, modest_ui_actions_toggle_folders_view, self);
+              gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), !active);
+              g_signal_handlers_unblock_by_func (action, modest_ui_actions_toggle_folders_view, self);
+       }
+
+       priv->style = style;
+       switch (style) {
+       case MODEST_MAIN_WINDOW_STYLE_SIMPLE:
+               /* Remove main paned */
+               g_object_ref (priv->main_paned);
+               gtk_container_remove (GTK_CONTAINER (priv->main_vbox), priv->main_paned);
+
+               /* Reparent the contents widget to the main vbox */
+               gtk_widget_reparent (priv->header_win, priv->main_vbox);
+
+               break;
+       case MODEST_MAIN_WINDOW_STYLE_SPLIT:
+               /* Remove header view */
+               g_object_ref (priv->header_win);
+               gtk_container_remove (GTK_CONTAINER (priv->main_vbox), priv->header_win);
+
+               /* Reparent the main paned */
+               gtk_paned_add2 (GTK_PANED (priv->main_paned), priv->header_win);
+               gtk_container_add (GTK_CONTAINER (priv->main_vbox), priv->main_paned);
+
+               break;
+       default:
+               g_return_if_reached ();
+       }
+
+/*     /\* Let header view grab the focus if it's being shown *\/ */
+/*     if (priv->contents_style == MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS) */
+/*             gtk_widget_grab_focus (GTK_WIDGET (priv->header_view)); */
+/*     else  */
+/*             gtk_widget_grab_focus (GTK_WIDGET (priv->contents_widget)); */
+
+       /* Show changes */
+       gtk_widget_show_all (GTK_WIDGET (priv->main_vbox));
 }
 
 
index b4dbf79..63d1c8d 100644 (file)
@@ -41,6 +41,7 @@
 
 #include <modest-widget-memory.h>
 #include <modest-account-mgr-helpers.h>
+#include <gtkhtml/gtkhtml.h>
 
 static void  modest_msg_edit_window_class_init   (ModestMsgEditWindowClass *klass);
 static void  modest_msg_edit_window_init         (ModestMsgEditWindow *obj);
@@ -203,6 +204,8 @@ init_window (ModestMsgEditWindow *obj, const gchar* account)
        GtkWidget *to_button, *cc_button, *bcc_button; 
        GtkWidget *header_table;
        GtkWidget *main_vbox;
+       GtkWidget *msg_vbox;
+       GtkWidget *scrolled_window;
        ModestMsgEditWindowPrivate *priv;
        ModestWindowPrivate *parent_priv;
        
@@ -248,14 +251,23 @@ init_window (ModestMsgEditWindow *obj, const gchar* account)
        gtk_table_attach_defaults (GTK_TABLE(header_table), priv->bcc_field,    1,2,3,4);
        gtk_table_attach_defaults (GTK_TABLE(header_table), priv->subject_field,1,2,4,5);
 
-       priv->msg_body = gtk_text_view_new ();
+       priv->msg_body = gtk_html_new ();
+       gtk_html_load_empty (GTK_HTML (priv->msg_body));
+       gtk_html_set_editable (GTK_HTML (priv->msg_body), TRUE);
        
-       main_vbox = gtk_vbox_new  (FALSE, 6);
+       main_vbox = gtk_vbox_new  (FALSE, 0);
+
+       scrolled_window = gtk_scrolled_window_new (NULL, NULL);
 
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->toolbar, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(main_vbox), header_table, FALSE, FALSE, 6);
-       gtk_box_pack_start (GTK_BOX(main_vbox), priv->msg_body, TRUE, TRUE, 6);
+       gtk_box_pack_start (GTK_BOX(main_vbox), scrolled_window, TRUE, TRUE, 0);
+       
+       msg_vbox = gtk_vbox_new (FALSE, 0);
+       gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), msg_vbox); 
+
+       gtk_box_pack_start (GTK_BOX(msg_vbox), header_table, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(msg_vbox), priv->msg_body, TRUE, TRUE, 0);
 
        gtk_widget_show_all (GTK_WIDGET(main_vbox));
        gtk_container_add (GTK_CONTAINER(obj), main_vbox);
@@ -287,7 +299,6 @@ static void
 set_msg (ModestMsgEditWindow *self, TnyMsg *msg)
 {
        TnyHeader *header;
-       GtkTextBuffer *buf;
        const gchar *to, *cc, *bcc, *subject;
        ModestMsgEditWindowPrivate *priv;
        gchar *body;
@@ -313,10 +324,12 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg)
                gtk_entry_set_text (GTK_ENTRY(priv->subject_field), subject);
 
        
-       buf  = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->msg_body));
        body = modest_tny_msg_get_body (msg, FALSE, NULL);
-       if (body) 
-               gtk_text_buffer_set_text (buf, body, -1);
+       gtk_html_set_editable (GTK_HTML (priv->msg_body), FALSE);
+       if (body) {
+               gtk_html_load_from_string (GTK_HTML (priv->msg_body), body, -1);
+       }
+       gtk_html_set_editable (GTK_HTML (priv->msg_body), TRUE);
        g_free (body);
 }
 
@@ -389,6 +402,16 @@ modest_msg_edit_window_new (TnyMsg *msg, const gchar *account,
        return MODEST_WINDOW(self);
 }
 
+static gboolean
+html_export_save_buffer (gpointer engine,
+                        const gchar *data,
+                        size_t len,
+                        GString **buffer)
+{
+       *buffer = g_string_append (*buffer, data);
+       return TRUE;
+}
+
 
 MsgData * 
 modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window)
@@ -398,6 +421,7 @@ modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window)
        const gchar *account_name;
        gchar *from_string = NULL;
        ModestMsgEditWindowPrivate *priv;
+       GString *buffer;
        
        g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (edit_window), NULL);
 
@@ -421,13 +445,17 @@ modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window)
        data->bcc     =  g_strdup ( gtk_entry_get_text (GTK_ENTRY(priv->bcc_field)));
        data->subject =  g_strdup ( gtk_entry_get_text (GTK_ENTRY(priv->subject_field)));
 
-       GtkTextBuffer *buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->msg_body));
-       GtkTextIter b, e;
-       gtk_text_buffer_get_bounds (buf, &b, &e);
-       data->plain_body =  gtk_text_buffer_get_text (buf, &b, &e, FALSE); /* Returns a copy. */
-
-       /* No rich supported yet, then html body is NULL */
-       data->html_body = NULL;
+/*     GtkTextBuffer *buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->msg_body)); */
+/*     GtkTextIter b, e; */
+/*     gtk_text_buffer_get_bounds (buf, &b, &e); */
+/*     data->plain_body =  gtk_text_buffer_get_text (buf, &b, &e, FALSE); /\* Returns a copy. *\/ */
+
+       buffer = g_string_new ("");
+       gtk_html_export (GTK_HTML (priv->msg_body), "text/html", (GtkHTMLSaveReceiverFn) html_export_save_buffer, &buffer);
+       data->html_body = g_string_free (buffer, FALSE);
+       buffer = g_string_new ("");
+       gtk_html_export (GTK_HTML (priv->msg_body), "text/plain", (GtkHTMLSaveReceiverFn) html_export_save_buffer, &buffer);
+       data->plain_body = g_string_free (buffer, FALSE);
 
        return data;
 }
index 875f09b..9900219 100644 (file)
 #include "modest-ui-actions.h"
 #include <modest-widget-memory.h>
 #include <modest-runtime.h>
+#include <modest-main-window-ui.h>
+#include "modest-msg-view-window-ui-dimming.h"
 
 #include <widgets/modest-msg-view-window.h>
 #include <widgets/modest-window-priv.h>
 #include "widgets/modest-msg-view.h"
+#include "modest-ui-dimming-manager.h"
 
 
 static void  modest_msg_view_window_class_init   (ModestMsgViewWindowClass *klass);
 static void  modest_msg_view_window_init         (ModestMsgViewWindow *obj);
 static void  modest_msg_view_window_finalize     (GObject *obj);
 
+static void  modest_msg_view_window_toggle_find_toolbar (GtkToggleAction *toggle,
+                                                        gpointer data);
+
 /* list my signals */
 enum {
        /* MY_SIGNAL_1, */
@@ -67,38 +73,19 @@ struct _ModestMsgViewWindowPrivate {
 /* globals */
 static GtkWindowClass *parent_class = NULL;
 
-/* Action entries */
-static const GtkActionEntry modest_action_entries [] = {
-
-       /* Toplevel menus */
-       { "Edit", NULL, N_("_Edit") },
-       { "Actions", NULL, N_("_Actions") },
-       { "Help", NULL, N_("_Help") },
-       { "Email", NULL, N_("E_mail") },
-
-       /* EDIT */
-       { "EditUndo",        GTK_STOCK_UNDO,   N_("_Undo"), "<CTRL>Z",        N_("Undo last action"),  NULL },
-       { "EditRedo",        GTK_STOCK_REDO,   N_("_Redo"), "<shift><CTRL>Z", N_("Redo previous action"),  NULL },
-       { "Cut",         GTK_STOCK_CUT,    N_("Cut"),   "<CTRL>X",        N_("_Cut"), G_CALLBACK (modest_ui_actions_on_cut)   },
-       { "Copy",        GTK_STOCK_COPY,   N_("Copy"),  "<CTRL>C",        N_("Copy"), G_CALLBACK (modest_ui_actions_on_copy) },
-       { "Paste",       GTK_STOCK_PASTE,  N_("Paste"), "<CTRL>V",        N_("Paste"), G_CALLBACK (modest_ui_actions_on_paste) },
-       { "EditDelete",      GTK_STOCK_DELETE, N_("_Delete"),      "<CTRL>Q",         N_("Delete"), NULL },
-       { "SelectAll",   NULL,         N_("Select all"),   "<CTRL>A",         N_("Select all"), G_CALLBACK (modest_ui_actions_on_select_all) },
-       { "EditDeselectAll", NULL,             N_("Deselect all"), "<Shift><CTRL>A",  N_("Deselect all"), NULL },
-
-       /* ACTIONS */
-       { "ActionsNewMessage",  MODEST_STOCK_NEW_MAIL, N_("_New"), "<CTRL>N", N_("Compose new message"), G_CALLBACK (modest_ui_actions_on_new_msg) },
-       { "ActionsReply",       MODEST_STOCK_REPLY, N_("_Reply"),         NULL, N_("Reply to a message"), G_CALLBACK (modest_ui_actions_on_reply) },
-       { "ActionsReplyAll",    MODEST_STOCK_REPLY_ALL, N_("Reply to all"),   NULL, N_("Reply to all"), G_CALLBACK (modest_ui_actions_on_reply_all) },
-       { "ActionsForward",     MODEST_STOCK_FORWARD, N_("_Forward"),       NULL, N_("Forward a message"), G_CALLBACK (modest_ui_actions_on_forward) },
-       { "ActionsBounce",      NULL, N_("_Bounce"),        NULL, N_("Bounce a message"),          NULL },
-       { "ActionsSendReceive", GTK_STOCK_REFRESH, N_("Send/Receive"),   NULL, N_("Send and receive messages"), NULL },
-       { "ActionsDelete",      MODEST_STOCK_DELETE, N_("Delete message"), NULL, N_("Delete messages"), G_CALLBACK (modest_ui_actions_on_delete_message) },
-
-       /* HELP */
-       { "HelpAbout", GTK_STOCK_ABOUT, N_("About"), NULL, N_("About Modest"), G_CALLBACK (modest_ui_actions_on_about) },
+static const GtkToggleActionEntry msg_view_toggle_action_entries [] = {
+       { "FindInMessage",    GTK_STOCK_FIND,    N_("mcen_me_viewer_find"), NULL, NULL, G_CALLBACK (modest_msg_view_window_toggle_find_toolbar), FALSE },
+       { "ToolsFindInMessage", NULL, N_("mcen_me_viewer_find"), "<CTRL>F", NULL, G_CALLBACK (modest_msg_view_window_toggle_find_toolbar), FALSE },
 };
 
+static const GtkRadioActionEntry msg_view_zoom_action_entries [] = {
+       { "Zoom50", NULL, N_("mcen_me_viewer_50"), NULL, NULL, 50 },
+       { "Zoom80", NULL, N_("mcen_me_viewer_80"), NULL, NULL, 80 },
+       { "Zoom100", NULL, N_("mcen_me_viewer_100"), NULL, NULL, 100 },
+       { "Zoom120", NULL, N_("mcen_me_viewer_120"), NULL, NULL, 120 },
+       { "Zoom150", NULL, N_("mcen_me_viewer_150"), NULL, NULL, 150 },
+       { "Zoom200", NULL, N_("mcen_me_viewer_200"), NULL, NULL, 200 }
+};
 
 GType
 modest_msg_view_window_get_type (void)
@@ -181,7 +168,7 @@ init_window (ModestMsgViewWindow *obj, TnyMsg *msg)
 
        priv->msg_view = GTK_WIDGET (tny_platform_factory_new_msg_view (modest_tny_platform_factory_get_instance ()));
        tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
-       main_vbox = gtk_vbox_new  (FALSE, 6);
+       main_vbox = gtk_vbox_new  (FALSE, 0);
        
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->toolbar, FALSE, FALSE, 0);
@@ -190,7 +177,7 @@ init_window (ModestMsgViewWindow *obj, TnyMsg *msg)
                                        GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
        gtk_container_add (GTK_CONTAINER (scrolled_window), 
                           priv->msg_view);
-       gtk_box_pack_start (GTK_BOX(main_vbox), scrolled_window, TRUE, TRUE, 6);
+       gtk_box_pack_start (GTK_BOX(main_vbox), scrolled_window, TRUE, TRUE, 0);
 
        gtk_widget_show_all (GTK_WIDGET(main_vbox));
        gtk_container_add   (GTK_CONTAINER(obj), main_vbox);
@@ -229,6 +216,9 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        GError *error = NULL;
        TnyHeader *header = NULL;
        const gchar *subject = NULL;
+       ModestDimmingRulesGroup *menu_rules_group = NULL;
+       ModestDimmingRulesGroup *toolbar_rules_group = NULL;
+       ModestDimmingRulesGroup *clipboard_rules_group = NULL;
 
        g_return_val_if_fail (msg, NULL);
 
@@ -242,12 +232,27 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        
        parent_priv->ui_manager = gtk_ui_manager_new();
        action_group = gtk_action_group_new ("ModestMsgViewWindowActions");
+       gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
 
        /* Add common actions */
        gtk_action_group_add_actions (action_group,
                                      modest_action_entries,
                                      G_N_ELEMENTS (modest_action_entries),
                                      obj);
+       gtk_action_group_add_toggle_actions (action_group,
+                                            modest_toggle_action_entries,
+                                            G_N_ELEMENTS (modest_toggle_action_entries),
+                                            obj);
+       gtk_action_group_add_toggle_actions (action_group,
+                                            msg_view_toggle_action_entries,
+                                            G_N_ELEMENTS (msg_view_toggle_action_entries),
+                                            obj);
+       gtk_action_group_add_radio_actions (action_group,
+                                           msg_view_zoom_action_entries,
+                                           G_N_ELEMENTS (msg_view_zoom_action_entries),
+                                           100,
+                                           G_CALLBACK (modest_ui_actions_on_change_zoom),
+                                           obj);
        gtk_ui_manager_insert_action_group (parent_priv->ui_manager, action_group, 0);
        g_object_unref (action_group);
 
@@ -291,6 +296,34 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
 
        gtk_window_set_icon_from_file (GTK_WINDOW(obj), MODEST_APP_ICON, NULL);
 
+       parent_priv->ui_dimming_manager = modest_ui_dimming_manager_new();
+
+       menu_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_MENU, FALSE);
+       toolbar_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_TOOLBAR, TRUE);
+       clipboard_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_CLIPBOARD, FALSE);
+
+       /* Add common dimming rules */
+       modest_dimming_rules_group_add_rules (menu_rules_group, 
+                                             modest_msg_view_menu_dimming_entries,
+                                             G_N_ELEMENTS (modest_msg_view_menu_dimming_entries),
+                                             MODEST_WINDOW (obj));
+       modest_dimming_rules_group_add_rules (toolbar_rules_group, 
+                                             modest_msg_view_toolbar_dimming_entries,
+                                             G_N_ELEMENTS (modest_msg_view_toolbar_dimming_entries),
+                                             MODEST_WINDOW (obj));
+       modest_dimming_rules_group_add_rules (clipboard_rules_group, 
+                                             modest_msg_view_clipboard_dimming_entries,
+                                             G_N_ELEMENTS (modest_msg_view_clipboard_dimming_entries),
+                                             MODEST_WINDOW (obj));
+
+       /* Insert dimming rules group for this window */
+       modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, menu_rules_group);
+       modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, toolbar_rules_group);
+       modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, clipboard_rules_group);
+       g_object_unref (menu_rules_group);
+       g_object_unref (toolbar_rules_group);
+       g_object_unref (clipboard_rules_group);
+
        g_signal_connect (G_OBJECT(obj), "delete-event", G_CALLBACK(on_delete_event), obj);
 
        return MODEST_WINDOW(obj);
@@ -453,8 +486,11 @@ modest_msg_view_window_toolbar_on_transfer_mode     (ModestMsgViewWindow *self)
 TnyList *         
 modest_msg_view_window_get_attachments (ModestMsgViewWindow *win)
 {
+       TnyList *result;
+
+       result = tny_simple_list_new ();
        g_message ("NOT IMPLEMENTED %s", __FUNCTION__);
-       return NULL;    
+       return result;  
 }
 
 gboolean 
@@ -470,3 +506,11 @@ modest_msg_view_window_has_headers_model (ModestMsgViewWindow *window)
        g_message ("NOT IMPLEMENTED %s", __FUNCTION__);
        return FALSE;   
 }
+
+static void 
+modest_msg_view_window_toggle_find_toolbar (GtkToggleAction *toggle,
+                                           gpointer data)
+{
+       g_message ("NOT IMPLEMENTED %s", __FUNCTION__);
+       return FALSE;   
+}
index 942a6a6..9e2f76b 100644 (file)
@@ -382,6 +382,7 @@ modest_platform_create_folder_view (TnyFolderStoreQuery *query)
 {
        GtkWidget *widget = modest_folder_view_new (query);
 
+       gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget), FALSE);
        /* Show all accounts by default */
        modest_folder_view_set_style (MODEST_FOLDER_VIEW (widget),
                                      MODEST_FOLDER_VIEW_STYLE_SHOW_ALL);
index 66f8397..62368ad 100644 (file)
 <ui>
 
   <menubar name="MenuBar">
-    <menu name="FileMenu" action="File">
-      <menuitem name="FileNewMenu" action="FileNew"/>
-      <menuitem name="FileOpenMenu" action="FileOpen"/>
+    <menu name="EmailMenu" action="Email">
+      <menu name="EmailNewMainMenu" action="EmailNew">
+       <menuitem name="EmailNewMessageMenu"  action="EmailNewMessage"/>
+       <menuitem name="EmailNewFolderMenu" action="EmailNewFolder"/>
+      </menu>
+      <menuitem name="EmailOpenMenu" action="EmailOpen"/>
       <separator/>
-      <menuitem name="FileSaveMenu" action="FileSave"/>
-      <menuitem name="FileSaveAsMenu" action="FileSaveAs"/>
+      <menuitem name="EmailReplyMenu" action="EmailReply"/>
+      <menuitem name="EmailReplyAllMenu" action="EmailReplyAll"/>
+      <menuitem name="EmailForwardMenu" action="EmailForward"/>
       <separator/>
-      <menuitem name="FileQuitMenu" action="FileQuit"/>
+      <menuitem name="EmailContentsMenu"     action="EmailContents"/>
+      <menuitem name="EmailPurgeAttachmentsMenu" action="EmailPurgeAttachments"/>
+      <separator/>
+      <menuitem name="EmailRenameMenu" action="EmailRenameFolder"/>
+      <menuitem name="EmailDeleteMenu" action="EmailDelete"/>
+      <separator/>
+      <menuitem name="EmailDetailsMenu" action="EmailDetails"/>
+      <separator/>
+      <menuitem name="CloseWindowMenu"     action="CloseWindow"/>
+      <menuitem name="CloseAllWindowsMenu" action="CloseAllWindows"/>
     </menu>
 
     <menu name="EditMenu" action="Edit">
-      <menuitem name="EditUndoMenu" action="EditUndo"/>
-      <menuitem name="EditRedoMenu" action="EditRedo"/>
+      <menuitem name="EditSelectAllMenu" action="EditSelectAll"/>
+      <menuitem name="EditMarkAsReadMenu" action="EditMarkAsRead"/>
+      <menuitem name="EditMarkAsUnreadMenu" action="EditMarkAsUnread"/>
       <separator/>
-      <menuitem name="EditCutMenu" action="Cut"/>
-      <menuitem name="EditCopyMenu" action="Copy"/>
-      <menuitem name="EditPasteMenu" action="Paste"/>
-<!--      <menuitem name="EditDeleteMenu" action="EditDelete"/>-->
-      <separator/>
-      <menuitem name="EditSelectAllMenu" action="SelectAll"/>
-<!--      <menuitem name="EditDeselectAllMenu" action="EditDeselectAll"/>-->
+      <menuitem name="EditMoveToMenu" action="EditMoveTo"/>
     </menu>
 
-    <menu name="ActionsMenu" action="Actions">
-      <menuitem name="ActionsNewMenu" action="ActionsNew"/>
-      <menuitem name="ActionsReplyMenu" action="ActionsReply"/>
-      <menuitem name="ActionsForwardMenu" action="ActionsForward"/>
-      <menuitem name="ActionsBounceMenu" action="ActionsBounce"/>
+    <menu name="ViewMenu" action="View">
+      <menuitem name="ViewSortMenu" action="ViewSort"/>
+      <separator/>
+<!--       <menuitem name="ViewToggleFoldersMenu" action="ToggleFolders"/> -->
+      <menuitem name="ViewToggleFullscreenMenu" action="ViewToggleFullscreen"/>
       <separator/>
-      <menuitem name="ActionsFolderNewMenu" action="ActionsFolderNew"/>
-      <menuitem name="ActionsFolderDeleteMenu" action="ActionsFolderDelete"/>
-      <menuitem name="ActionsFolderRenameMenu" action="ActionsFolderRename"/>
-      <menuitem name="ActionsFolderMoveToTrashMenu" action="ActionsFolderMoveToTrash"/>
+      <placeholder name="ViewMenuAdditions" />
+   </menu>
+
+    <menu name="ToolsMenu" action="Tools">
+      <menuitem name="ToolsSettingsMenu" action="ToolsSettings"/>   
+      <menuitem name="ToolsAccountsMenu" action="ToolsAccounts"/>
+      <menuitem name="ToolsSMTPServersMenu" action="ToolsSMTPServers"/>
+      <separator/>
+      <menu name="ToolsSendReceiveMainMenu" action="ToolsSendReceive">
+        <menuitem name="ToolsSendReceiveAllMenu"  action="ToolsSendReceiveAll"/>
+        <menuitem name="ToolsSendReceiveCancelSendingMenu"  action="ToolsSendReceiveCancelSending"/>
+        <separator/>
+        <placeholder name="ToolsMenuAdditions" />
+      </menu>
+      <separator/>
+      <menuitem name="ToolsContactsMenu" action="ToolsContacts"/>
+      <menuitem name="ToolsSearchMessagesMenu" action="ToolsSearchMessages"/>
+      <separator/>
+      <menuitem name="ToolsHelpMenu" action="ToolsHelp"/>
     </menu>
 
+
     <menu name="OptionsMenu" action="Options">
       <menuitem name="OptionsAddToContactsMenu" action="OptionsAddToContacts"/>
       <menuitem name="OptionsAccountsMenu" action="OptionsAccounts"/>
   </menubar>
 
   <toolbar name="ToolBar">
-    <toolitem action="ActionsNew"/>
+    <toolitem action="ToolbarMessageNew"/>
     <separator/>
-    <toolitem action="ActionsReply"/>
-    <toolitem action="ActionsReplyAll"/>
-    <toolitem action="ActionsForward"/>
+    <toolitem action="ToolbarMessageReply"/>
+    <toolitem action="ToolbarMessageReplyAll"/>
+    <toolitem action="ToolbarMessageForward"/>
     <separator/>
-    <toolitem action="ActionsSendReceive"/>
+    <toolitem action="ToolbarSendReceive"/>
     <separator/>
     <toolitem action="GotoPrevious"/>
     <toolitem action="GotoNext"/>
     <separator/>
-    <toolitem action="ActionsDelete"/>
-    <separator/>
-    <toolitem name="ToggleView" action="ToggleView"/>
+    <toolitem action="ToolbarDeleteMessage"/>
+<!--     <separator/> -->
+<!--     <toolitem name="ToggleView" action="ToggleView"/> -->
   </toolbar>
 
   <popup name="HeaderViewContextMenu">
index ea0ce56..7186f88 100644 (file)
 
 <ui>
   <menubar name="MenuBar">
-    <menu name="EmailMenu" action="Email">
-      <menuitem name="ReplyMenu" action="ActionsReply"/>
-      <menuitem name="ReplyToAllMenu" action="ActionsReplyAll"/>
-      <menuitem name="ForwardMenu" action="ActionsForward"/>
+    <menu name="MessageMenu" action="Email">
+      <menuitem name="MessageReplyMenu" action="EmailReply"/>
+      <menuitem name="MessageReplyAllMenu" action="EmailReplyAll"/>
+      <menuitem name="MessageForwardMenu" action="EmailForward"/>
       <separator/>
-      <menuitem name="NewMessageMenu" action="ActionsNewMessage"/>
+      <menuitem name="MessageNewMenu"  action="EmailNewDefault"/>
       <separator/>
-<!--      <menuitem name="DeleteMessageMenu" action="ActionsDelete"/>-->
+      <menuitem name="MessageDeleteMenu" action="EmailDelete"/>
+      <separator/>
+      <menuitem name="MessageDetailsMenu"      action="EmailDetails"/>
+      <separator/>
+      <menuitem name="CloseWindowMenu"     action="CloseWindow"/>
+      <menuitem name="CloseAllWindowsMenu"     action="CloseAllWindows"/>
     </menu>
+
     <menu name="EditMenu" action="Edit">
-      <menuitem name="EditUndoMenu" action="EditUndo"/>
-      <menuitem name="EditRedoMenu" action="EditRedo"/>
+      <menuitem name="EditCutMenu" action="EditCut"/>
+      <menuitem name="EditCopyMenu" action="EditCopy"/>
+      <menuitem name="EditPasteMenu" action="EditPaste"/>
+      <separator/>
+      <menuitem name="EditSelectAllMenu" action="EditSelectAll"/>
+      <separator/>
+      <menuitem name="EditMoveToMenu" action="EditMoveTo"/>
+    </menu> 
+    <menu name="ViewMenu" action="View">
+      <menu name="ZoomMenu" action="Zoom">
+       <menuitem name="Zoom50Menu" action="Zoom50"/>
+       <menuitem name="Zoom80Menu" action="Zoom80"/>
+       <menuitem name="Zoom100Menu" action="Zoom100"/>
+       <menuitem name="Zoom120Menu" action="Zoom120"/>
+       <menuitem name="Zoom150Menu" action="Zoom150"/>
+       <menuitem name="Zoom200Menu" action="Zoom200"/>
+      </menu>
+      <separator/>
+      <menuitem name="ViewToggleFullscreenMenu" action="ViewToggleFullscreen"/>
       <separator/>
-      <menuitem name="EditCutMenu" action="Cut"/>
-      <menuitem name="EditCopyMenu" action="Copy"/>
-      <menuitem name="EditPasteMenu" action="Paste"/>
-<!--      <menuitem name="EditDeleteMenu" action="EditDelete"/>-->
+<!--       <menu name="ViewShowToolbarMenu" action="ViewShowToolbar"> -->
+<!--   <menuitem name="ViewShowToolbarNormalScreenMenu" action="ViewShowToolbarNormalScreen"/> -->
+<!--   <menuitem name="ViewShowToolbarFullScreenMenu" action="ViewShowToolbarFullScreen"/> -->
+<!--       </menu> -->
       <separator/>
-      <menuitem name="EditSelectAllMenu" action="SelectAll"/>
-<!--      <menuitem name="EditDeselectAllMenu" action="EditDeselectAll"/>-->
+      <menuitem name="ViewPreviousMessageMenu" action="ViewPreviousMessage"/>
+      <menuitem name="ViewNextMessageMenu" action="ViewNextMessage"/>
     </menu>
 
+    <menu name="AttachmentsMenu" action="Attachments">
+      <menuitem name="ViewAttachmentMenu" action="ViewAttachment"/>
+      <menuitem name="SaveAttachmentMenu" action="SaveAttachment"/>
+      <menuitem name="RemoveAttachmentMenu" action="RemoveAttachment"/>
+    </menu>
+
+   <menu name="ToolsMenu" action="Tools">
+      <menuitem name="ToolsAddToContactsMenu" action="ToolsAddToContacts"/>
+      <separator/>
+      <menuitem name="ToolsFindInMessageMenu" action="ToolsFindInMessage"/>
+      <menuitem name="ToolsSearchMessagesMenu" action="ToolsSearchMessages"/>
+      <separator/>
+      <menuitem name="ToolsHelpMenu" action="ToolsHelp"/>
+   </menu>
+
 <!--    <menu name="ActionsMenu" action="Actions">
       <menuitem name="ActionsReplyMenu" action="ActionsReply"/>
       <menuitem name="ActionsReplyAllMenu" action="ActionsReplyAll"/>
   </menubar>
 
   <toolbar name="ToolBar">
-    <toolitem action="ActionsReply"/>
-    <toolitem action="ActionsReplyAll"/>
-    <toolitem action="ActionsForward"/>
+    <toolitem action="ToolbarMessageReply"/> 
+    <toolitem action="ToolbarDeleteMessage"/>
+    <separator/>
+    <toolitem action="ToolbarMessageBack" position="bot"/>
+    <toolitem action="ToolbarMessageNext" position="bot"/>
   </toolbar>
 </ui>
index 79247e0..ed61d10 100644 (file)
@@ -591,10 +591,10 @@ init_stock_icons (void)
 
                static GtkStockItem items[] = {
 #ifdef MODEST_PLATFORM_MAEMO
-                       { MODEST_STOCK_SPLIT_VIEW, "split view", 0, 0, NULL },
                        { MODEST_STOCK_SORT, "sort mail", 0, 0, NULL },
                        { MODEST_STOCK_REFRESH, "refresh mail", 0, 0, NULL },
 #endif /*MODEST_PLATFORM_MAEMO*/
+                       { MODEST_STOCK_SPLIT_VIEW, "split view", 0, 0, NULL },
                        { MODEST_STOCK_MAIL_SEND, "send mail", 0, 0, NULL },
                        { MODEST_STOCK_NEW_MAIL, "new mail", 0, 0, NULL },
 /*                     { MODEST_STOCK_SEND_RECEIVE, "send receive", 0, 0, NULL },  */
@@ -609,10 +609,10 @@ init_stock_icons (void)
       
                static gchar *items_names [] = {
 #ifdef MODEST_PLATFORM_MAEMO
-                       MODEST_TOOLBAR_ICON_SPLIT_VIEW,
                        MODEST_TOOLBAR_ICON_SORT,
                        MODEST_TOOLBAR_ICON_REFRESH,
 #endif /*MODEST_PLATFORM_MAEMO*/
+                       MODEST_TOOLBAR_ICON_SPLIT_VIEW,
                        MODEST_TOOLBAR_ICON_MAIL_SEND,
                        MODEST_TOOLBAR_ICON_NEW_MAIL,
 /*                     MODEST_TOOLBAR_ICON_SEND_RECEIVE,  */