[anjal] Make composer work cool.



commit 383a8b65bbf8329051d66fc7aa79f594e45c9798
Author: Srinivasa Ragavan <sragavan novell com>
Date:   Mon May 11 17:02:27 2009 +0530

    Make composer work cool.
---
 src/Makefile.am          |    6 ------
 src/mail-composer-view.c |   15 ++++++++++-----
 src/mail-message-view.c  |   39 ++++++++++++++++++++++++++++-----------
 src/mail-message-view.h  |    1 +
 4 files changed, 39 insertions(+), 22 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index dacc648..0cb997a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -43,12 +43,6 @@ anjal_SOURCES = \
 	mail-conv-view.h \
 	mail-message-view.c \
 	mail-message-view.h \
-	e-msg-composer-utils.c \
-	e-msg-composer-utils.h \
-	e-composer-header-table.c \
-	e-composer-header-table.h \
-	e-msg-composer.h \
-	e-msg-composer.c \
 	mail-editor.c \
 	mail-editor.h \
 	mail-message-view.h \
diff --git a/src/mail-composer-view.c b/src/mail-composer-view.c
index 7f0496d..62cfca7 100644
--- a/src/mail-composer-view.c
+++ b/src/mail-composer-view.c
@@ -112,7 +112,7 @@ mail_composer_view_construct (MailComposerView *shell)
 	MailComposerViewPrivate *priv = shell->priv;
 	EMsgComposer *composer;
 
-	GtkWidget *scroller, *close_button, *w, *img;
+	GtkWidget *scroller, *close_button, *w, *img, *box, *tmp;
 	GdkPixbuf *icon;
 	int x,y;
 	
@@ -139,12 +139,17 @@ mail_composer_view_construct (MailComposerView *shell)
 	gtk_box_pack_start (shell->tab_label, close_button, FALSE, FALSE, 0);
 	gtk_widget_show_all (shell->tab_label);
 
-	composer = e_msg_composer_new ();
-	gtk_box_pack_start (shell, composer, TRUE, TRUE, 0);
+	box = gtk_vbox_new (FALSE, 0);
+	gtk_widget_show(box);
+	composer = em_utils_compose_lite_new_message (NULL);
+	tmp = g_object_get_data(composer, "vbox");
+	gtk_widget_reparent (tmp, box);
 
-	g_signal_connect (composer, "close", composer_close_cb, shell);
+	gtk_box_pack_start (shell, box, TRUE, TRUE, 0);
 
-	gtk_widget_show (composer);
+	g_signal_connect (composer, "send", composer_close_cb, shell);
+
+	gtk_widget_show (tmp);
 
 	gtk_widget_show (shell);
 }
diff --git a/src/mail-message-view.c b/src/mail-message-view.c
index 09c760b..19131ee 100644
--- a/src/mail-message-view.c
+++ b/src/mail-message-view.c
@@ -224,7 +224,8 @@ mmv_hide (MailMessageView *mmv)
 	gtk_widget_hide (mmv->body);
 	gtk_widget_hide_all (mmv->footer);
 	gtk_widget_hide (mmv->frame);
-	gtk_widget_hide (mmv->comp_view);
+	if (mmv->comp_view)
+		gtk_widget_hide (mmv->comp_view);
 	if (GTK_WIDGET_VISIBLE(mmv->main_header)) {
 		gtk_widget_hide (mmv->main_header);
 		gtk_label_set_markup (mmv->more_details, _("<u>show details</u>"));
@@ -349,6 +350,15 @@ discard_composer_cb (GtkWidget *w, MailMessageView *mmv)
 }
 
 static void
+mmv_mail_send (EMsgComposer *composer, MailMessageView *mmv)
+{
+	gtk_widget_hide (mmv->frame);
+	gtk_widget_hide (mmv->comp_view);
+	gtk_widget_hide (mmv->discard);
+	gtk_widget_hide (mmv->pop_out);
+}
+
+static void
 popout_composer_cb (GtkWidget *w, MailMessageView *mmv)
 {
 	MailViewChild *mcv;
@@ -383,25 +393,32 @@ construct_reply_composer (MailMessageView *mmv, int mode)
 	MailEditor *editor;
 	EComposerHeaderTable *table;
 	WebKitWebView *web_view;
-	
-	if (!E_IS_MSG_COMPOSER (mmv->comp_view)) {
-		mmv->comp_view = (EMsgComposer *)e_msg_composer_reply (NULL, NULL, mmv->priv->msg, mode, NULL);
-		gtk_widget_set_size_request (mmv->comp_view, -1, 480);	
+
+	e_msg_composer_set_lite();
+
+	if (!E_IS_MSG_COMPOSER (mmv->composer)) {
+		GtkWidget *box = gtk_vbox_new (FALSE, 0);
+		gtk_widget_show(box);
+		
+		mmv->composer = (EMsgComposer *)em_utils_reply_to_message (mmv->priv->folder, mmv->priv->uid, mmv->priv->msg, mode, NULL);
+		mmv->comp_view = g_object_get_data(mmv->composer,"vbox");
+		gtk_widget_reparent (mmv->comp_view, box);
+		gtk_widget_set_size_request (mmv->comp_view, -1, 400);	
 		
 		/* Trying to focus on the editor */
-		editor = e_msg_composer_get_mail_editor (mmv->comp_view);
-		web_view = mail_editor_get_webview (editor);
-		g_signal_connect (web_view, "key-press-event", key_press_cb, web_view);
+	//	editor = e_msg_composer_get_mail_editor (mmv->comp_view);
+	//	web_view = mail_editor_get_webview (editor);
+	//	g_signal_connect (web_view, "key-press-event", key_press_cb, web_view);
 
 		/* Hide most of the basic headers. We'll add an option for enabling them later.
 		   Our objective is to make the inline composer as sleek as it can get. 
 		*/
-		table = e_msg_composer_get_header_table (mmv->comp_view);
+		table = e_msg_composer_get_header_table (mmv->composer);
 		e_composer_header_table_set_header_visible (table, E_COMPOSER_HEADER_FROM, FALSE);
-//		e_composer_header_table_set_header_visible (table, E_COMPOSER_HEADER_TO, FALSE);
 		e_composer_header_table_set_header_visible (table, E_COMPOSER_HEADER_SUBJECT, FALSE);
-		gtk_container_add (mmv->frame, mmv->comp_view);
+		gtk_container_add (mmv->frame, box);
 		gtk_box_pack_start (mmv, mmv->frame, FALSE, FALSE, 6);
+		g_signal_connect (mmv->composer, "send", mmv_mail_send, mmv);
 	}
 	gtk_widget_show (mmv->discard);
 	gtk_widget_show (mmv->pop_out);
diff --git a/src/mail-message-view.h b/src/mail-message-view.h
index 6ce2923..ed35d9a 100644
--- a/src/mail-message-view.h
+++ b/src/mail-message-view.h
@@ -54,6 +54,7 @@ typedef struct _MailMessageView {
 	GtkWidget *footer;
 	GtkWidget *frame;
 	GtkWidget *comp_view;
+	GtkWidget *composer;
 	GtkWidget *discard;
 	GtkWidget *pop_out;
 



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