aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-msg-composer.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2002-07-26 02:19:46 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2002-07-26 02:19:46 +0800
commitd725c8968467214a0cbf59c4e2dded119cbb6ab6 (patch)
tree78fcb4d0e4575c8bf5cf2e7d3426f7607bd572b7 /composer/e-msg-composer.c
parent59e2b13f220076c53598b1097eeb35e6b390b0b1 (diff)
downloadgsoc2013-evolution-d725c8968467214a0cbf59c4e2dded119cbb6ab6.tar.gz
gsoc2013-evolution-d725c8968467214a0cbf59c4e2dded119cbb6ab6.tar.zst
gsoc2013-evolution-d725c8968467214a0cbf59c4e2dded119cbb6ab6.zip
Create the Post-To header. (headers_set_visibility): Possibly show the
2002-07-24 Jeffrey Stedfast <fejj@ximian.com> * e-msg-composer-hdrs.c (create_headers): Create the Post-To header. (headers_set_visibility): Possibly show the Post-To header. (attach_headers): Attach the Post-To header. (e_msg_composer_hdrs_set_post_to): Set the text for the Post-To header. (e_msg_composer_hdrs_get_post_to_label): Return the label widget for this header pair. (e_msg_composer_hdrs_set_visible_mask): New function to set the visible mask (so we can disallow certain headers to be shown). (e_msg_composer_hdrs_new): Save the visible mask argument. (setup_headers): To: does not always have to be visible anymore. (e_msg_composer_hdrs_get_post_to): New function to get the url for the Post-To folder. * e-msg-composer.c (e_msg_composer_get_visible_flags): Set the Post-To bit when it is supposed to be visible. (e_msg_composer_new_post): Set the visible_mask to only allow the headers needed for Posting. svn path=/trunk/; revision=17590
Diffstat (limited to 'composer/e-msg-composer.c')
-rw-r--r--composer/e-msg-composer.c106
1 files changed, 65 insertions, 41 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 9a89d2fecf..c1b493b65c 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -765,7 +765,7 @@ build_message (EMsgComposer *composer, gboolean save_html_object_data)
static char *
get_file_content (EMsgComposer *composer, const char *file_name, gboolean want_html, guint flags, gboolean warn)
{
- CamelStreamFilter *filtered_stream;
+ CamelStreamFilter *filtered_stream;
CamelStreamMem *memstream;
CamelMimeFilter *html, *charenc;
CamelStream *stream;
@@ -1676,29 +1676,29 @@ menu_view_replyto_cb (BonoboUIComponent *component,
}
static void
-menu_view_bcc_cb (BonoboUIComponent *component,
- const char *path,
- Bonobo_UIComponent_EventType type,
- const char *state,
- gpointer user_data)
+menu_view_cc_cb (BonoboUIComponent *component,
+ const char *path,
+ Bonobo_UIComponent_EventType type,
+ const char *state,
+ gpointer user_data)
{
if (type != Bonobo_UIComponent_STATE_CHANGED)
return;
- e_msg_composer_set_view_bcc (E_MSG_COMPOSER (user_data), atoi (state));
+ e_msg_composer_set_view_cc (E_MSG_COMPOSER (user_data), atoi (state));
}
static void
-menu_view_cc_cb (BonoboUIComponent *component,
- const char *path,
- Bonobo_UIComponent_EventType type,
- const char *state,
- gpointer user_data)
+menu_view_bcc_cb (BonoboUIComponent *component,
+ const char *path,
+ Bonobo_UIComponent_EventType type,
+ const char *state,
+ gpointer user_data)
{
if (type != Bonobo_UIComponent_STATE_CHANGED)
return;
- e_msg_composer_set_view_cc (E_MSG_COMPOSER (user_data), atoi (state));
+ e_msg_composer_set_view_bcc (E_MSG_COMPOSER (user_data), atoi (state));
}
static void
@@ -1908,7 +1908,7 @@ setup_signatures_menu (EMsgComposer *composer)
if (list)
for (l = list; l; len ++, l = l->next) {
gchar *gtk_str;
-
+
gtk_str = e_utf8_to_gtk_string (menu, ((MailConfigSignature *)l->data)->name);
ADD (gtk_str);
g_free (gtk_str);
@@ -1916,11 +1916,11 @@ setup_signatures_menu (EMsgComposer *composer)
ADD (NULL);
ADD (_("Set as default"));
#undef ADD
-
+
gtk_widget_show (menu);
gtk_option_menu_set_menu (GTK_OPTION_MENU (composer->sig_omenu), menu);
sig_select_item (composer);
-
+
gtk_signal_connect (GTK_OBJECT (menu), "selection-done", signature_cb, composer);
}
@@ -1982,14 +1982,6 @@ setup_ui (EMsgComposer *composer)
composer->uic, "ViewReplyTo",
menu_view_replyto_cb, composer);
- /* View/BCC */
- bonobo_ui_component_set_prop (
- composer->uic, "/commands/ViewBCC",
- "state", composer->view_bcc ? "1" : "0", NULL);
- bonobo_ui_component_add_listener (
- composer->uic, "ViewBCC",
- menu_view_bcc_cb, composer);
-
/* View/CC */
bonobo_ui_component_set_prop (
composer->uic, "/commands/ViewCC",
@@ -1998,6 +1990,14 @@ setup_ui (EMsgComposer *composer)
composer->uic, "ViewCC",
menu_view_cc_cb, composer);
+ /* View/BCC */
+ bonobo_ui_component_set_prop (
+ composer->uic, "/commands/ViewBCC",
+ "state", composer->view_bcc ? "1" : "0", NULL);
+ bonobo_ui_component_add_listener (
+ composer->uic, "ViewBCC",
+ menu_view_bcc_cb, composer);
+
/* Security -> PGP Sign */
bonobo_ui_component_set_prop (
composer->uic, "/commands/SecurityPGPSign",
@@ -2050,7 +2050,7 @@ setup_ui (EMsgComposer *composer)
bonobo_ui_component_add_listener (
composer->uic, "ViewAttach",
menu_view_attachments_activate_cb, composer);
-
+
mail_config_signature_register_client ((MailConfigSignatureClient) sig_event_client, composer);
bonobo_ui_component_thaw (composer->uic, NULL);
@@ -2455,7 +2455,7 @@ static void marshal_NONE__NONE_INT (GtkObject *object, GtkSignalFunc func,
(*rfunc)(object, GTK_VALUE_INT (args[0]), func_data);
}
-
+
static void
class_init (EMsgComposerClass *klass)
{
@@ -2566,10 +2566,10 @@ load_from_config_db (EMsgComposer *composer)
db, "Mail/Composer/ViewFrom", 1, NULL);
composer->view_replyto = bonobo_config_get_long_with_default (
db, "Mail/Composer/ViewReplyTo", 0, NULL);
+ composer->view_cc = bonobo_config_get_long_with_default (
+ db, "Mail/Composer/ViewCC", 1, NULL);
composer->view_bcc = bonobo_config_get_long_with_default (
db, "Mail/Composer/ViewBCC", 0, NULL);
- composer->view_cc = bonobo_config_get_long_with_default (
- db, "Mail/Composer/ViewCC", 1, NULL);
composer->view_subject = bonobo_config_get_long_with_default (
db, "Mail/Composer/ViewSubject", 1, NULL);
}
@@ -2674,7 +2674,7 @@ msg_composer_destroy_notify (void *data)
}
static EMsgComposer *
-create_composer (void)
+create_composer (int visible_mask)
{
EMsgComposer *composer;
GtkWidget *vbox;
@@ -2710,7 +2710,7 @@ create_composer (void)
vbox = gtk_vbox_new (FALSE, 0);
vis = e_msg_composer_get_visible_flags (composer);
- composer->hdrs = e_msg_composer_hdrs_new (vis);
+ composer->hdrs = e_msg_composer_hdrs_new (composer->uic, visible_mask, vis);
if (!composer->hdrs) {
e_activation_failure_dialog (GTK_WINDOW (composer),
_("Could not create composer window:\n"
@@ -2831,6 +2831,7 @@ set_editor_signature (EMsgComposer *composer)
/* printf ("set_editor_signature end\n"); */
}
+
/**
* e_msg_composer_new:
*
@@ -2843,7 +2844,30 @@ e_msg_composer_new (void)
{
EMsgComposer *new;
- new = create_composer ();
+ new = create_composer (E_MSG_COMPOSER_VISIBLE_MASK_MAIL);
+ if (new) {
+ e_msg_composer_set_send_html (new, mail_config_get_send_html ());
+ set_editor_text (new, "");
+ set_editor_signature (new);
+ }
+
+ return new;
+}
+
+
+/**
+ * e_msg_composer_new_post:
+ *
+ * Create a new message composer widget.
+ *
+ * Return value: A pointer to the newly created widget
+ **/
+EMsgComposer *
+e_msg_composer_new_post (void)
+{
+ EMsgComposer *new;
+
+ new = create_composer (E_MSG_COMPOSER_VISIBLE_MASK_POST);
if (new) {
e_msg_composer_set_send_html (new, mail_config_get_send_html ());
set_editor_text (new, "");
@@ -2853,6 +2877,7 @@ e_msg_composer_new (void)
return new;
}
+
static gboolean
is_special_header (const char *hdr_name)
{
@@ -3211,7 +3236,7 @@ e_msg_composer_new_with_message (CamelMimeMessage *message)
g_return_val_if_fail (gtk_main_level () > 0, NULL);
- new = create_composer ();
+ new = create_composer (E_MSG_COMPOSER_VISIBLE_MASK_MAIL);
if (!new)
return NULL;
@@ -3830,7 +3855,6 @@ e_msg_composer_get_message_draft (EMsgComposer *composer)
return msg;
}
-
static void
delete_old_signature (EMsgComposer *composer)
@@ -4179,7 +4203,7 @@ e_msg_composer_set_view_from (EMsgComposer *composer, gboolean view_from)
composer->uic, "/commands/ViewFrom",
"state", composer->view_from ? "1" : "0", NULL);
set_config (composer, "ViewFrom", composer->view_from);
- e_msg_composer_set_hdrs_visible
+ e_msg_composer_hdrs_set_visible
(E_MSG_COMPOSER_HDRS (composer->hdrs),
e_msg_composer_get_visible_flags (composer));
}
@@ -4223,7 +4247,7 @@ e_msg_composer_set_view_replyto (EMsgComposer *composer, gboolean view_replyto)
composer->uic, "/commands/ViewReplyTo",
"state", composer->view_replyto ? "1" : "0", NULL);
set_config (composer, "ViewReplyTo", composer->view_replyto);
- e_msg_composer_set_hdrs_visible
+ e_msg_composer_hdrs_set_visible
(E_MSG_COMPOSER_HDRS (composer->hdrs),
e_msg_composer_get_visible_flags (composer));
}
@@ -4267,7 +4291,7 @@ e_msg_composer_set_view_cc (EMsgComposer *composer, gboolean view_cc)
composer->uic, "/commands/ViewCC",
"state", composer->view_cc ? "1" : "0", NULL);
set_config (composer, "ViewCC", composer->view_cc);
- e_msg_composer_set_hdrs_visible
+ e_msg_composer_hdrs_set_visible
(E_MSG_COMPOSER_HDRS (composer->hdrs),
e_msg_composer_get_visible_flags (composer));
}
@@ -4311,7 +4335,7 @@ e_msg_composer_set_view_bcc (EMsgComposer *composer, gboolean view_bcc)
composer->uic, "/commands/ViewBCC",
"state", composer->view_bcc ? "1" : "0", NULL);
set_config (composer, "ViewBCC", composer->view_bcc);
- e_msg_composer_set_hdrs_visible
+ e_msg_composer_hdrs_set_visible
(E_MSG_COMPOSER_HDRS (composer->hdrs),
e_msg_composer_get_visible_flags (composer));
}
@@ -4321,7 +4345,7 @@ EDestination **
e_msg_composer_get_recipients (EMsgComposer *composer)
{
g_return_val_if_fail (E_IS_MSG_COMPOSER (composer), NULL);
-
+
return composer->hdrs ? e_msg_composer_hdrs_get_recipients (E_MSG_COMPOSER_HDRS (composer->hdrs)) : NULL;
}
@@ -4430,7 +4454,7 @@ e_msg_composer_is_dirty (EMsgComposer *composer)
|| (GNOME_GtkHTML_Editor_Engine_hasUndo (composer->editor_engine, &ev) &&
!GNOME_GtkHTML_Editor_Engine_runCommand (composer->editor_engine, "is-saved", &ev));
CORBA_exception_free (&ev);
-
+
return rv;
}
@@ -4519,12 +4543,12 @@ gboolean
e_msg_composer_request_close_all (void)
{
GSList *p, *pnext;
-
+
for (p = all_composers; p != NULL; p = pnext) {
pnext = p->next;
do_exit (E_MSG_COMPOSER (p->data));
}
-
+
if (all_composers == NULL)
return TRUE;
else