aboutsummaryrefslogtreecommitdiff
path: root/src/compose.h
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-01-12 11:22:08 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-01-12 11:22:08 +0000
commitb9ca7b1ef5cd1f96ae6e28ae78d12c1e3258c23f (patch)
tree1203adec5f70af1ddd49868528d8d3a5b9004329 /src/compose.h
Initial import of Sylpheed (GTK2 version).
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/compose.h')
-rw-r--r--src/compose.h214
1 files changed, 214 insertions, 0 deletions
diff --git a/src/compose.h b/src/compose.h
new file mode 100644
index 00000000..7fe7a294
--- /dev/null
+++ b/src/compose.h
@@ -0,0 +1,214 @@
+/*
+ * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2004 Hiroyuki Yamamoto
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 __COMPOSE_H__
+#define __COMPOSE_H__
+
+#include <glib.h>
+#include <gtk/gtkwidget.h>
+#include <gtk/gtkitemfactory.h>
+
+typedef struct _Compose Compose;
+typedef struct _AttachInfo AttachInfo;
+
+#include "procmsg.h"
+#include "procmime.h"
+#include "folder.h"
+#include "addressbook.h"
+#include "prefs_account.h"
+#include "undo.h"
+
+typedef enum
+{
+ COMPOSE_ENTRY_TO,
+ COMPOSE_ENTRY_CC,
+ COMPOSE_ENTRY_BCC,
+ COMPOSE_ENTRY_REPLY_TO,
+ COMPOSE_ENTRY_SUBJECT,
+ COMPOSE_ENTRY_NEWSGROUPS,
+ COMPOSE_ENTRY_FOLLOWUP_TO
+} ComposeEntryType;
+
+typedef enum
+{
+ COMPOSE_REPLY = 1,
+ COMPOSE_REPLY_TO_SENDER = 2,
+ COMPOSE_REPLY_TO_ALL = 3,
+ COMPOSE_REPLY_TO_LIST = 4,
+ COMPOSE_FORWARD = 5,
+ COMPOSE_FORWARD_AS_ATTACH = 6,
+ COMPOSE_NEW = 7,
+ COMPOSE_REDIRECT = 8,
+ COMPOSE_REEDIT = 9,
+
+ COMPOSE_WITH_QUOTE = 1 << 16,
+ COMPOSE_WITHOUT_QUOTE = 2 << 16,
+
+ COMPOSE_MODE_MASK = 0xffff,
+ COMPOSE_QUOTE_MODE_MASK = 0x30000
+} ComposeMode;
+
+#define COMPOSE_MODE(mode) ((mode) & COMPOSE_MODE_MASK)
+#define COMPOSE_QUOTE_MODE(mode) ((mode) & COMPOSE_QUOTE_MODE_MASK)
+
+struct _Compose
+{
+ GtkWidget *window;
+ GtkWidget *vbox;
+ GtkWidget *menubar;
+
+ GtkWidget *handlebox;
+ GtkWidget *toolbar;
+ GtkWidget *send_btn;
+ GtkWidget *sendl_btn;
+ GtkWidget *draft_btn;
+ GtkWidget *insert_btn;
+ GtkWidget *attach_btn;
+ GtkWidget *sig_btn;
+ GtkWidget *exteditor_btn;
+ GtkWidget *linewrap_btn;
+ GtkWidget *addrbook_btn;
+
+ GtkWidget *vbox2;
+
+ GtkWidget *table_vbox;
+ GtkWidget *table;
+ GtkWidget *to_hbox;
+ GtkWidget *to_entry;
+ GtkWidget *newsgroups_hbox;
+ GtkWidget *newsgroups_entry;
+ GtkWidget *subject_entry;
+ GtkWidget *cc_hbox;
+ GtkWidget *cc_entry;
+ GtkWidget *bcc_hbox;
+ GtkWidget *bcc_entry;
+ GtkWidget *reply_hbox;
+ GtkWidget *reply_entry;
+ GtkWidget *followup_hbox;
+ GtkWidget *followup_entry;
+
+ GtkWidget *paned;
+
+ GtkWidget *attach_scrwin;
+ GtkWidget *attach_clist;
+
+ GtkWidget *edit_vbox;
+ GtkWidget *ruler_hbox;
+ GtkWidget *ruler;
+ GtkWidget *scrolledwin;
+ GtkWidget *text;
+
+ GtkWidget *focused_editable;
+
+ GtkWidget *popupmenu;
+
+ GtkItemFactory *popupfactory;
+
+ GtkWidget *tmpl_menu;
+
+ ComposeMode mode;
+
+ MsgInfo *targetinfo;
+ MsgInfo *replyinfo;
+
+ gchar *replyto;
+ gchar *cc;
+ gchar *bcc;
+ gchar *newsgroups;
+ gchar *followup_to;
+
+ gchar *ml_post;
+
+ gchar *inreplyto;
+ gchar *references;
+ gchar *msgid;
+ gchar *boundary;
+
+ gboolean autowrap;
+
+ gboolean use_to;
+ gboolean use_cc;
+ gboolean use_bcc;
+ gboolean use_replyto;
+ gboolean use_newsgroups;
+ gboolean use_followupto;
+ gboolean use_attach;
+
+ /* privacy settings */
+ gboolean use_signing;
+ gboolean use_encryption;
+
+ gboolean modified;
+
+ gboolean paste_as_quotation;
+
+ GSList *to_list;
+ GSList *newsgroup_list;
+
+ PrefsAccount *account;
+
+ UndoMain *undostruct;
+
+ gchar *sig_str;
+
+ /* external editor */
+ gchar *exteditor_file;
+ pid_t exteditor_pid;
+ gint exteditor_readdes;
+ gint exteditor_tag;
+};
+
+struct _AttachInfo
+{
+ gchar *file;
+ gchar *content_type;
+ EncodingType encoding;
+ gchar *name;
+ off_t size;
+};
+
+void compose_new (PrefsAccount *account,
+ FolderItem *item,
+ const gchar *mailto,
+ GPtrArray *attach_files);
+
+void compose_reply (MsgInfo *msginfo,
+ FolderItem *item,
+ ComposeMode mode,
+ const gchar *body);
+void compose_forward (GSList *mlist,
+ FolderItem *item,
+ gboolean as_attach,
+ const gchar *body);
+void compose_redirect (MsgInfo *msginfo,
+ FolderItem *item);
+void compose_reedit (MsgInfo *msginfo);
+
+GList *compose_get_compose_list (void);
+
+void compose_entry_set (Compose *compose,
+ const gchar *text,
+ ComposeEntryType type);
+void compose_entry_append (Compose *compose,
+ const gchar *text,
+ ComposeEntryType type);
+
+void compose_reflect_prefs_all (void);
+
+#endif /* __COMPOSE_H__ */