aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/misc/ChangeLog5
-rw-r--r--widgets/misc/e-send-options.c636
-rw-r--r--widgets/misc/e-send-options.glade1188
-rw-r--r--widgets/misc/e-send-options.h110
4 files changed, 1939 insertions, 0 deletions
diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog
index 8185300b22..8d008daea6 100644
--- a/widgets/misc/ChangeLog
+++ b/widgets/misc/ChangeLog
@@ -1,5 +1,10 @@
2005-01-06 Chenthill Palanisamy <pchenthill@novell.com>
+ Commiting the files mentioned below again to HEAD since it
+ was not added in head.
+
+2005-01-06 Chenthill Palanisamy <pchenthill@novell.com>
+
merging send options
* Makefile.am:
* e-send-options.[ch]: Widgets for the send options dialog
diff --git a/widgets/misc/e-send-options.c b/widgets/misc/e-send-options.c
new file mode 100644
index 0000000000..f8aad5c94b
--- /dev/null
+++ b/widgets/misc/e-send-options.c
@@ -0,0 +1,636 @@
+/* Evolution calendar - Main page of the Groupwise send options Dialog
+ *
+ * Copyright (C) 2004 Novell, Inc.
+ *
+ * Authors: Chenthill Palanisamy <pchenthill@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 Place, Suite 330, Bangalore, MA 02111-1307, India.
+ */
+
+#include <string.h>
+#include <glib.h>
+#include <gtk/gtksignal.h>
+#include <gtk/gtktogglebutton.h>
+#include <gtk/gtk.h>
+#include <libgnome/gnome-i18n.h>
+#include <glade/glade.h>
+#include <time.h>
+#include "e-dateedit.h"
+#include "e-send-options.h"
+
+
+struct _ESendOptionsDialogPrivate {
+ /* Glade XML data */
+ GladeXML *xml;
+
+ gboolean gopts_needed;
+
+ /* Widgets */
+
+ GtkWidget *main;
+
+ /* Noteboook to add options page and status tracking page*/
+ GtkNotebook *notebook;
+
+ /* priority */
+ GtkWidget *priority;
+
+ /* Classification */
+ GtkWidget *classification;
+
+ /* Widgets for Reply Requestion options */
+ GtkWidget *reply_request;
+ GtkWidget *reply_convenient;
+ GtkWidget *reply_within;
+ GtkWidget *within_days;
+
+ /* Widgets for delay delivery Option */
+ GtkWidget *delay_delivery;
+ GtkWidget *delay_until;
+
+ /* Widgets for Choosing expiration date */
+ GtkWidget *expiration;
+ GtkWidget *expire_after;
+
+ /* Widgets to for tracking information through sent Item */
+ GtkWidget *create_sent;
+ GtkWidget *delivered;
+ GtkWidget *delivered_opened;
+ GtkWidget *all_info;
+ GtkWidget *autodelete;
+
+ /* Widgets for setting the Return Notification */
+ GtkWidget *when_opened;
+ GtkWidget *when_declined;
+ GtkWidget *when_accepted;
+ GtkWidget *when_completed;
+
+ /* label widgets */
+ GtkWidget *classification_label;
+ GtkWidget *priority_label;
+ GtkWidget *gopts_label;
+ GtkWidget *sopts_label;
+ GtkWidget *opened_label;
+ GtkWidget *declined_label;
+ GtkWidget *accepted_label;
+ GtkWidget *completed_label;
+ GtkWidget *until_label;
+};
+
+static void e_sendoptions_dialog_class_init (GObjectClass *object_class);
+static void e_sendoptions_dialog_finalize (GObject *object);
+static void e_sendoptions_dialog_init (GObject *object);
+static void e_sendoptions_dialog_dispose (GObject *object);
+
+
+static void
+e_send_options_get_widgets_data (ESendOptionsDialog *sod)
+{
+ ESendOptionsDialogPrivate *priv;
+ ESendOptionsGeneral *gopts;
+ ESendOptionsStatusTracking *sopts;
+
+ priv = sod->priv;
+ gopts = sod->data->gopts;
+ sopts = sod->data->sopts;
+
+ gopts->priority = gtk_combo_box_get_active ((GtkComboBox *) priv->priority);
+
+ gopts->reply_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->reply_request));
+ gopts->reply_convenient = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->reply_convenient));
+ gopts->reply_within = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (priv->within_days));
+
+ gopts->expiration_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->expiration));
+ gopts->expire_after = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (priv->expire_after));
+ gopts->delay_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->delay_delivery));
+
+ if (e_date_edit_date_is_valid (E_DATE_EDIT (priv->delay_until)) &&
+ e_date_edit_time_is_valid (E_DATE_EDIT(priv->delay_until)))
+ gopts->delay_until = e_date_edit_get_time (E_DATE_EDIT (priv->delay_until));
+
+ sopts->tracking_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->create_sent));
+
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->delivered)))
+ sopts->track_when = E_DELIVERED;
+ else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->delivered_opened)))
+ sopts->track_when = E_DELIVERED_OPENED;
+ else
+ sopts->track_when = E_ALL;
+
+ sopts->opened = gtk_combo_box_get_active ((GtkComboBox *) priv->when_opened);
+ sopts->accepted = gtk_combo_box_get_active ((GtkComboBox *) priv->when_accepted);
+ sopts->declined = gtk_combo_box_get_active ((GtkComboBox *) priv->when_declined);
+ sopts->completed = gtk_combo_box_get_active ((GtkComboBox *) priv->when_completed);
+}
+
+static void
+e_send_options_fill_widgets_with_data (ESendOptionsDialog *sod)
+{
+ ESendOptionsDialogPrivate *priv;
+ ESendOptionsGeneral *gopts;
+ ESendOptionsStatusTracking *sopts;
+ time_t tmp;
+
+ priv = sod->priv;
+ gopts = sod->data->gopts;
+ sopts = sod->data->sopts;
+ tmp = time (NULL);
+
+ gtk_combo_box_set_active ((GtkComboBox *) priv->priority, gopts->priority);
+
+ if (gopts->reply_enabled)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->reply_request), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->reply_request), FALSE);
+
+ if (gopts->reply_convenient)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->reply_convenient), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->reply_within), TRUE);
+
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->within_days), (gdouble) gopts->reply_within);
+
+ if (gopts->expiration_enabled)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->expiration), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->expiration), FALSE);
+
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->expire_after), (gdouble) gopts->expire_after);
+
+ if (gopts->delay_enabled)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->delay_delivery), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->delay_delivery), FALSE);
+
+ if (!gopts->delay_until || (!difftime (gopts->delay_until, tmp) < 0))
+ e_date_edit_set_time (E_DATE_EDIT (priv->delay_until), 0);
+ else
+ e_date_edit_set_time (E_DATE_EDIT (priv->delay_until), gopts->delay_until);
+
+ if (sopts->tracking_enabled)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->create_sent), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->create_sent), FALSE);
+
+ switch (sopts->track_when) {
+ case E_DELIVERED:
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->delivered), TRUE);
+ break;
+ case E_DELIVERED_OPENED:
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->delivered_opened), TRUE);
+ break;
+ case E_ALL:
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->all_info), TRUE);
+ }
+
+ gtk_combo_box_set_active ((GtkComboBox *) priv->when_opened, sopts->opened);
+ gtk_combo_box_set_active ((GtkComboBox *) priv->when_declined, sopts->declined);
+ gtk_combo_box_set_active ((GtkComboBox *) priv->when_accepted, sopts->accepted);
+ gtk_combo_box_set_active ((GtkComboBox *) priv->when_completed, sopts->completed);
+
+}
+
+static void
+sensitize_widgets (ESendOptionsDialog *sod)
+{
+ ESendOptionsDialogPrivate *priv;
+ ESendOptionsGeneral *gopts;
+ ESendOptionsStatusTracking *sopts;
+
+ priv = sod->priv;
+ gopts = sod->data->gopts;
+ sopts = sod->data->sopts;
+
+ if (!gopts->reply_enabled) {
+ gtk_widget_set_sensitive (priv->reply_convenient, FALSE);
+ gtk_widget_set_sensitive (priv->reply_within, FALSE);
+ gtk_widget_set_sensitive (priv->within_days, FALSE);
+ }
+
+ if (!gopts->expiration_enabled)
+ gtk_widget_set_sensitive (priv->expire_after, FALSE);
+
+ if (!gopts->delay_enabled){
+ gtk_widget_set_sensitive (priv->delay_until, FALSE);
+ }
+
+ if (!sopts->tracking_enabled) {
+ gtk_widget_set_sensitive (priv->delivered, FALSE);
+ gtk_widget_set_sensitive (priv->delivered_opened, FALSE);
+ gtk_widget_set_sensitive (priv->all_info, FALSE);
+ }
+}
+
+static void
+expiration_toggled_cb (GtkWidget *toggle, gpointer data)
+{
+ gboolean active;
+ ESendOptionsDialog *sod;
+ ESendOptionsDialogPrivate *priv;
+
+ sod = data;
+ priv = sod->priv;
+
+ active = GTK_TOGGLE_BUTTON (toggle)->active;
+
+ gtk_widget_set_sensitive (priv->expire_after, active);
+}
+
+static void
+reply_request_toggled_cb (GtkWidget *toggle, gpointer data)
+{
+ gboolean active;
+ ESendOptionsDialog *sod;
+ ESendOptionsDialogPrivate *priv;
+
+ sod = data;
+ priv = sod->priv;
+ active = GTK_TOGGLE_BUTTON (toggle)->active;
+
+ gtk_widget_set_sensitive (priv->reply_convenient, active);
+ gtk_widget_set_sensitive (priv->reply_within, active);
+ gtk_widget_set_sensitive (priv->within_days, active);
+
+}
+
+static void
+delay_delivery_toggled_cb (GtkWidget *toggle, gpointer data)
+{
+ gboolean active;
+ ESendOptionsDialog *sod;
+ ESendOptionsDialogPrivate *priv;
+
+ sod = data;
+ priv = sod->priv;
+ active = GTK_TOGGLE_BUTTON (toggle)->active;
+
+ gtk_widget_set_sensitive (priv->delay_until, active);
+}
+
+static void
+sent_item_toggled_cb (GtkWidget *toggle, gpointer data)
+{
+ gboolean active;
+ ESendOptionsDialog *sod;
+ ESendOptionsDialogPrivate *priv;
+
+ sod = data;
+ priv = sod->priv;
+ active = GTK_TOGGLE_BUTTON (toggle)->active;
+
+ gtk_widget_set_sensitive (priv->delivered, active);
+ gtk_widget_set_sensitive (priv->delivered_opened, active);
+ gtk_widget_set_sensitive (priv->all_info, active);
+
+}
+
+static void
+delay_until_date_changed_cb (GtkWidget *dedit, gpointer data)
+{
+ ESendOptionsDialog *sod;
+ ESendOptionsDialogPrivate *priv;
+ ESendOptionsGeneral *gopts;
+ time_t tmp, current;
+
+ sod = data;
+ priv = sod->priv;
+ gopts = sod->data->gopts;
+
+ current = time (NULL);
+ tmp = e_date_edit_get_time (E_DATE_EDIT (priv->delay_until));
+
+ if ((difftime (tmp, current) < 0) || !e_date_edit_time_is_valid (E_DATE_EDIT (priv->delay_until))
+ || !e_date_edit_date_is_valid (E_DATE_EDIT (priv->delay_until)))
+ e_date_edit_set_time (E_DATE_EDIT (priv->delay_until), 0);
+
+}
+
+static void
+init_widgets (ESendOptionsDialog *sod)
+{
+ ESendOptionsDialogPrivate *priv;
+
+ priv = sod->priv;
+
+ g_signal_connect (priv->expiration, "toggled", G_CALLBACK (expiration_toggled_cb), sod);
+ g_signal_connect (priv->reply_request, "toggled", G_CALLBACK (reply_request_toggled_cb), sod);
+ g_signal_connect (priv->delay_delivery, "toggled", G_CALLBACK (delay_delivery_toggled_cb), sod);
+ g_signal_connect (priv->create_sent, "toggled", G_CALLBACK (sent_item_toggled_cb), sod);
+
+ g_signal_connect (priv->delay_until, "changed", G_CALLBACK (delay_until_date_changed_cb), sod);
+
+}
+
+static gboolean
+get_widgets (ESendOptionsDialog *sod)
+{
+ ESendOptionsDialogPrivate *priv;
+
+ priv = sod->priv;
+
+#define GW(name) glade_xml_get_widget (priv->xml, name)
+
+ priv->main = GW ("send-options-dialog");
+ if (!priv->main)
+ return FALSE;
+
+ priv->priority = GW ("combo-priority");
+ priv->classification = GW ("classification-combo");
+ priv->notebook = GW ("notebook");
+ priv->reply_request = GW ("reply-request-button");
+ priv->reply_convenient = GW ("reply-convinient");
+ priv->reply_within = GW ("reply-within");
+ priv->within_days = GW ("within-days");
+ priv->delay_delivery = GW ("delay-delivery-button");
+ priv->delay_until = GW ("until-date");
+ gtk_widget_show (priv->delay_until);
+ priv->expiration = GW ("expiration-button");
+ priv->expire_after = GW ("expire-after");
+ priv->create_sent = GW ("create-sent-button");
+ priv->delivered = GW ("delivered");
+ priv->delivered_opened = GW ("delivered-opened");
+ priv->all_info = GW ("all-info");
+ priv->autodelete = GW ("autodelete");
+ priv->when_opened = GW ("open-combo");
+ priv->when_declined = GW ("delete-combo");
+ priv->when_accepted = GW ("accept-combo");
+ priv->when_completed = GW ("complete-combo");
+ priv->classification_label = GW ("classification-label");
+ priv->gopts_label = GW ("gopts-label");
+ priv->sopts_label = GW ("sopts-label");
+ priv->priority_label = GW ("priority-label");
+ priv->until_label = GW ("until-label");
+ priv->opened_label = GW ("opened-label");
+ priv->declined_label = GW ("declined-label");
+ priv->accepted_label = GW ("accepted-label");
+ priv->completed_label = GW ("completed-label");
+
+#undef GW
+
+ return (priv->priority
+ && priv->classification
+ && priv->reply_request
+ && priv->reply_convenient
+ && priv->reply_within
+ && priv->within_days
+ && priv->delay_delivery
+ && priv->delay_until
+ && priv->expiration
+ && priv->expire_after
+ && priv->create_sent
+ && priv->delivered
+ && priv->delivered_opened
+ && priv->autodelete
+ && priv->all_info
+ && priv->when_opened
+ && priv->when_declined
+ && priv->when_accepted
+ && priv->when_completed
+ && priv->classification_label
+ && priv->priority_label
+ && priv->opened_label
+ && priv->gopts_label
+ && priv->sopts_label
+ && priv->declined_label
+ && priv->accepted_label
+ && priv->completed_label);
+
+}
+
+static void
+setup_widgets (ESendOptionsDialog *sod, Item_type type)
+{
+ ESendOptionsDialogPrivate *priv;
+
+ priv = sod->priv;
+
+ if (!priv->gopts_needed) {
+ gtk_notebook_set_current_page (priv->notebook, 1);
+ gtk_widget_hide (priv->delay_until);
+ } else
+ gtk_notebook_set_show_tabs (priv->notebook, TRUE);
+
+ gtk_label_set_mnemonic_widget (GTK_LABEL (priv->priority_label), priv->priority);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (priv->classification_label), priv->classification);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (priv->accepted_label), priv->when_accepted);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (priv->declined_label), priv->when_declined);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (priv->opened_label), priv->when_opened);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (priv->completed_label), priv->when_completed);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (priv->until_label), priv->delay_until);
+
+ switch (type) {
+ case E_ITEM_MAIL:
+ gtk_widget_hide (priv->accepted_label);
+ gtk_widget_hide (priv->when_accepted);
+ gtk_widget_hide (priv->completed_label);
+ gtk_widget_hide (priv->when_completed);
+ gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->declined_label), (_("When de_leted:")));
+ break;
+ case E_ITEM_CALENDAR:
+ gtk_widget_hide (priv->completed_label);
+ gtk_widget_hide (priv->when_completed);
+ case E_ITEM_TASK:
+ gtk_widget_hide (priv->classification_label);
+ gtk_widget_hide (priv->classification);
+ gtk_widget_set_sensitive (priv->autodelete, FALSE);
+ break;
+ default:
+ break;
+ }
+}
+
+ESendOptionsDialog *
+e_sendoptions_dialog_new (void) {
+ ESendOptionsDialog *sod;
+
+ sod = g_object_new (E_TYPE_SENDOPTIONS_DIALOG, NULL);
+
+ return sod;
+}
+
+void
+e_sendoptions_set_need_general_options (ESendOptionsDialog *sod, gboolean needed)
+{
+ g_return_if_fail (E_IS_SENDOPTIONS_DIALOG (sod));
+
+ sod->priv->gopts_needed = needed;
+}
+
+gboolean
+e_sendoptions_get_need_general_options (ESendOptionsDialog *sod)
+{
+ g_return_val_if_fail (E_IS_SENDOPTIONS_DIALOG (sod), FALSE);
+
+ return sod->priv->gopts_needed;
+}
+
+GtkWidget * send_options_make_dateedit (void);
+
+GtkWidget *
+send_options_make_dateedit (void)
+{
+ EDateEdit *dedit;
+
+ dedit = E_DATE_EDIT (e_date_edit_new ());
+
+ e_date_edit_set_show_date (dedit, TRUE);
+ e_date_edit_set_show_time (dedit, TRUE);
+
+ return GTK_WIDGET (dedit);
+}
+
+gboolean
+e_sendoptions_dialog_run (ESendOptionsDialog *sod, GtkWidget *parent, Item_type type)
+{
+ ESendOptionsDialogPrivate *priv;
+ GtkWidget *toplevel;
+ int result;
+
+ priv = sod->priv;
+ priv->xml = glade_xml_new (EVOLUTION_GLADEDIR "/e-send-options.glade", NULL, NULL);
+
+ if (!priv->xml) {
+ g_message ( G_STRLOC ": Could not load the Glade XML file ");
+ return FALSE;
+ }
+
+ if (!get_widgets(sod)) {
+ g_object_unref (priv->xml);
+ g_message (G_STRLOC ": Could not get the Widgets \n");
+ return FALSE;
+ }
+
+ setup_widgets (sod, type);
+
+ toplevel = gtk_widget_get_toplevel (priv->main);
+ gtk_window_set_transient_for (GTK_WINDOW (toplevel),
+ GTK_WINDOW (parent));
+
+ e_send_options_fill_widgets_with_data (sod);
+ sensitize_widgets (sod);
+ init_widgets (sod);
+
+ result = gtk_dialog_run (GTK_DIALOG (priv->main));
+
+ if (result == GTK_RESPONSE_OK)
+ e_send_options_get_widgets_data (sod);
+
+ gtk_widget_hide (priv->main);
+ gtk_widget_destroy (priv->main);
+ g_object_unref (priv->xml);
+
+ return TRUE;
+}
+
+static void
+e_sendoptions_dialog_finalize (GObject *object)
+{
+}
+
+static void
+e_sendoptions_dialog_dispose (GObject *object)
+{
+}
+
+/* Object initialization function for the task page */
+static void
+e_sendoptions_dialog_init (GObject *object)
+{
+ ESendOptionsDialog *sod;
+ ESendOptionsDialogPrivate *priv;
+ ESendOptionsData *new;
+
+
+ sod = E_SENDOPTIONS_DIALOG (object);
+ new = g_new0 (ESendOptionsData, 1);
+ new->gopts = g_new0 (ESendOptionsGeneral, 1);
+ new->sopts = g_new0 (ESendOptionsStatusTracking, 1);
+ priv = g_new0 (ESendOptionsDialogPrivate, 1);
+
+ sod->priv = priv;
+ sod->data = new;
+ sod->data->initialized = FALSE;
+
+ priv->gopts_needed = TRUE;
+ priv->xml = NULL;
+
+ priv->main = NULL;
+ priv->notebook = NULL;
+ priv->priority = NULL;
+ priv->classification = NULL;
+ priv->reply_request = NULL;
+ priv->reply_convenient = NULL;
+ priv->within_days = NULL;
+ priv->delay_delivery = NULL;
+ priv->delay_until = NULL;
+ priv->expiration = NULL;
+ priv->expire_after = NULL;
+ priv->create_sent = NULL;
+ priv->delivered =NULL;
+ priv->delivered_opened = NULL;
+ priv->all_info = NULL;
+ priv->when_opened = NULL;
+ priv->when_declined = NULL;
+ priv->when_accepted = NULL;
+ priv->when_completed = NULL;
+ priv->classification_label = NULL;
+ priv->priority_label = NULL;
+ priv->opened_label = NULL;
+ priv->gopts_label = NULL;
+ priv->sopts_label = NULL;
+ priv-> declined_label = NULL;
+ priv->accepted_label = NULL;
+ priv->completed_label = NULL;
+
+}
+
+/* Class initialization function for the Send Options */
+static void
+e_sendoptions_dialog_class_init (GObjectClass *object)
+{
+ ESendOptionsDialogClass *klass;
+ GObjectClass *object_class;
+ GtkWidgetClass *widget_class;
+
+ klass = E_SENDOPTIONS_DIALOG_CLASS (object);
+ object_class = G_OBJECT_CLASS (klass);
+ widget_class = GTK_WIDGET_CLASS (klass);
+
+ object_class->finalize = e_sendoptions_dialog_finalize;
+ object_class->dispose = e_sendoptions_dialog_dispose;
+}
+
+GType e_sendoptions_dialog_get_type (void)
+{
+ static GType type = 0;
+ if (type == 0) {
+ static const GTypeInfo info = {
+ sizeof (ESendOptionsDialogClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) e_sendoptions_dialog_class_init, /* class_init */
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (ESendOptionsDialog),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) e_sendoptions_dialog_init,
+ NULL /* instance_init */
+ };
+ type = g_type_register_static (G_TYPE_OBJECT,
+ "ESendOptionsDialogType",
+ &info, 0);
+ }
+ return type;
+}
+
diff --git a/widgets/misc/e-send-options.glade b/widgets/misc/e-send-options.glade
new file mode 100644
index 0000000000..6c973fbc0d
--- /dev/null
+++ b/widgets/misc/e-send-options.glade
@@ -0,0 +1,1188 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkDialog" id="send-options-dialog">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="title" translatable="yes">Send Options</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_MOUSE</property>
+ <property name="modal">True</property>
+ <property name="resizable">False</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="has_separator">True</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="vbox">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="helpbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-help</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-11</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="cancelbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-6</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="okbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-ok</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-5</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkNotebook" id="notebook">
+ <property name="visible">True</property>
+ <property name="show_tabs">False</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
+
+ <child>
+ <widget class="GtkTable" id="general-options">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">4</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label92">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">4</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkFrame" id="frame16">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.5</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+ <child>
+ <widget class="GtkTable" id="table32">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">3</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="reply-request-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">R_eply requested</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment38">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkTable" id="table33">
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">3</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="reply-within">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">W_ithin</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkSpinButton" id="within-days">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">5 0 100 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label93">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">days</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="reply-convinient">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_When convenient</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">reply-within</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label94">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Replies&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkFrame" id="frame17">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.5</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+ <child>
+ <widget class="GtkTable" id="table34">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">0</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="delay-delivery-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Delay message delivery</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label95">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment39">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox11">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label96">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_After:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">expire-after</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkSpinButton" id="expire-after">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">2 0 100 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label97">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">days</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="y_options">expand</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="expiration-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Set expiration date</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label98">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment40">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox13">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="until-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Until:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="Custom" id="until-date">
+ <property name="visible">True</property>
+ <property name="creation_function">send_options_make_dateedit</property>
+ <property name="int1">0</property>
+ <property name="int2">0</property>
+ <property name="last_modification_time">Wed, 08 Dec 2004 16:19:08 GMT</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label103">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Delivery Options&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">4</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combo-priority">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Undefined
+High
+Standard
+Low</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="priority-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Priority:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="classification-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">C_lassification</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="classification-combo">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Public
+Private
+Confidential
+</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="gopts-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Gene_ral Options</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="status-tracking">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkFrame" id="frame18">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.5</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment42">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox10">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="create-sent-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Creat_e a sent item to track information</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment46">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">19</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="delivered">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Delivered</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment47">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">19</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="delivered-opened">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Deli_vered and opened</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">delivered</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment48">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">19</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="all-info">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_All information</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">delivered</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment56">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">19</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="autodelete">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">A_uto-delete sent item</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label106">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Status Tracking&lt;/b&gt;</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkFrame" id="frame19">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.5</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment43">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkTable" id="table35">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="opened-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_When opened: </property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="declined-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">When decli_ned: </property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="completed-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">When co_mpleted:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="accepted-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">When acce_pted: </property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="open-combo">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">None
+Mail Receipt</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="delete-combo">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">None
+Mail Receipt
+</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="accept-combo">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">None
+Mail Receipt</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="complete-combo">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">None
+Mail Receipt</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label111">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Return Notification&lt;/b&gt;</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="sopts-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Sta_tus Tracking</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/widgets/misc/e-send-options.h b/widgets/misc/e-send-options.h
new file mode 100644
index 0000000000..180325c034
--- /dev/null
+++ b/widgets/misc/e-send-options.h
@@ -0,0 +1,110 @@
+ /* Evolution calendar - Timezone selector dialog
+ *
+ * Copyright (C) 2001 Ximian, Inc.
+ *
+ * Authors: Damon Chaplin <damon@ximian.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 Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __E_SENDOPTIONS_DIALOG_H__
+#define __E_SENDOPTIONS_DIALOG_H__
+
+#include <gtk/gtkwidget.h>
+#include <gtk/gtk.h>
+#include <time.h>
+
+#define E_TYPE_SENDOPTIONS_DIALOG (e_sendoptions_dialog_get_type ())
+#define E_SENDOPTIONS_DIALOG(obj) (GTK_CHECK_CAST ((obj), E_TYPE_SENDOPTIONS_DIALOG, ESendOptionsDialog))
+#define E_SENDOPTIONS_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SENDOPTIONS_DIALOG, ESendOptionsDialogClass))
+#define E_IS_SENDOPTIONS_DIALOG(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_SENDOPTIONS_DIALOG))
+#define E_IS_SENDOPTIONS_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_SENDOPTIONS_DIALOG))
+
+typedef struct _ESendOptionsDialog ESendOptionsDialog;
+typedef struct _ESendOptionsDialogClass ESendOptionsDialogClass;
+typedef struct _ESendOptionsDialogPrivate ESendOptionsDialogPrivate;
+
+typedef enum {
+ E_ITEM_MAIL,
+ E_ITEM_CALENDAR,
+ E_ITEM_TASK
+} Item_type;
+
+typedef enum {
+ E_PRIORITY_UNDEFINED,
+ E_PRIORITY_HIGH,
+ E_PRIORITY_STANDARD,
+ E_PRIORITY_LOW
+} ESendOptionsPriority;
+
+typedef enum {
+ E_RETURN_NOTIFY_NONE,
+ E_RETURN_NOTIFY_MAIL
+} ESendOptionsReturnNotify;
+
+typedef enum {
+ E_DELIVERED = 1,
+ E_DELIVERED_OPENED = 2,
+ E_ALL = 3
+} TrackInfo;
+
+typedef struct {
+ ESendOptionsPriority priority;
+ gboolean reply_enabled;
+ gboolean reply_convenient;
+ gint reply_within;
+ gboolean expiration_enabled;
+ gint expire_after;
+ gboolean delay_enabled;
+ time_t delay_until;
+} ESendOptionsGeneral;
+
+typedef struct {
+ gboolean tracking_enabled;
+ TrackInfo track_when;
+ gboolean autodelete;
+ ESendOptionsReturnNotify opened;
+ ESendOptionsReturnNotify accepted;
+ ESendOptionsReturnNotify declined;
+ ESendOptionsReturnNotify completed;
+} ESendOptionsStatusTracking;
+
+typedef struct {
+ gboolean initialized;
+
+ ESendOptionsGeneral *gopts;
+ ESendOptionsStatusTracking *sopts;
+
+} ESendOptionsData;
+
+struct _ESendOptionsDialog {
+ GObject object;
+
+ ESendOptionsData *data;
+ /* Private data */
+ ESendOptionsDialogPrivate *priv;
+};
+
+struct _ESendOptionsDialogClass {
+ GObjectClass parent_class;
+};
+
+GType e_sendoptions_dialog_get_type (void);
+ESendOptionsDialog *e_sendoptions_dialog_new (void);
+void e_sendoptions_set_need_general_options (ESendOptionsDialog *sod, gboolean needed);
+gboolean e_sendoptions_get_need_general_options (ESendOptionsDialog *sod);
+gboolean e_sendoptions_dialog_run (ESendOptionsDialog *sod, GtkWidget *parent, Item_type type);
+
+#endif