[anjal] Add some UI to pop out composer from inline. Not fully done.
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] Add some UI to pop out composer from inline. Not fully done.
- Date: Fri, 8 May 2009 05:38:48 -0400 (EDT)
commit a23118509097cabe903cd52576b65e4bfe4903de
Author: Srinivasa Ragavan <sragavan novell com>
Date: Fri May 8 15:07:44 2009 +0530
Add some UI to pop out composer from inline. Not fully done.
---
src/mail-message-view.c | 32 ++++++++++++++++++++++++++++++--
src/mail-message-view.h | 3 ++-
src/mail-shell.c | 9 +++++++++
src/mail-shell.h | 3 +++
4 files changed, 44 insertions(+), 3 deletions(-)
diff --git a/src/mail-message-view.c b/src/mail-message-view.c
index 08b2f9c..0a2041b 100644
--- a/src/mail-message-view.c
+++ b/src/mail-message-view.c
@@ -212,6 +212,7 @@ mmv_show (MailMessageView *mmv)
gtk_widget_show (mmv->body);
gtk_widget_show_all (mmv->footer);
gtk_widget_hide (mmv->discard);
+ gtk_widget_hide (mmv->pop_out);
gtk_arrow_set (mmv->priv->arrow, GTK_ARROW_DOWN, GTK_SHADOW_NONE);
}
@@ -342,6 +343,20 @@ discard_composer_cb (GtkWidget *w, MailMessageView *mmv)
gtk_widget_hide (mmv->frame);
gtk_widget_hide (mmv->comp_view);
gtk_widget_hide (mmv->discard);
+ gtk_widget_hide (mmv->pop_out);
+ /* FIXME: Destroy the composer in here */
+}
+
+static void
+popout_composer_cb (GtkWidget *w, MailMessageView *mmv)
+{
+ MailComposerView *mcv;
+
+ gtk_widget_hide (mmv->frame);
+ gtk_widget_hide (mmv->comp_view);
+ gtk_widget_hide (mmv->discard);
+ gtk_widget_hide (mmv->pop_out);
+ mcv = mail_shell_create_composer ();
/* FIXME: Destroy the composer in here */
}
@@ -388,6 +403,7 @@ construct_reply_composer (MailMessageView *mmv, int mode)
gtk_box_pack_start (mmv, mmv->frame, FALSE, FALSE, 6);
}
gtk_widget_show (mmv->discard);
+ gtk_widget_show (mmv->pop_out);
gtk_widget_show (mmv->frame);
gtk_widget_show (mmv->comp_view);
@@ -1144,11 +1160,23 @@ mail_message_view_set_message (MailMessageView *mmview, CamelFolder *folder, con
mmview->discard = gtk_button_new_with_label (_("Discard"));
g_signal_connect (mmview->discard, "clicked", G_CALLBACK (discard_composer_cb), mmview);
-// EXPOSE(discard, bgcolor);
- /* Hide this one be default */
gtk_widget_hide (mmview->discard);
gtk_box_pack_end (mmview->footer, mmview->discard, FALSE, FALSE, 12);
+ box = gtk_hbox_new (FALSE, 0);
+ img = e_icon_factory_get_icon ("tab-new", E_ICON_SIZE_BUTTON);
+ tmp = gtk_image_new_from_pixbuf (img);
+ gtk_box_pack_start(box, tmp, FALSE, FALSE, 0);
+ mmview->pop_out = gtk_button_new ();
+ g_signal_connect (mmview->pop_out, "clicked", G_CALLBACK (popout_composer_cb), mmview);
+ gtk_container_add(mmview->pop_out, box);
+ gtk_widget_show_all(mmview->pop_out);
+ gtk_widget_hide (mmview->pop_out);
+ gtk_box_pack_end (mmview->footer, mmview->pop_out, FALSE, FALSE, 12);
+
+// EXPOSE(discard, bgcolor);
+ /* Hide this one be default */
+
mmview->frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (mmview->frame, GTK_SHADOW_IN);
diff --git a/src/mail-message-view.h b/src/mail-message-view.h
index c9e930b..6ce2923 100644
--- a/src/mail-message-view.h
+++ b/src/mail-message-view.h
@@ -55,7 +55,8 @@ typedef struct _MailMessageView {
GtkWidget *frame;
GtkWidget *comp_view;
GtkWidget *discard;
-
+ GtkWidget *pop_out;
+
MailMessageViewPrivate *priv;
EMFormatWebKitDisplay *efwd;
} MailMessageView;
diff --git a/src/mail-shell.c b/src/mail-shell.c
index 9a509b9..154b034 100644
--- a/src/mail-shell.c
+++ b/src/mail-shell.c
@@ -174,6 +174,15 @@ new_email_btn_clicked (GtkButton *button, gpointer data)
mail_view_add_page (view, MAIL_VIEW_COMPOSER);
}
+MailViewChild *
+mail_shell_create_composer (void)
+{
+ MailComponent *mc = mail_component_peek ();
+ MailView *view = mc->mail_view;
+
+ return mail_view_add_page (view, MAIL_VIEW_COMPOSER);
+}
+
static void
ms_check_mail (GtkButton *button, gpointer data)
{
diff --git a/src/mail-shell.h b/src/mail-shell.h
index 6589046..c82ba07 100644
--- a/src/mail-shell.h
+++ b/src/mail-shell.h
@@ -25,6 +25,7 @@
#include <gtk/gtk.h>
#include "mail-component.h"
+#include "mail-view.h"
#define MAIL_SHELL_TYPE (mail_shell_get_type ())
#define MAIL_SHELL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MAIL_SHELL_TYPE, MailShell))
@@ -50,6 +51,8 @@ typedef struct _MailShellClass {
} MailShellClass;
MailShell * mail_shell_new (void);
+MailViewChild *mail_shell_create_composer (void);
+
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]