[anjal] Make composer work cool.
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] Make composer work cool.
- Date: Mon, 11 May 2009 07:33:24 -0400 (EDT)
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]