[anjal] Give extra options for view to create pages.
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] Give extra options for view to create pages.
- Date: Fri, 29 May 2009 14:12:37 -0400 (EDT)
commit d22c2afe08ebd4ef7f1abd4a166c81c2b7c73475
Author: Srinivasa Ragavan <sragavan novell com>
Date: Fri May 29 23:43:55 2009 +0530
Give extra options for view to create pages.
---
src/mail-shell.c | 42 +++++++++++++++++++++++++++++++++++++-----
src/mail-shell.h | 3 ++-
2 files changed, 39 insertions(+), 6 deletions(-)
diff --git a/src/mail-shell.c b/src/mail-shell.c
index 3460b00..8c5d3fe 100644
--- a/src/mail-shell.c
+++ b/src/mail-shell.c
@@ -32,6 +32,8 @@
#include <gdk/gdkkeysyms.h>
#include <misc/e-spinner.h>
#include "mail-decoration.h"
+#include <mail/em-utils.h>
+#include <mail/em-composer-utils.h>
enum {
BACKSPACE_PRESSED,
@@ -77,6 +79,8 @@ struct _MailShellPrivate {
GtkWidget *settings;
GtkWidget *quit;
GtkWidget *slider;
+
+ char **args;
};
G_DEFINE_TYPE (MailShell, mail_shell, GTK_TYPE_WINDOW)
@@ -175,7 +179,7 @@ new_email_btn_clicked (GtkButton *button, gpointer data)
MailShell *shell = (MailShell *) data;
MailView *view = (MailView *)shell->mail_component->mail_view;
- mail_view_add_page ((MailView *)view, MAIL_VIEW_COMPOSER);
+ mail_view_add_page ((MailView *)view, MAIL_VIEW_COMPOSER, NULL);
}
MailViewChild *
@@ -184,7 +188,7 @@ mail_shell_create_composer (void)
MailComponent *mc = mail_component_peek ();
MailView *view = (MailView *)mc->mail_view;
- return mail_view_add_page ((MailView *)view, MAIL_VIEW_COMPOSER);
+ return mail_view_add_page ((MailView *)view, MAIL_VIEW_COMPOSER, NULL);
}
static void
@@ -202,7 +206,7 @@ settings_btn_clicked (GtkButton *button, gpointer data)
MailShell *shell = (MailShell *) data;
MailView *view = (MailView *)shell->mail_component->mail_view;
- mail_view_add_page ((MailView *)view, MAIL_VIEW_SETTINGS);
+ mail_view_add_page ((MailView *)view, MAIL_VIEW_SETTINGS, NULL);
}
static void
@@ -271,7 +275,7 @@ static void
ms_show_post_druid (MailViewChild *mfv, MailShell *shell)
{
gtk_widget_show (((MailView *) shell->mail_component->mail_view)->folder_tree);
- mail_view_add_page ((MailView *)shell->mail_component->mail_view, MAIL_VIEW_SETTINGS);
+ mail_view_add_page ((MailView *)shell->mail_component->mail_view, MAIL_VIEW_SETTINGS, NULL);
}
void
@@ -442,7 +446,7 @@ mail_shell_construct (MailShell *shell)
MailViewChild *mc;
gtk_widget_hide (((MailView *) shell->mail_component->mail_view)->folder_tree);
- mc = mail_view_add_page ((MailView *)shell->mail_component->mail_view, MAIL_VIEW_ACCOUNT);
+ mc = mail_view_add_page ((MailView *)shell->mail_component->mail_view, MAIL_VIEW_ACCOUNT, NULL);
g_signal_connect (mc, "view-close", G_CALLBACK(ms_show_post_druid), shell);
}
}
@@ -455,3 +459,31 @@ mail_shell_new ()
return shell;
}
+
+void
+mail_shell_set_cmdline_args (MailShell *shell, char **args)
+{
+ shell->priv->args = args;
+}
+
+void e_msg_composer_set_lite (void);
+
+void
+mail_shell_handle_cmdline (MailShell *shell)
+{
+ int i;
+
+ e_msg_composer_set_lite ();
+ for (i=0; shell->priv->args[i]; i++) {
+ if (strncmp (shell->priv->args[i], "mailto:", 7) == 0) {
+ /* Handle mailto:// */
+ if (em_utils_check_user_can_send_mail(NULL)) {
+ GtkWidget *composer = (GtkWidget *) em_utils_compose_new_message_with_mailto ((const char *)shell->priv->args[i], NULL);
+ mail_view_add_page ((MailView *)shell->mail_component->mail_view, MAIL_VIEW_COMPOSER, (gpointer)composer);
+
+ } else {
+ g_message ("Please configure an account before anything else");
+ }
+ }
+ }
+}
diff --git a/src/mail-shell.h b/src/mail-shell.h
index c82ba07..34d0ce1 100644
--- a/src/mail-shell.h
+++ b/src/mail-shell.h
@@ -52,7 +52,8 @@ typedef struct _MailShellClass {
MailShell * mail_shell_new (void);
MailViewChild *mail_shell_create_composer (void);
-
+void mail_shell_set_cmdline_args (MailShell *shell, char **args);
+void mail_shell_handle_cmdline (MailShell *shell);
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]