diff options
Diffstat (limited to 'composer')
-rw-r--r-- | composer/ChangeLog | 7 | ||||
-rw-r--r-- | composer/e-msg-composer.c | 80 | ||||
-rw-r--r-- | composer/e-msg-composer.h | 7 |
3 files changed, 84 insertions, 10 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog index 9ae33b15d5..fb8cb90743 100644 --- a/composer/ChangeLog +++ b/composer/ChangeLog @@ -1,3 +1,10 @@ +2000-07-28 JP Rosevear <jpr@arcavia.com> + + * e-msg-composer.c (e_msg_composer_new_with_sig_file): New + function to create composer with sig file set. + (e_msg_composer_get_sig_file): New function to get sig file + (e_msg_composer_set_sig_file): New function to set sig file + 2000-07-25 Michael Meeks <michael@helixcode.com> * e-msg-composer.c (get_text): add textual exception printout. diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 90f019b11e..67b1eaa206 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -304,17 +304,14 @@ build_message (EMsgComposer *composer) } static char * -get_signature (void) +get_signature (char *sigfile) { - char *path, *sigfile, *rawsig; + char *rawsig; static char *htmlsig = NULL; static time_t sigmodtime = -1; struct stat st; int fd; - path = g_strdup_printf ("=%s/config=/mail/id_sig", evolution_dir); - sigfile = gnome_config_get_string (path); - g_free (path); if (!sigfile || !*sigfile) { return NULL; } @@ -357,14 +354,14 @@ get_signature (void) } static void -set_editor_text (BonoboWidget *editor, const char *text) +set_editor_text (BonoboWidget *editor, char *sig_file, const char *text) { Bonobo_PersistStream persist; BonoboStream *stream; CORBA_Environment ev; char *sig, *fulltext; - sig = get_signature (); + sig = get_signature (sig_file); if (sig) { if (!strncmp ("--\n", sig, sizeof ("--\n"))) fulltext = g_strdup_printf ("%s<BR>\n<PRE>\n%s</PRE>", @@ -1216,11 +1213,37 @@ e_msg_composer_new (void) e_msg_composer_construct (E_MSG_COMPOSER (new)); /* Load the signature, if any. */ - set_editor_text (BONOBO_WIDGET (E_MSG_COMPOSER (new)->editor), ""); + set_editor_text (BONOBO_WIDGET (E_MSG_COMPOSER (new)->editor), + NULL, ""); return new; } +/** + * e_msg_composer_new_with_sig_file: + * + * Create a new message composer widget. This function must be called + * within the GTK+ main loop, or it will fail. Sets the signature + * file. + * + * Return value: A pointer to the newly created widget + **/ +GtkWidget * +e_msg_composer_new_with_sig_file (char *sig_file) +{ + GtkWidget *new; + + g_return_val_if_fail (gtk_main_level () > 0, NULL); + + new = gtk_type_new (e_msg_composer_get_type ()); + e_msg_composer_construct (E_MSG_COMPOSER (new)); + + /* Load the signature, if any. */ + set_editor_text (BONOBO_WIDGET (E_MSG_COMPOSER (new)->editor), + sig_file, ""); + + return new; +} static GList * add_recipients (GList *list, const char *recips, gboolean decode) @@ -1337,7 +1360,8 @@ e_msg_composer_new_from_url (const char *url) if (body) { char *htmlbody = e_text_to_html (body, E_TEXT_TO_HTML_PRE); - set_editor_text (BONOBO_WIDGET (composer->editor), htmlbody); + set_editor_text (BONOBO_WIDGET (composer->editor), + NULL, htmlbody); g_free (htmlbody); } @@ -1401,7 +1425,8 @@ e_msg_composer_set_body_text (EMsgComposer *composer, const char *text) { g_return_if_fail (E_IS_MSG_COMPOSER (composer)); - set_editor_text (BONOBO_WIDGET (composer->editor), text); + set_editor_text (BONOBO_WIDGET (composer->editor), + composer->sig_file, text); } @@ -1468,6 +1493,41 @@ e_msg_composer_get_message (EMsgComposer *composer) } + +/** + * e_msg_composer_set_sig: + * @composer: A message composer widget + * @path: Signature file + * + * Set a signature + **/ +void +e_msg_composer_set_sig_file (EMsgComposer *composer, const char *sig_file) +{ + g_return_if_fail (composer != NULL); + g_return_if_fail (E_IS_MSG_COMPOSER (composer)); + + composer->sig_file = g_strdup (sig_file); +} + +/** + * e_msg_composer_get_sig_file: + * @composer: A message composer widget + * + * Get the signature file + * + * Return value: The signature file. + **/ +char * +e_msg_composer_get_sig_file (EMsgComposer *composer) +{ + g_return_val_if_fail (composer != NULL, NULL); + g_return_val_if_fail (E_IS_MSG_COMPOSER (composer), NULL); + + return composer->sig_file; +} + + /** * e_msg_composer_set_send_html: * @composer: A message composer widget diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h index 2b802ffc19..107b9e69a0 100644 --- a/composer/e-msg-composer.h +++ b/composer/e-msg-composer.h @@ -64,6 +64,8 @@ struct _EMsgComposer { Bonobo_PersistFile persist_file_interface; Bonobo_PersistStream persist_stream_interface; + char *sig_file; + gboolean attachment_bar_visible : 1; gboolean send_html : 1; }; @@ -80,6 +82,7 @@ GtkType e_msg_composer_get_type (void); void e_msg_composer_construct (EMsgComposer *composer); GtkWidget *e_msg_composer_new (void); +GtkWidget *e_msg_composer_new_with_sig_file (char *sig_file); GtkWidget *e_msg_composer_new_from_url (const char *url); void e_msg_composer_show_attachments (EMsgComposer *composer, gboolean show); @@ -99,6 +102,10 @@ void e_msg_composer_attach (EMsgComposer *composer, CamelMimeMessage *e_msg_composer_get_message (EMsgComposer *composer); +void e_msg_composer_set_sig_file (EMsgComposer *composer, + const char *sig_file); +char *e_msg_composer_get_sig_file (EMsgComposer *composer); + void e_msg_composer_set_send_html (EMsgComposer *composer, gboolean send_html); gboolean e_msg_composer_get_send_html (EMsgComposer *composer); |