aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am5
-rw-r--r--mail/Makefile.am1
-rw-r--r--mail/folder-browser-factory.c40
-rw-r--r--mail/mail-display.c38
4 files changed, 79 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am
index c68ea925e7..ffa9923093 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,8 +25,9 @@ SUBDIRS = \
tests \
addressbook \
libical \
- libversit \
- calendar
+ libversit
+# Add this when the calendar builds.
+# calendar
dist-hook:
for subdir in intl ; do \
diff --git a/mail/Makefile.am b/mail/Makefile.am
index fec2e6f329..d9b015c897 100644
--- a/mail/Makefile.am
+++ b/mail/Makefile.am
@@ -45,6 +45,7 @@ evolution_mail_LDADD = \
../shell/Evolution-stubs.o \
../shell/Evolution-skels.o \
../shell/evolution-service-repository.o \
+ ../composer/libcomposer.la \
../widgets/e-table/libetable.a \
../widgets/e-text/libetext.a \
../camel/libcamel.la \
diff --git a/mail/folder-browser-factory.c b/mail/folder-browser-factory.c
index 17b0f16325..f2397ef15b 100644
--- a/mail/folder-browser-factory.c
+++ b/mail/folder-browser-factory.c
@@ -19,6 +19,7 @@
#include "main.h"
#include "shell/Evolution.h"
#include "shell/evolution-service-repository.h"
+#include "composer/e-msg-composer.h"
static const gchar *warning_dialog_buttons[] = {
@@ -99,6 +100,41 @@ development_warning ()
}
+static void
+msg_composer_send_cb (EMsgComposer *composer,
+ gpointer data)
+{
+ CamelMimeMessage *message;
+ CamelStream *stream;
+ gint stdout_dup;
+
+ message = e_msg_composer_get_message (composer);
+
+ stdout_dup = dup (1);
+ stream = camel_stream_fs_new_with_fd (stdout_dup);
+ camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message),
+ stream);
+ camel_stream_close (stream);
+
+ gtk_object_unref (GTK_OBJECT (message));
+
+#if 0
+ gtk_widget_destroy (GTK_WIDGET (composer));
+ gtk_main_quit ();
+#endif
+}
+
+
+static void
+msg_composer_cb (GtkObject *obj, gpointer user_data)
+{
+ CamelMimeMessage *msg;
+ GtkWidget *composer;
+
+ composer = e_msg_composer_new ();
+ gtk_signal_connect (GTK_OBJECT (composer), "send", GTK_SIGNAL_FUNC (msg_composer_send_cb), NULL);
+ gtk_widget_show (composer);
+}
static void
@@ -114,9 +150,9 @@ control_add_menu (BonoboControl *control)
bonobo_ui_handler_set_container (uih, remote_uih);
bonobo_ui_handler_menu_new_item (uih,
- "/File/Stuff", N_("_Stuff"), NULL, -1,
+ "/File/New", N_("_Mail"), NULL, -1,
BONOBO_UI_HANDLER_PIXMAP_NONE, NULL, 0, 0,
- NULL, NULL);
+ msg_composer_cb, NULL);
}
diff --git a/mail/mail-display.c b/mail/mail-display.c
index 2dc02094f1..1f3c94e404 100644
--- a/mail/mail-display.c
+++ b/mail/mail-display.c
@@ -139,6 +139,38 @@ camel_stream_to_gstring (CamelStream* stream)
return tmp_gstring;
}
+static void
+embeddable_destroy_cb (GtkObject *obj, gpointer user_data)
+{
+ BonoboWidget *be; /* bonobo embeddable */
+ BonoboViewFrame *vf; /* the embeddable view frame */
+ GtkWidget *w; /* the viewframe widget */
+ BonoboObjectClient* server;
+ CORBA_Environment ev;
+
+
+ printf ("in the bonobo embeddable destroy callback\n");
+ be = BONOBO_WIDGET (obj);
+ server = bonobo_widget_get_server (be);
+
+
+
+ vf = bonobo_widget_get_view_frame (be);
+ bonobo_control_frame_control_deactivate (vf);
+ //w = bonobo_control_frame_get_widget (BONOBO_CONTROL_FRAME (vf));
+
+ //gtk_widget_destroy (w);
+
+ CORBA_exception_init (&ev);
+ Bonobo_Unknown_unref (bonobo_object_corba_objref (server), &ev);
+ CORBA_Object_release (bonobo_object_corba_objref (server), &ev);
+ CORBA_exception_free (&ev);
+ bonobo_object_destroy (BONOBO_OBJECT (vf));
+ //gtk_object_unref (obj);
+}
+
+
+
/*
* As a page is loaded, when gtkhtml comes across <object> tags, this
* callback is invoked. The GtkHTMLEmbedded param is a GtkContainer;
@@ -156,7 +188,7 @@ on_object_requested (GtkHTML *html, GtkHTMLEmbedded *eb, void *unused)
CORBA_Environment ev;
gchar *uid = gtk_html_embedded_get_parameter (eb, "uid");
- printf ("Here\n");
+
/* Both the classid (which specifies which bonobo object to
* fire up) and the uid (which tells us where to find data to
* persist from) must be available; if one of them isn't,
@@ -173,6 +205,9 @@ on_object_requested (GtkHTML *html, GtkHTMLEmbedded *eb, void *unused)
/* Try to get a server with goadid specified by eb->classid */
bonobo_embeddable = bonobo_widget_new_subdoc (eb->classid, NULL);
+ gtk_signal_connect (GTK_OBJECT (bonobo_embeddable),
+ "destroy", embeddable_destroy_cb, NULL);
+
server = bonobo_widget_get_server (BONOBO_WIDGET (bonobo_embeddable));
if (!server) {
printf ("Couldn't get the server for the bonobo embeddable\n");
@@ -227,6 +262,7 @@ on_object_requested (GtkHTML *html, GtkHTMLEmbedded *eb, void *unused)
+
void
mail_display_set_message (MailDisplay *mail_display,
CamelMedium *medium)