diff options
author | Vivek Jain <jvivek@novell.com> | 2005-05-23 17:44:26 +0800 |
---|---|---|
committer | Jain Vivek <jvivek@src.gnome.org> | 2005-05-23 17:44:26 +0800 |
commit | 128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca (patch) | |
tree | cae972534a1af80836f59d2bdc98c81dbbee9453 /plugins/groupwise-features/mail-send-options.c | |
parent | b25b709bf7fa81751810567af26ba4e8fe416b3a (diff) | |
download | gsoc2013-evolution-128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca.tar gsoc2013-evolution-128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca.tar.gz gsoc2013-evolution-128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca.tar.bz2 gsoc2013-evolution-128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca.tar.lz gsoc2013-evolution-128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca.tar.xz gsoc2013-evolution-128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca.tar.zst gsoc2013-evolution-128075a77ebc9e1b21a1e50947ee0a5bb4dea8ca.zip |
Created a plugin "groupwise-features" which is a consolidation of
23-05-2005 Vivek Jain <jvivek@novell.com>
Created a plugin "groupwise-features" which is a consolidation of
following existing plugins
* groupwise-account-setup
* addressbook-groupwise
* shared-folder
* groupwise-send-options
* groupwise-status-tracking
* send-options
svn path=/trunk/; revision=29400
Diffstat (limited to 'plugins/groupwise-features/mail-send-options.c')
-rw-r--r-- | plugins/groupwise-features/mail-send-options.c | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/plugins/groupwise-features/mail-send-options.c b/plugins/groupwise-features/mail-send-options.c new file mode 100644 index 0000000000..905e919ffe --- /dev/null +++ b/plugins/groupwise-features/mail-send-options.c @@ -0,0 +1,150 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * Authors: Parthasarathi Susarla <sparthasarathi@novell.com> + * + * Copyright 2004 Novell, Inc. (www.novell.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. + * + */ + + +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <string.h> +#include <stdio.h> + +#include <glib.h> +#include <glib/gi18n.h> + +#include "mail-send-options.h" + +#include "mail/em-menu.h" +#include "mail/em-utils.h" + +#include "composer/e-msg-composer.h" +#include "e-util/e-account.h" + +#include "widgets/misc/e-send-options.h" + +static ESendOptionsDialog * dialog = NULL ; + +void org_gnome_compose_send_options (EPlugin *ep, EMMenuTargetWidget *t); + +static time_t +add_day_to_time (time_t time, int days) +{ + struct tm *tm; + + tm = localtime (&time); + tm->tm_mday += days; + tm->tm_isdst = -1; + + return mktime (tm); +} + +static void +send_options_commit (EMsgComposer *comp, gpointer user_data) +{ + if (!user_data && !E_IS_SENDOPTIONS_DIALOG (user_data)) + return; + + if (dialog) { + g_object_unref (dialog); + dialog = NULL; + } +} + +void +org_gnome_compose_send_options (EPlugin *ep, EMMenuTargetWidget *t) +{ + struct _EMenuTarget menu = t->target ; + EMsgComposer *comp = (struct _EMsgComposer *)menu.widget ; + EAccount *account = NULL; + char *temp = NULL; + char *url; + char value [100]; + + account = e_msg_composer_get_preferred_account (comp) ; + url = g_strdup (account->transport->url) ; + temp = strstr (url, "groupwise") ; + if (!temp) { + g_print ("Sorry send options only available for a groupwise account\n") ; + } + g_free (temp) ; + /*disply the send options dialog*/ + if (!dialog) { + g_print ("New dialog\n\n") ; + dialog = e_sendoptions_dialog_new () ; + } + + e_sendoptions_dialog_run (dialog, menu.widget, E_ITEM_MAIL) ; + + if (dialog->data->gopts->reply_enabled) { + if (dialog->data->gopts->reply_convenient) + e_msg_composer_add_header (comp, X_REPLY_CONVENIENT ,"1" ) ; + else if (dialog->data->gopts->reply_within) { + time_t t; + t = add_day_to_time (time (NULL), dialog->data->gopts->reply_within); + strftime (value, 17, "%Y%m%dT%H%M%SZ", gmtime (&t)); + e_msg_composer_add_header (comp, X_REPLY_WITHIN , value) ; + } + } + + if (dialog->data->gopts->expiration_enabled) { + if (dialog->data->gopts->expire_after != 0) { + time_t t; + t = add_day_to_time (time (NULL), dialog->data->gopts->expire_after); + strftime (value, 17, "%Y%m%dT%H%M%SZ", gmtime (&t)); + e_msg_composer_add_header (comp, X_EXPIRE_AFTER, value) ; + } + } + if (dialog->data->gopts->delay_enabled) { + strftime (value, 17, "%Y%m%dT%H%M%SZ", gmtime (&dialog->data->gopts->delay_until)); + e_msg_composer_add_header (comp, X_DELAY_UNTIL, value) ; + } + + /*Status Tracking Options*/ + if (dialog->data->sopts->tracking_enabled) { + temp = g_strdup_printf ("%d",dialog->data->sopts->track_when) ; + e_msg_composer_add_header (comp, X_TRACK_WHEN, temp) ; + g_free (temp) ; + } + + if (dialog->data->sopts->autodelete) { + e_msg_composer_add_header (comp, X_AUTODELETE, "1") ; + } + if (dialog->data->sopts->opened) { + temp = g_strdup_printf ("%d",dialog->data->sopts->opened) ; + e_msg_composer_add_header (comp, X_RETURN_NOTIFY_OPEN, temp) ; + g_free (temp) ; + } + if (dialog->data->sopts->declined) { + temp = g_strdup_printf ("%d",dialog->data->sopts->declined) ; + e_msg_composer_add_header (comp, X_RETURN_NOTIFY_DELETE, temp) ; + g_free (temp) ; + } + + if (dialog->data->gopts->priority) { + temp = g_strdup_printf ("%d",dialog->data->gopts->priority); + e_msg_composer_add_header (comp, X_SEND_OPT_PRIORITY,temp); + g_free (temp); + } + + g_signal_connect (GTK_WIDGET (comp), "destroy", + G_CALLBACK (send_options_commit), dialog); +} + + |