evolution r36914 - in branches/kill-bonobo: mail ui



Author: mbarnes
Date: Thu Dec 18 02:04:27 2008
New Revision: 36914
URL: http://svn.gnome.org/viewvc/evolution?rev=36914&view=rev

Log:
Implement more mail actions.  Slowly phasing out EMFolderView.


Modified:
   branches/kill-bonobo/mail/e-mail-shell-content.c
   branches/kill-bonobo/mail/e-mail-shell-content.h
   branches/kill-bonobo/mail/e-mail-shell-view-actions.c
   branches/kill-bonobo/mail/e-mail-shell-view-private.h
   branches/kill-bonobo/mail/em-folder-view.c
   branches/kill-bonobo/mail/em-folder-view.h
   branches/kill-bonobo/ui/evolution-mail.ui

Modified: branches/kill-bonobo/mail/e-mail-shell-content.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-content.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-content.c	Thu Dec 18 02:04:27 2008
@@ -29,7 +29,6 @@
 #include "widgets/menus/gal-view-instance.h"
 
 #include "em-folder-view.h"
-#include "em-format-html-display.h"
 #include "em-search-context.h"
 #include "em-utils.h"
 #include "mail-config.h"
@@ -196,11 +195,10 @@
 
 	container = widget;
 
-	widget = em_folder_view_new ();
-	gtk_paned_add1 (GTK_PANED (container), ((EMFolderView *) widget)->list);
-	gtk_widget_show (((EMFolderView *) widget)->list);
-	/*gtk_paned_add1 (GTK_PANED (container), widget);*/
-	priv->folder_view = g_object_ref (widget);
+	/* XXX Kill EMFolderView? */
+	priv->folder_view = em_folder_view_new ();
+	widget = GTK_WIDGET (((EMFolderView *) priv->folder_view)->list);
+	gtk_paned_add1 (GTK_PANED (container), widget);
 	gtk_widget_show (widget);
 
 	widget = gtk_scrolled_window_new (NULL, NULL);
@@ -214,9 +212,11 @@
 
 	container = widget;
 
+	/* XXX Kill EMFolderView? */
 	priv->preview = ((EMFolderView *) priv->folder_view)->preview;
-	gtk_container_add (GTK_CONTAINER (container), ((EMFormatHTML *) priv->preview)->html);
-	gtk_widget_show (((EMFormatHTML *) priv->preview)->html);
+	widget = GTK_WIDGET (((EMFormatHTML *) priv->preview)->html);
+	gtk_container_add (GTK_CONTAINER (container), widget);
+	gtk_widget_show (widget);
 
 	/* Load the view instance. */
 
@@ -343,6 +343,15 @@
 	return EM_FOLDER_VIEW (mail_shell_content->priv->folder_view);
 }
 
+EMFormatHTMLDisplay *
+e_mail_shell_content_get_preview_format (EMailShellContent *mail_shell_content)
+{
+	g_return_val_if_fail (
+		E_IS_MAIL_SHELL_CONTENT (mail_shell_content), NULL);
+
+	return mail_shell_content->priv->preview;
+}
+
 gboolean
 e_mail_shell_content_get_preview_visible (EMailShellContent *mail_shell_content)
 {
@@ -377,6 +386,19 @@
 	g_object_notify (G_OBJECT (mail_shell_content), "preview-visible");
 }
 
+GtkWidget *
+e_mail_shell_content_get_preview_widget (EMailShellContent *mail_shell_content)
+{
+	EMFormatHTML *format;
+
+	g_return_val_if_fail (
+		E_IS_MAIL_SHELL_CONTENT (mail_shell_content), NULL);
+
+	format = (EMFormatHTML *) mail_shell_content->priv->preview;
+
+	return GTK_WIDGET (format->html);
+}
+
 gboolean
 e_mail_shell_content_get_vertical_view (EMailShellContent *mail_shell_content)
 {

Modified: branches/kill-bonobo/mail/e-mail-shell-content.h
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-content.h	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-content.h	Thu Dec 18 02:04:27 2008
@@ -26,6 +26,7 @@
 #include <shell/e-shell-view.h>
 
 #include "em-folder-view.h"
+#include "em-format-html-display.h"
 
 /* Standard GObject macros */
 #define E_TYPE_MAIL_SHELL_CONTENT \
@@ -87,11 +88,16 @@
 GtkWidget *	e_mail_shell_content_new	(EShellView *shell_view);
 EMFolderView *	e_mail_shell_content_get_folder_view
 						(EMailShellContent *mail_shell_content);
+EMFormatHTMLDisplay *
+		e_mail_shell_content_get_preview_format
+						(EMailShellContent *mail_shell_content);
 gboolean	e_mail_shell_content_get_preview_visible
 						(EMailShellContent *mail_shell_content);
 void		e_mail_shell_content_set_preview_visible
 						(EMailShellContent *mail_shell_content,
 						 gboolean preview_visible);
+GtkWidget *	e_mail_shell_content_get_preview_widget
+						(EMailShellContent *mail_shell_content);
 gboolean	e_mail_shell_content_get_vertical_view
 						(EMailShellContent *mail_shell_content);
 void		e_mail_shell_content_set_vertical_view

Modified: branches/kill-bonobo/mail/e-mail-shell-view-actions.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-view-actions.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-view-actions.c	Thu Dec 18 02:04:27 2008
@@ -26,10 +26,40 @@
 
 static void
 action_mail_add_sender_cb (GtkAction *action,
-                                   EMailShellView *mail_shell_view)
+                           EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+	CamelMessageInfo *info;
+	GPtrArray *uids;
+	const gchar *address;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	uids = message_list_get_selected (folder_view->list);
+
+	if (uids->len != 1)
+		goto exit;
+
+	info = camel_folder_get_message_info (
+		folder_view->folder, uids->pdata[0]);
+	if (info == NULL)
+		goto exit;
+
+	address = camel_message_info_from (info);
+	if (address == NULL || *address == '\0')
+		goto exit;
+
+	em_utils_add_address (GTK_WIDGET (shell_window), address);
+
+exit:
+	em_utils_uids_free (uids);
 }
 
 static void
@@ -44,16 +74,29 @@
 action_mail_check_for_junk_cb (GtkAction *action,
                                EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	GPtrArray *uids;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	uids = message_list_get_selected (folder_view->list);
+
+	mail_filter_junk (folder_view->folder, uids);
 }
 
 static void
 action_mail_clipboard_copy_cb (GtkAction *action,
                                EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	GtkWidget *preview;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	preview = e_mail_shell_content_get_preview_widget (mail_shell_content);
+
+	gtk_html_copy (GTK_HTML (preview));
 }
 
 static void
@@ -146,8 +189,13 @@
 action_mail_empty_trash_cb (GtkAction *action,
                             EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	em_utils_empty_trash (GTK_WIDGET (shell_window));
 }
 
 static void
@@ -186,8 +234,16 @@
 action_mail_filters_apply_cb (GtkAction *action,
                               EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	GPtrArray *uids;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	uids = message_list_get_selected (folder_view->list);
+
+	mail_filter_on_demand (folder_view->folder, uids);
 }
 
 static void
@@ -330,32 +386,100 @@
 action_mail_forward_cb (GtkAction *action,
                         EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+	GPtrArray *uids;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	uids = message_list_get_selected (folder_view->list);
+
+	em_utils_forward_messages (
+		folder_view->folder, uids, folder_view->folder_uri);
 }
 
 static void
 action_mail_forward_attached_cb (GtkAction *action,
                                  EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+	GPtrArray *uids;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	uids = message_list_get_selected (folder_view->list);
+
+	em_utils_forward_attached (
+		folder_view->folder, uids, folder_view->folder_uri);
 }
 
 static void
 action_mail_forward_inline_cb (GtkAction *action,
                                EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+	GPtrArray *uids;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	uids = message_list_get_selected (folder_view->list);
+
+	em_utils_forward_inline (
+		folder_view->folder, uids, folder_view->folder_uri);
 }
 
 static void
 action_mail_forward_quoted_cb (GtkAction *action,
                                EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+	GPtrArray *uids;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	uids = message_list_get_selected (folder_view->list);
+
+	em_utils_forward_quoted (
+		folder_view->folder, uids, folder_view->folder_uri);
 }
 
 static void
@@ -386,8 +510,13 @@
 action_mail_load_images_cb (GtkAction *action,
                             EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFormatHTMLDisplay *format;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	format = e_mail_shell_content_get_preview_format (mail_shell_content);
+
+	em_format_html_load_http ((EMFormatHTML *) format);
 }
 
 static void
@@ -508,16 +637,45 @@
 action_mail_message_edit_cb (GtkAction *action,
                              EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+	GPtrArray *uids;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	uids = message_list_get_selected (folder_view->list);
+
+	em_utils_edit_messages (folder_view->folder, uids, FALSE);
 }
 
 static void
 action_mail_message_new_cb (GtkAction *action,
                             EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	em_utils_compose_new_message (folder_view->folder_uri);
 }
 
 static void
@@ -602,32 +760,70 @@
 action_mail_next_cb (GtkAction *action,
                      EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	MessageListSelectDirection direction;
+	EMFolderView *folder_view;
+	guint32 flags, mask;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	direction = MESSAGE_LIST_SELECT_NEXT;
+	flags = 0;
+	mask = 0;
+
+	message_list_select (folder_view->list, direction, flags, mask);
 }
 
 static void
 action_mail_next_important_cb (GtkAction *action,
                                EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	MessageListSelectDirection direction;
+	EMFolderView *folder_view;
+	guint32 flags, mask;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	direction = MESSAGE_LIST_SELECT_NEXT | MESSAGE_LIST_SELECT_WRAP;
+	flags = CAMEL_MESSAGE_FLAGGED;
+	mask = CAMEL_MESSAGE_FLAGGED;
+
+	message_list_select (folder_view->list, direction, flags, mask);
 }
 
 static void
 action_mail_next_thread_cb (GtkAction *action,
                             EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	message_list_select_next_thread (folder_view->list);
 }
 
 static void
 action_mail_next_unread_cb (GtkAction *action,
                             EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	MessageListSelectDirection direction;
+	EMFolderView *folder_view;
+	guint32 flags, mask;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	direction = MESSAGE_LIST_SELECT_NEXT | MESSAGE_LIST_SELECT_WRAP;
+	flags = 0;
+	mask = CAMEL_MESSAGE_SEEN;
+
+	message_list_select (folder_view->list, direction, flags, mask);
 }
 
 static void
@@ -648,88 +844,198 @@
 action_mail_previous_cb (GtkAction *action,
                          EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	MessageListSelectDirection direction;
+	EMFolderView *folder_view;
+	guint32 flags, mask;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	direction = MESSAGE_LIST_SELECT_PREVIOUS;
+	flags = 0;
+	mask = 0;
+
+	message_list_select (folder_view->list, direction, flags, mask);
 }
 
 static void
 action_mail_previous_important_cb (GtkAction *action,
                                    EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	MessageListSelectDirection direction;
+	EMFolderView *folder_view;
+	guint32 flags, mask;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	direction = MESSAGE_LIST_SELECT_PREVIOUS | MESSAGE_LIST_SELECT_WRAP;
+	flags = CAMEL_MESSAGE_FLAGGED;
+	mask = CAMEL_MESSAGE_FLAGGED;
+
+	message_list_select (folder_view->list, direction, flags, mask);
 }
 
 static void
 action_mail_previous_unread_cb (GtkAction *action,
                                 EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	MessageListSelectDirection direction;
+	EMFolderView *folder_view;
+	guint32 flags, mask;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	direction = MESSAGE_LIST_SELECT_PREVIOUS | MESSAGE_LIST_SELECT_WRAP;
+	flags = 0;
+	mask = CAMEL_MESSAGE_SEEN;
+
+	message_list_select (folder_view->list, direction, flags, mask);
 }
 
 static void
 action_mail_print_cb (GtkAction *action,
                       EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	GtkPrintOperationAction print_action;
+	EMFolderView *folder_view;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	print_action = GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG;
+	em_folder_view_print (folder_view, print_action);
 }
 
 static void
 action_mail_print_preview_cb (GtkAction *action,
                               EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	GtkPrintOperationAction print_action;
+	EMFolderView *folder_view;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	print_action = GTK_PRINT_OPERATION_ACTION_PREVIEW;
+	em_folder_view_print (folder_view, print_action);
 }
 
 static void
 action_mail_redirect_cb (GtkAction *action,
                          EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (folder_view->list->cursor_uid == NULL)
+		return;
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	em_utils_redirect_message_by_uid (
+		folder_view->folder, folder_view->list->cursor_uid);
 }
 
 static void
 action_mail_reply_all_cb (GtkAction *action,
                           EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	em_folder_view_message_reply (folder_view, REPLY_MODE_ALL);
 }
 
 static void
 action_mail_reply_list_cb (GtkAction *action,
                            EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	em_folder_view_message_reply (folder_view, REPLY_MODE_LIST);
 }
 
 static void
 action_mail_reply_post_cb (GtkAction *action,
                            EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	if (folder_view->list->cursor_uid == NULL)
+		return;
+
+	if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window)))
+		return;
+
+	em_utils_post_reply_to_message_by_uid (
+		folder_view->folder, folder_view->list->cursor_uid);
 }
 
 static void
 action_mail_reply_sender_cb (GtkAction *action,
                              EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	em_folder_view_message_reply (folder_view, REPLY_MODE_SENDER);
 }
 
 static void
 action_mail_save_as_cb (GtkAction *action,
                         EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	EShellWindow *shell_window;
+	EShellView *shell_view;
+	GPtrArray *uids;
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_window = e_shell_view_get_shell_window (shell_view);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	uids = message_list_get_selected (folder_view->list);
+
+	em_utils_save_messages (
+		GTK_WIDGET (shell_window), folder_view->folder, uids);
 }
 
 static void
@@ -856,8 +1162,17 @@
 action_mail_undelete_cb (GtkAction *action,
                          EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFolderView *folder_view;
+	guint32 mask, set;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
+	mask = CAMEL_MESSAGE_DELETED;
+	set = 0;
+
+	em_folder_view_mark_selected (folder_view, mask, set);
 }
 
 static void
@@ -904,24 +1219,39 @@
 action_mail_zoom_100_cb (GtkAction *action,
                          EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFormatHTMLDisplay *format;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	format = e_mail_shell_content_get_preview_format (mail_shell_content);
+
+	em_format_html_display_zoom_reset (format);
 }
 
 static void
 action_mail_zoom_in_cb (GtkAction *action,
                         EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFormatHTMLDisplay *format;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	format = e_mail_shell_content_get_preview_format (mail_shell_content);
+
+	em_format_html_display_zoom_in (format);
 }
 
 static void
 action_mail_zoom_out_cb (GtkAction *action,
                          EMailShellView *mail_shell_view)
 {
-	/* FIXME */
-	g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action)));
+	EMailShellContent *mail_shell_content;
+	EMFormatHTMLDisplay *format;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	format = e_mail_shell_content_get_preview_format (mail_shell_content);
+
+	em_format_html_display_zoom_out (format);
 }
 
 static void

Modified: branches/kill-bonobo/mail/e-mail-shell-view-private.h
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-view-private.h	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-view-private.h	Thu Dec 18 02:04:27 2008
@@ -25,11 +25,13 @@
 #include "e-mail-shell-view.h"
 
 #include <glib/gi18n.h>
+#include <gtkhtml/gtkhtml.h>
 #include <camel/camel-vtrash-folder.h>
 
 #include "e-util/gconf-bridge.h"
 #include "widgets/menus/gal-view-instance.h"
 
+#include "em-composer-utils.h"
 #include "em-folder-selector.h"
 #include "em-utils.h"
 #include "mail-ops.h"

Modified: branches/kill-bonobo/mail/em-folder-view.c
==============================================================================
--- branches/kill-bonobo/mail/em-folder-view.c	(original)
+++ branches/kill-bonobo/mail/em-folder-view.c	Thu Dec 18 02:04:27 2008
@@ -126,7 +126,6 @@
 static void emfv_set_message(EMFolderView *emfv, const char *uid, int nomarkseen);
 static void emfv_activate(EMFolderView *emfv, BonoboUIComponent *uic, int state);
 
-static void emfv_message_reply(EMFolderView *emfv, int mode);
 static void vfolder_type_current (EMFolderView *emfv, int type);
 static void filter_type_current (EMFolderView *emfv, int type);
 
@@ -667,51 +666,51 @@
 	em_folder_view_open_selected(emfv);
 }
 
-static void
-emfv_popup_edit (EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids;
-
-	if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv))
-		return;
-
-	uids = message_list_get_selected(emfv->list);
-	em_utils_edit_messages (emfv->folder, uids, FALSE);
-}
-
-static void
-emfv_popup_saveas(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids;
-
-	uids = message_list_get_selected(emfv->list);
-	em_utils_save_messages((GtkWidget *)emfv, emfv->folder, uids);
-}
+//static void
+//emfv_popup_edit (EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids;
+//
+//	if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv))
+//		return;
+//
+//	uids = message_list_get_selected(emfv->list);
+//	em_utils_edit_messages (emfv->folder, uids, FALSE);
+//}
 
-static void
-emfv_view_load_images(BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
+//static void
+//emfv_popup_saveas(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids;
+//
+//	uids = message_list_get_selected(emfv->list);
+//	em_utils_save_messages((GtkWidget *)emfv, emfv->folder, uids);
+//}
 
-	if (emfv->preview)
-		em_format_html_load_http((EMFormatHTML *)emfv->preview);
-}
+//static void
+//emfv_view_load_images(BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	if (emfv->preview)
+//		em_format_html_load_http((EMFormatHTML *)emfv->preview);
+//}
 
-static void
-emfv_popup_print(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG);
-}
+//static void
+//emfv_popup_print(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG);
+//}
 
-static void
-emfv_popup_copy_text(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	gtk_html_copy (((EMFormatHTML *)emfv->preview)->html);
-}
+//static void
+//emfv_popup_copy_text(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	gtk_html_copy (((EMFormatHTML *)emfv->preview)->html);
+//}
 
 static void
 emfv_popup_source(EPopup *ep, EPopupItem *pitem, void *data)
@@ -732,50 +731,50 @@
 	message_list_free_uids(emfv->list, uids);
 }
 
-static void
-emfv_mail_compose(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv))
-		return;
-
-	em_utils_compose_new_message(emfv->folder_uri);
-}
-
-static void
-emfv_popup_reply_sender(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	emfv_message_reply(emfv, REPLY_MODE_SENDER);
-}
-
-static void
-emfv_popup_reply_list(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	emfv_message_reply(emfv, REPLY_MODE_LIST);
-}
+//static void
+//emfv_mail_compose(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv))
+//		return;
+//
+//	em_utils_compose_new_message(emfv->folder_uri);
+//}
 
-static void
-emfv_popup_reply_all(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	emfv_message_reply(emfv, REPLY_MODE_ALL);
-}
+//static void
+//emfv_popup_reply_sender(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	em_folder_view_message_reply(emfv, REPLY_MODE_SENDER);
+//}
 
-static void
-emfv_popup_forward(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids;
+//static void
+//emfv_popup_reply_list(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	em_folder_view_message_reply(emfv, REPLY_MODE_LIST);
+//}
 
-	if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv))
-		return;
+//static void
+//emfv_popup_reply_all(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	em_folder_view_message_reply(emfv, REPLY_MODE_ALL);
+//}
 
-	uids = message_list_get_selected(emfv->list);
-	em_utils_forward_messages (emfv->folder, uids, emfv->folder_uri);
-}
+//static void
+//emfv_popup_forward(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids;
+//
+//	if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv))
+//		return;
+//
+//	uids = message_list_get_selected(emfv->list);
+//	em_utils_forward_messages (emfv->folder, uids, emfv->folder_uri);
+//}
 
 static void
 emfv_popup_flag_followup(EPopup *ep, EPopupItem *pitem, void *data)
@@ -978,12 +977,12 @@
 #undef DelInVFolderCheckName
 #undef DelInVFolderKey
 
-static void
-emfv_popup_undelete(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	em_folder_view_mark_selected(emfv, CAMEL_MESSAGE_DELETED, 0);
-}
+//static void
+//emfv_popup_undelete(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	em_folder_view_mark_selected(emfv, CAMEL_MESSAGE_DELETED, 0);
+//}
 
 //struct _move_data {
 //	EMFolderView *emfv;
@@ -1101,40 +1100,40 @@
 	}
 }
 
-static void
-emfv_popup_add_sender(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids = message_list_get_selected(emfv->list);
-	CamelMessageInfo *info;
-	const char *addr;
-
-	if (uids->len == 1
-	    && (info = camel_folder_get_message_info(emfv->folder, uids->pdata[0])) != NULL
-	    && (addr = camel_message_info_from(info)) != NULL
-	    && addr[0] != 0)
-		em_utils_add_address((GtkWidget *)emfv, addr);
-
-	em_utils_uids_free(uids);
-}
-
-static void
-emfv_popup_apply_filters(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids = message_list_get_selected(emfv->list);
-
-	mail_filter_on_demand(emfv->folder, uids);
-}
+//static void
+//emfv_popup_add_sender(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids = message_list_get_selected(emfv->list);
+//	CamelMessageInfo *info;
+//	const char *addr;
+//
+//	if (uids->len == 1
+//	    && (info = camel_folder_get_message_info(emfv->folder, uids->pdata[0])) != NULL
+//	    && (addr = camel_message_info_from(info)) != NULL
+//	    && addr[0] != 0)
+//		em_utils_add_address((GtkWidget *)emfv, addr);
+//
+//	em_utils_uids_free(uids);
+//}
 
-static void
-emfv_popup_filter_junk(EPopup *ep, EPopupItem *pitem, void *data)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids = message_list_get_selected(emfv->list);
+//static void
+//emfv_popup_apply_filters(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids = message_list_get_selected(emfv->list);
+//
+//	mail_filter_on_demand(emfv->folder, uids);
+//}
 
-	mail_filter_junk(emfv->folder, uids);
-}
+//static void
+//emfv_popup_filter_junk(EPopup *ep, EPopupItem *pitem, void *data)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids = message_list_get_selected(emfv->list);
+//
+//	mail_filter_junk(emfv->folder, uids);
+//}
 
 /* filter callbacks, this will eventually be a wizard, see
    filter_type_current/vfolder_type_current for implementation */
@@ -1160,23 +1159,23 @@
 /* TODO: Move some of these to be 'standard' menu's */
 
 static EPopupItem emfv_popup_items[] = {
-	{ E_POPUP_ITEM, "00.emfv.00", N_("_Copy"), emfv_popup_copy_text, NULL, "edit-copy", EM_FOLDER_VIEW_SELECT_DISPLAY|EM_FOLDER_VIEW_SELECT_SELECTION },
+//	{ E_POPUP_ITEM, "00.emfv.00", N_("_Copy"), emfv_popup_copy_text, NULL, "edit-copy", EM_FOLDER_VIEW_SELECT_DISPLAY|EM_FOLDER_VIEW_SELECT_SELECTION },
 
 	{ E_POPUP_BAR, "10.emfv", NULL, NULL, NULL, NULL },
 
-	{ E_POPUP_ITEM, "10.emfv.00", N_("_Reply to Sender"), emfv_popup_reply_sender, NULL, "mail-reply-sender", EM_POPUP_SELECT_ONE },
-	{ E_POPUP_ITEM, "10.emfv.01", N_("Reply to _All"), emfv_popup_reply_all, NULL, "mail-reply-all", EM_POPUP_SELECT_ONE },
-	{ E_POPUP_ITEM, "10.emfv.02", N_("_Forward"), emfv_popup_forward, NULL, "mail-forward", EM_POPUP_SELECT_MANY },
+//	{ E_POPUP_ITEM, "10.emfv.00", N_("_Reply to Sender"), emfv_popup_reply_sender, NULL, "mail-reply-sender", EM_POPUP_SELECT_ONE },
+//	{ E_POPUP_ITEM, "10.emfv.01", N_("Reply to _All"), emfv_popup_reply_all, NULL, "mail-reply-all", EM_POPUP_SELECT_ONE },
+//	{ E_POPUP_ITEM, "10.emfv.02", N_("_Forward"), emfv_popup_forward, NULL, "mail-forward", EM_POPUP_SELECT_MANY },
 
 	{ E_POPUP_BAR, "20.emfv", NULL, NULL, NULL, NULL },
 	/* EM_POPUP_EDIT was used here. This is changed to EM_POPUP_SELECT_ONE as Edit-as-new-messaeg need not be restricted to Sent-Items folder alone */
-	{ E_POPUP_ITEM, "20.emfv.00", N_("_Edit as New Message..."), emfv_popup_edit, NULL, NULL, EM_POPUP_SELECT_ONE },
-	{ E_POPUP_ITEM, "20.emfv.01", N_("_Save As..."), emfv_popup_saveas, NULL, "document-save-as", EM_POPUP_SELECT_MANY },
-	{ E_POPUP_ITEM, "20.emfv.02", N_("_Print..."), emfv_popup_print, NULL, "document-print", EM_POPUP_SELECT_ONE },
+//	{ E_POPUP_ITEM, "20.emfv.00", N_("_Edit as New Message..."), emfv_popup_edit, NULL, NULL, EM_POPUP_SELECT_ONE },
+//	{ E_POPUP_ITEM, "20.emfv.01", N_("_Save As..."), emfv_popup_saveas, NULL, "document-save-as", EM_POPUP_SELECT_MANY },
+//	{ E_POPUP_ITEM, "20.emfv.02", N_("_Print..."), emfv_popup_print, NULL, "document-print", EM_POPUP_SELECT_ONE },
 
 	{ E_POPUP_BAR, "40.emfv", NULL, NULL, NULL, NULL },
 	{ E_POPUP_ITEM, "40.emfv.00", N_("_Delete"), emfv_popup_delete, NULL, "edit-delete", EM_POPUP_SELECT_DELETE|EM_FOLDER_VIEW_SELECT_LISTONLY },
-	{ E_POPUP_ITEM, "40.emfv.01", N_("U_ndelete"), emfv_popup_undelete, NULL, NULL, EM_POPUP_SELECT_UNDELETE|EM_FOLDER_VIEW_SELECT_LISTONLY },
+//	{ E_POPUP_ITEM, "40.emfv.01", N_("U_ndelete"), emfv_popup_undelete, NULL, NULL, EM_POPUP_SELECT_UNDELETE|EM_FOLDER_VIEW_SELECT_LISTONLY },
 //	{ E_POPUP_ITEM, "40.emfv.02", N_("_Move to Folder..."), emfv_popup_move, NULL, "mail-move", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_LISTONLY },
 //	{ E_POPUP_ITEM, "40.emfv.03", N_("_Copy to Folder..."), emfv_popup_copy, NULL, "mail-copy", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_LISTONLY },
 
@@ -1357,15 +1356,15 @@
 	to(NULL, NULL, data);					\
 }
 
-EMFV_MAP_CALLBACK(emfv_add_sender_addressbook, emfv_popup_add_sender)
-EMFV_MAP_CALLBACK(emfv_message_apply_filters, emfv_popup_apply_filters)
-EMFV_MAP_CALLBACK(emfv_message_filter_junk, emfv_popup_filter_junk)
+//EMFV_MAP_CALLBACK(emfv_add_sender_addressbook, emfv_popup_add_sender)
+//EMFV_MAP_CALLBACK(emfv_message_apply_filters, emfv_popup_apply_filters)
+//EMFV_MAP_CALLBACK(emfv_message_filter_junk, emfv_popup_filter_junk)
 //EMFV_MAP_CALLBACK(emfv_message_copy, emfv_popup_copy)
 //EMFV_MAP_CALLBACK(emfv_message_move, emfv_popup_move)
-EMFV_MAP_CALLBACK(emfv_message_forward, emfv_popup_forward)
-EMFV_MAP_CALLBACK(emfv_message_reply_all, emfv_popup_reply_all)
-EMFV_MAP_CALLBACK(emfv_message_reply_list, emfv_popup_reply_list)
-EMFV_MAP_CALLBACK(emfv_message_reply_sender, emfv_popup_reply_sender)
+//EMFV_MAP_CALLBACK(emfv_message_forward, emfv_popup_forward)
+//EMFV_MAP_CALLBACK(emfv_message_reply_all, emfv_popup_reply_all)
+//EMFV_MAP_CALLBACK(emfv_message_reply_list, emfv_popup_reply_list)
+//EMFV_MAP_CALLBACK(emfv_message_reply_sender, emfv_popup_reply_sender)
 //EMFV_MAP_CALLBACK(emfv_message_mark_read, emfv_popup_mark_read)
 //EMFV_MAP_CALLBACK(emfv_message_mark_unread, emfv_popup_mark_unread)
 //EMFV_MAP_CALLBACK(emfv_message_mark_important, emfv_popup_mark_important)
@@ -1373,23 +1372,23 @@
 //EMFV_MAP_CALLBACK(emfv_message_mark_junk, emfv_popup_mark_junk)
 //EMFV_MAP_CALLBACK(emfv_message_mark_nojunk, emfv_popup_mark_nojunk)
 EMFV_MAP_CALLBACK(emfv_message_delete, emfv_popup_delete)
-EMFV_MAP_CALLBACK(emfv_message_undelete, emfv_popup_undelete)
+//EMFV_MAP_CALLBACK(emfv_message_undelete, emfv_popup_undelete)
 EMFV_MAP_CALLBACK(emfv_message_followup_flag, emfv_popup_flag_followup)
 EMFV_MAP_CALLBACK(emfv_message_followup_clear, emfv_popup_flag_clear)
 EMFV_MAP_CALLBACK(emfv_message_followup_completed, emfv_popup_flag_completed)
 EMFV_MAP_CALLBACK(emfv_message_open, emfv_popup_open)
-EMFV_MAP_CALLBACK(emfv_message_edit, emfv_popup_edit)
-EMFV_MAP_CALLBACK(emfv_message_saveas, emfv_popup_saveas)
-EMFV_MAP_CALLBACK(emfv_print_message, emfv_popup_print)
+//EMFV_MAP_CALLBACK(emfv_message_edit, emfv_popup_edit)
+//EMFV_MAP_CALLBACK(emfv_message_saveas, emfv_popup_saveas)
+//EMFV_MAP_CALLBACK(emfv_print_message, emfv_popup_print)
 EMFV_MAP_CALLBACK(emfv_message_source, emfv_popup_source)
 
-static void
-emfv_empty_trash(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	em_utils_empty_trash (gtk_widget_get_toplevel ((GtkWidget *) emfv));
-}
+//static void
+//emfv_empty_trash(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	em_utils_empty_trash (gtk_widget_get_toplevel ((GtkWidget *) emfv));
+//}
 
 static void
 prepare_offline(void *key, void *value, void *data)
@@ -1451,132 +1450,132 @@
 
 }
 
-static void
-emfv_mail_next(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	e_profile_event_emit("goto.next", "", 0);
-
-	message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT, 0, 0);
-}
-
-static void
-emfv_mail_next_flagged(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED);
-}
-
-static void
-emfv_mail_next_unread(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	gtk_widget_grab_focus((GtkWidget *) emfv->list);
-	message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN);
-}
-
-static void
-emfv_mail_next_thread(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	message_list_select_next_thread(emfv->list);
-}
-
-static void
-emfv_mail_previous(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, 0);
-}
-
-static void
-emfv_mail_previous_flagged(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED);
-}
-
-static void
-emfv_mail_previous_unread(BonoboUIComponent *uid, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	gtk_widget_grab_focus((GtkWidget *) emfv->list);
-	message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN);
-}
-
-static void
-emfv_message_forward_attached (BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids;
-
-	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
-		return;
-
-	uids = message_list_get_selected (emfv->list);
-	em_utils_forward_attached (emfv->folder, uids, emfv->folder_uri);
-}
-
-static void
-emfv_message_forward_inline (BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids;
-
-	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
-		return;
-
-	uids = message_list_get_selected (emfv->list);
-	em_utils_forward_inline (emfv->folder, uids, emfv->folder_uri);
-}
+//static void
+//emfv_mail_next(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	e_profile_event_emit("goto.next", "", 0);
+//
+//	message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT, 0, 0);
+//}
 
-static void
-emfv_message_forward_quoted (BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-	GPtrArray *uids;
+//static void
+//emfv_mail_next_flagged(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED);
+//}
 
-	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
-		return;
+//static void
+//emfv_mail_next_unread(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	gtk_widget_grab_focus((GtkWidget *) emfv->list);
+//	message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN);
+//}
 
-	uids = message_list_get_selected (emfv->list);
-	em_utils_forward_quoted (emfv->folder, uids, emfv->folder_uri);
-}
+//static void
+//emfv_mail_next_thread(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	message_list_select_next_thread(emfv->list);
+//}
 
-static void
-emfv_message_redirect (BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
+//static void
+//emfv_mail_previous(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, 0);
+//}
 
-	if (emfv->list->cursor_uid == NULL)
-		return;
+//static void
+//emfv_mail_previous_flagged(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED);
+//}
 
-	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
-		return;
+//static void
+//emfv_mail_previous_unread(BonoboUIComponent *uid, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	gtk_widget_grab_focus((GtkWidget *) emfv->list);
+//	message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN);
+//}
 
-	em_utils_redirect_message_by_uid (emfv->folder, emfv->list->cursor_uid);
-}
+//static void
+//emfv_message_forward_attached (BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids;
+//
+//	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
+//		return;
+//
+//	uids = message_list_get_selected (emfv->list);
+//	em_utils_forward_attached (emfv->folder, uids, emfv->folder_uri);
+//}
 
-static void
-emfv_message_post_reply (BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
+//static void
+//emfv_message_forward_inline (BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids;
+//
+//	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
+//		return;
+//
+//	uids = message_list_get_selected (emfv->list);
+//	em_utils_forward_inline (emfv->folder, uids, emfv->folder_uri);
+//}
 
-	if (emfv->list->cursor_uid == NULL)
-		return;
+//static void
+//emfv_message_forward_quoted (BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//	GPtrArray *uids;
+//
+//	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
+//		return;
+//
+//	uids = message_list_get_selected (emfv->list);
+//	em_utils_forward_quoted (emfv->folder, uids, emfv->folder_uri);
+//}
 
-	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
-		return;
+//static void
+//emfv_message_redirect (BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	if (emfv->list->cursor_uid == NULL)
+//		return;
+//
+//	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
+//		return;
+//
+//	em_utils_redirect_message_by_uid (emfv->folder, emfv->list->cursor_uid);
+//}
 
-	em_utils_post_reply_to_message_by_uid (emfv->folder, emfv->list->cursor_uid);
-}
+//static void
+//emfv_message_post_reply (BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	if (emfv->list->cursor_uid == NULL)
+//		return;
+//
+//	if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
+//		return;
+//
+//	em_utils_post_reply_to_message_by_uid (emfv->folder, emfv->list->cursor_uid);
+//}
 
 static gboolean
 html_contains_nonwhitespace (const char *html, gint len)
@@ -1616,8 +1615,8 @@
 	return p - html < len - 1 && c != 0;
 }
 
-static void
-emfv_message_reply(EMFolderView *emfv, int mode)
+void
+em_folder_view_message_reply(EMFolderView *emfv, int mode)
 {
 	char *html = NULL;
 	gint len;
@@ -1672,40 +1671,40 @@
 #endif
 }
 
-static void
-emfv_print_preview_message(BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PREVIEW);
-}
-
-static void
-emfv_text_zoom_in(BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
-
-	if (emfv->preview)
-		em_format_html_display_zoom_in(emfv->preview);
-}
-
-static void
-emfv_text_zoom_out(BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
+//static void
+//emfv_print_preview_message(BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PREVIEW);
+//}
 
-	if (emfv->preview)
-		em_format_html_display_zoom_out(emfv->preview);
-}
+//static void
+//emfv_text_zoom_in(BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	if (emfv->preview)
+//		em_format_html_display_zoom_in(emfv->preview);
+//}
 
-static void
-emfv_text_zoom_reset(BonoboUIComponent *uic, void *data, const char *path)
-{
-	EMFolderView *emfv = data;
+//static void
+//emfv_text_zoom_out(BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	if (emfv->preview)
+//		em_format_html_display_zoom_out(emfv->preview);
+//}
 
-	if (emfv->preview)
-		em_format_html_display_zoom_reset(emfv->preview);
-}
+//static void
+//emfv_text_zoom_reset(BonoboUIComponent *uic, void *data, const char *path)
+//{
+//	EMFolderView *emfv = data;
+//
+//	if (emfv->preview)
+//		em_format_html_display_zoom_reset(emfv->preview);
+//}
 
 /* ********************************************************************** */
 
@@ -1874,7 +1873,7 @@
 /* ********************************************************************** */
 
 static BonoboUIVerb emfv_message_verbs[] = {
-	BONOBO_UI_UNSAFE_VERB ("EmptyTrash", emfv_empty_trash),
+//	BONOBO_UI_UNSAFE_VERB ("EmptyTrash", emfv_empty_trash),
 	BONOBO_UI_UNSAFE_VERB ("PrepareForOffline", emfv_prepare_offline),
 	BONOBO_UI_UNSAFE_VERB ("EditCut", emfv_edit_cut),
 	BONOBO_UI_UNSAFE_VERB ("EditCopy", emfv_edit_copy),
@@ -1882,26 +1881,26 @@
 
 	BONOBO_UI_UNSAFE_VERB ("SelectAllText", emfv_select_all_text),
 
-	BONOBO_UI_UNSAFE_VERB ("MailNext", emfv_mail_next),
-	BONOBO_UI_UNSAFE_VERB ("MailNextFlagged", emfv_mail_next_flagged),
-	BONOBO_UI_UNSAFE_VERB ("MailNextUnread", emfv_mail_next_unread),
-	BONOBO_UI_UNSAFE_VERB ("MailNextThread", emfv_mail_next_thread),
-	BONOBO_UI_UNSAFE_VERB ("MailPrevious", emfv_mail_previous),
-	BONOBO_UI_UNSAFE_VERB ("MailPreviousFlagged", emfv_mail_previous_flagged),
-	BONOBO_UI_UNSAFE_VERB ("MailPreviousUnread", emfv_mail_previous_unread),
+//	BONOBO_UI_UNSAFE_VERB ("MailNext", emfv_mail_next),
+//	BONOBO_UI_UNSAFE_VERB ("MailNextFlagged", emfv_mail_next_flagged),
+//	BONOBO_UI_UNSAFE_VERB ("MailNextUnread", emfv_mail_next_unread),
+//	BONOBO_UI_UNSAFE_VERB ("MailNextThread", emfv_mail_next_thread),
+//	BONOBO_UI_UNSAFE_VERB ("MailPrevious", emfv_mail_previous),
+//	BONOBO_UI_UNSAFE_VERB ("MailPreviousFlagged", emfv_mail_previous_flagged),
+//	BONOBO_UI_UNSAFE_VERB ("MailPreviousUnread", emfv_mail_previous_unread),
 
-	BONOBO_UI_UNSAFE_VERB ("AddSenderToAddressbook", emfv_add_sender_addressbook),
+//	BONOBO_UI_UNSAFE_VERB ("AddSenderToAddressbook", emfv_add_sender_addressbook),
 
-	BONOBO_UI_UNSAFE_VERB ("MessageApplyFilters", emfv_message_apply_filters),
-	BONOBO_UI_UNSAFE_VERB ("MessageFilterJunk", emfv_message_filter_junk),
+//	BONOBO_UI_UNSAFE_VERB ("MessageApplyFilters", emfv_message_apply_filters),
+//	BONOBO_UI_UNSAFE_VERB ("MessageFilterJunk", emfv_message_filter_junk),
 //	BONOBO_UI_UNSAFE_VERB ("MessageCopy", emfv_message_copy),
 	BONOBO_UI_UNSAFE_VERB ("MessageDelete", emfv_message_delete),
 	BONOBO_UI_UNSAFE_VERB ("MessageDeleteKey", emfv_message_delete),
-	BONOBO_UI_UNSAFE_VERB ("MessageForward", emfv_message_forward),
-	BONOBO_UI_UNSAFE_VERB ("MessageForwardAttached", emfv_message_forward_attached),
-	BONOBO_UI_UNSAFE_VERB ("MessageForwardInline", emfv_message_forward_inline),
-	BONOBO_UI_UNSAFE_VERB ("MessageForwardQuoted", emfv_message_forward_quoted),
-	BONOBO_UI_UNSAFE_VERB ("MessageRedirect", emfv_message_redirect),
+//	BONOBO_UI_UNSAFE_VERB ("MessageForward", emfv_message_forward),
+//	BONOBO_UI_UNSAFE_VERB ("MessageForwardAttached", emfv_message_forward_attached),
+//	BONOBO_UI_UNSAFE_VERB ("MessageForwardInline", emfv_message_forward_inline),
+//	BONOBO_UI_UNSAFE_VERB ("MessageForwardQuoted", emfv_message_forward_quoted),
+//	BONOBO_UI_UNSAFE_VERB ("MessageRedirect", emfv_message_redirect),
 //	BONOBO_UI_UNSAFE_VERB ("MessageMarkAsRead", emfv_message_mark_read),
 //	BONOBO_UI_UNSAFE_VERB ("MessageMarkAsUnRead", emfv_message_mark_unread),
 //	BONOBO_UI_UNSAFE_VERB ("MessageMarkAsImportant", emfv_message_mark_important),
@@ -1913,25 +1912,25 @@
 	BONOBO_UI_UNSAFE_VERB ("MessageFollowUpClear", emfv_message_followup_clear),
 //	BONOBO_UI_UNSAFE_VERB ("MessageMove", emfv_message_move),
 	BONOBO_UI_UNSAFE_VERB ("MessageOpen", emfv_message_open),
-	BONOBO_UI_UNSAFE_VERB ("MessagePostReply", emfv_message_post_reply),
-	BONOBO_UI_UNSAFE_VERB ("MessageReplyAll", emfv_message_reply_all),
-	BONOBO_UI_UNSAFE_VERB ("MessageReplyList", emfv_message_reply_list),
-	BONOBO_UI_UNSAFE_VERB ("MessageReplySender", emfv_message_reply_sender),
-	BONOBO_UI_UNSAFE_VERB ("MessageEdit", emfv_message_edit),
-	BONOBO_UI_UNSAFE_VERB ("MessageSaveAs", emfv_message_saveas),
+//	BONOBO_UI_UNSAFE_VERB ("MessagePostReply", emfv_message_post_reply),
+//	BONOBO_UI_UNSAFE_VERB ("MessageReplyAll", emfv_message_reply_all),
+//	BONOBO_UI_UNSAFE_VERB ("MessageReplyList", emfv_message_reply_list),
+//	BONOBO_UI_UNSAFE_VERB ("MessageReplySender", emfv_message_reply_sender),
+//	BONOBO_UI_UNSAFE_VERB ("MessageEdit", emfv_message_edit),
+//	BONOBO_UI_UNSAFE_VERB ("MessageSaveAs", emfv_message_saveas),
 	BONOBO_UI_UNSAFE_VERB ("MessageSearch", emfv_message_search),
-	BONOBO_UI_UNSAFE_VERB ("MessageUndelete", emfv_message_undelete),
+//	BONOBO_UI_UNSAFE_VERB ("MessageUndelete", emfv_message_undelete),
 
-	BONOBO_UI_UNSAFE_VERB ("PrintMessage", emfv_print_message),
-	BONOBO_UI_UNSAFE_VERB ("PrintPreviewMessage", emfv_print_preview_message),
+//	BONOBO_UI_UNSAFE_VERB ("PrintMessage", emfv_print_message),
+//	BONOBO_UI_UNSAFE_VERB ("PrintPreviewMessage", emfv_print_preview_message),
 
-	BONOBO_UI_UNSAFE_VERB ("TextZoomIn", emfv_text_zoom_in),
-	BONOBO_UI_UNSAFE_VERB ("TextZoomOut", emfv_text_zoom_out),
-	BONOBO_UI_UNSAFE_VERB ("TextZoomReset", emfv_text_zoom_reset),
+//	BONOBO_UI_UNSAFE_VERB ("TextZoomIn", emfv_text_zoom_in),
+//	BONOBO_UI_UNSAFE_VERB ("TextZoomOut", emfv_text_zoom_out),
+//	BONOBO_UI_UNSAFE_VERB ("TextZoomReset", emfv_text_zoom_reset),
 
 	BONOBO_UI_UNSAFE_VERB ("ViewSource", emfv_message_source),
 
-	BONOBO_UI_UNSAFE_VERB ("MailCompose", emfv_mail_compose),
+//	BONOBO_UI_UNSAFE_VERB ("MailCompose", emfv_mail_compose),
 
 	/* TODO: This stuff should just be 1 item that runs a wizard */
 	BONOBO_UI_UNSAFE_VERB ("ToolsFilterMailingList", emfv_tools_filter_mlist),
@@ -1943,7 +1942,7 @@
 	BONOBO_UI_UNSAFE_VERB ("ToolsVFolderSender", emfv_tools_vfolder_sender),
 	BONOBO_UI_UNSAFE_VERB ("ToolsVFolderSubject", emfv_tools_vfolder_subject),
 
-	BONOBO_UI_UNSAFE_VERB ("ViewLoadImages", emfv_view_load_images),
+//	BONOBO_UI_UNSAFE_VERB ("ViewLoadImages", emfv_view_load_images),
 	/* ViewHeaders stuff is a radio */
 	/* CaretMode is a toggle */
 
@@ -2446,7 +2445,7 @@
 		break;
 #ifdef HAVE_XFREE
 	case XF86XK_Reply:
-		emfv_message_reply(emfv, REPLY_MODE_ALL);
+		em_folder_view_message_reply(emfv, REPLY_MODE_ALL);
 		break;
 	case XF86XK_MailForward:
 		uids = message_list_get_selected(emfv->list);

Modified: branches/kill-bonobo/mail/em-folder-view.h
==============================================================================
--- branches/kill-bonobo/mail/em-folder-view.h	(original)
+++ branches/kill-bonobo/mail/em-folder-view.h	Thu Dec 18 02:04:27 2008
@@ -141,6 +141,7 @@
 #define em_folder_view_set_message(emfv, uid, nomarkseen) EM_FOLDER_VIEW_GET_CLASS (emfv)->set_message((emfv), (uid), (nomarkseen))
 
 void em_folder_view_select_next_message(EMFolderView *emfv, int count, gboolean always_can_previous);
+void em_folder_view_message_reply(EMFolderView *emfv, int mode);
 
 EMPopupTargetSelect *em_folder_view_get_popup_target(EMFolderView *emfv, EMPopup *emp, int on_display);
 

Modified: branches/kill-bonobo/ui/evolution-mail.ui
==============================================================================
--- branches/kill-bonobo/ui/evolution-mail.ui	(original)
+++ branches/kill-bonobo/ui/evolution-mail.ui	Thu Dec 18 02:04:27 2008
@@ -1,6 +1,9 @@
 <ui>
   <menubar name='main-menu'>
     <menu action='file-menu'>
+      <placeholder name='file-actions'>
+        <menuitem action='mail-save-as'/>
+      </placeholder>
       <placeholder name='print-actions'>
         <menuitem action='mail-print-preview'/>
         <menuitem action='mail-print'/>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]