aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-msg-composer.h
blob: 529321aa89b9209bd122e0a77475b831f3447255 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* e-msg-composer.h
 *
 * Copyright (C) 1999  Helix Code, Inc.
 *
 * 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.
 *
 * Author: Ettore Perazzoli
 */

#ifndef ___E_MSG_COMPOSER_H__
#define ___E_MSG_COMPOSER_H__

typedef struct _EMsgComposer       EMsgComposer;
typedef struct _EMsgComposerClass  EMsgComposerClass;

#include <gnome.h>
#include <bonobo.h>

#include "e-msg-composer-attachment-bar.h"
#include "e-msg-composer-hdrs.h"
#include "Editor.h"

#include <mail/mail-config.h>

#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */


#define E_TYPE_MSG_COMPOSER        (e_msg_composer_get_type ())
#define E_MSG_COMPOSER(obj)        (GTK_CHECK_CAST ((obj), E_TYPE_MSG_COMPOSER, EMsgComposer))
#define E_MSG_COMPOSER_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_MSG_COMPOSER, EMsgComposerClass))
#define E_IS_MSG_COMPOSER(obj)         (GTK_CHECK_TYPE ((obj), E_TYPE_MSG_COMPOSER))
#define E_IS_MSG_COMPOSER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_MSG_COMPOSER))



struct _EMsgComposer {
    BonoboWindow parent;
    
    BonoboUIComponent *uic;
    
    GtkWidget *hdrs;
    GPtrArray *extra_hdr_names, *extra_hdr_values;
    
    GtkWidget *editor;
    
    GtkWidget *attachment_bar;
    GtkWidget *attachment_scroll_frame;
    
    GtkWidget *address_dialog;
    
    Bonobo_PersistFile       persist_file_interface;
    Bonobo_PersistStream     persist_stream_interface;
    GNOME_GtkHTML_Editor_Engine  editor_engine;
    BonoboObject            *editor_listener;
    GHashTable              *inline_images;
    
    char *sig_file;
    
    gboolean attachment_bar_visible : 1;
    gboolean send_html : 1;
    gboolean pgp_sign : 1;
    gboolean pgp_encrypt : 1;
};

struct _EMsgComposerClass {
    BonoboWindowClass parent_class;
    
    void (* send) (EMsgComposer *composer);
    void (* postpone) (EMsgComposer *composer);
};


GtkType           e_msg_composer_get_type             (void);
void              e_msg_composer_construct            (EMsgComposer     *composer);
EMsgComposer     *e_msg_composer_new                  (void);
EMsgComposer     *e_msg_composer_new_with_sig_file    (const char       *sig_file,
                               gboolean          send_html);
EMsgComposer     *e_msg_composer_new_with_message     (CamelMimeMessage *msg);
EMsgComposer     *e_msg_composer_new_from_url         (const char       *url);
void              e_msg_composer_show_attachments     (EMsgComposer     *composer,
                               gboolean          show);
void              e_msg_composer_set_headers          (EMsgComposer     *composer,
                               const GList      *to,
                               const GList      *cc,
                               const GList      *bcc,
                               const char       *subject);
void              e_msg_composer_set_body_text        (EMsgComposer     *composer,
                               const char       *text);
void              e_msg_composer_add_header           (EMsgComposer     *composer,
                               const char       *name,
                               const char       *value);
void              e_msg_composer_attach               (EMsgComposer     *composer,
                               CamelMimePart    *attachment);
CamelMimeMessage *e_msg_composer_get_message          (EMsgComposer     *composer);
void              e_msg_composer_set_sig_file         (EMsgComposer     *composer,
                               const char       *sig_file);
const 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);
void              e_msg_composer_set_pgp_sign         (EMsgComposer     *composer,
                               gboolean          pgp_sign);

const MailConfigAccount *e_msg_composer_get_preferred_account (EMsgComposer *composer);

gboolean          e_msg_composer_get_pgp_sign         (EMsgComposer     *composer);
void              e_msg_composer_set_pgp_encrypt      (EMsgComposer     *composer,
                               gboolean          pgp_encrypt);
gboolean          e_msg_composer_get_pgp_encrypt      (EMsgComposer     *composer);
void              e_msg_composer_clear_inlined_table  (EMsgComposer     *composer);
gchar *           e_msg_composer_guess_mime_type      (const gchar *file_name);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* ___E_MSG_COMPOSER_H__ */
aph'>* Use the correct version of libtool 13 -> 15 to avoid install the *.la files.mezz2004-07-261-1/+1 * - Add the X_WINDOW_SYSTEM={xorg,xfree86-4,xfree86-3} variable to bsd.port.mk,anholt2004-07-241-1/+1 * Update to 2.2.3.marcus2004-07-032-3/+3 * Remove conditional %%PORTDOCS%% since the docs will be installed no mattermarcus2004-05-121-132/+132 * Fix some portlint warnings, and use lthack to eliminate the needs for amarcus2004-05-123-145/+136 * "Update" to 2.2.2, the latest stable release with a PORTEPOCH bump.marcus2004-03-176-678/+19 * o Bump $LIB_DEPENDS line to chase expat's shlib version.kuriyama2004-03-141-2/+2 * Whoa there, boy, that's a mighty big commit y'all have there...ade2004-03-141-1/+1 * Bump PORTREVISION on all ports that depend on gettext to aid with upgrading.marcus2004-02-041-1/+1 * USE_REINPLACE need be defined only when REINPLACE_CMD is used.trevor2003-11-171-1/+0 * Add a new MASTER_SITE since the Fontconfig site went away.marcus2003-09-181-2/+1 * This is a first for me. Correct a typo in the patch _name_ so the patchmarcus2003-07-192-1/+1 * Revert some of the FreeType code in fontconfig to fix some font renderingmarcus2003-07-192-1/+644 * Fix a problem with certain languages not having any fonts in Mozilla andmarcus2003-07-192-0/+16 * Update to 2.2.90.marcus2003-07-183-2/+4 * Update to 2.2.1.marcus2003-06-182-2/+2 * Utilize USE_GNOME= pkgconfig.adamw2003-06-171-3/+1 * Update to 2.2.0, the fontastic-everything-finally-works release.marcus2003-04-224-71/+2 * Add patch to avoid dereferencing a NULL pointer in freetype2. This fixesmarcus2003-04-192-0/+47 * Add a missing '\'.marcus2003-04-181-1/+1 * At least one person had problems fetching 2.1.94. Add another dist site.marcus2003-04-181-1/+2 * Update to 2.1.94.marcus2003-04-172-2/+2 * Update to 2.1.93.marcus2003-04-137-104/+13 * * Allow these ports to build in a read-only ${PORTSDIR} [1]marcus2003-04-051-2/+1 * Update to 2.1.92. This is a hacked development version that should solvemarcus2003-04-0416-326/+420 * Add -f to fc-cache to force a font cache build. This fixes GNOMEmarcus2003-03-292-6/+2 * Fix a bug in fontconfig's configure script that was causing fonts.confmarcus2003-03-142-2/+13 * Force ldconfig to run before pkg-install to fix a problem where the usermarcus2003-03-061-0/+1 * Sync fontconfig with the XFree86 4.3.0 release.marcus2003-03-032-1/+213 * * Set LC_ALL to C in MAKE_ENV to avoid creating non-well-formed XMLmarcus2003-03-012-1/+13 * * Install fc-cache and fc-list manpages [1]marcus2003-02-283-3/+9 * Install fontconfig's manpage.marcus2003-01-241-1/+5 * Make this port PREFIX?=${X11BASE} rather than USE_X_PREFIX, because it doesn'tanholt2003-01-241-2/+9 * Make sure fc-cache is run after installation for both the port andmarcus2003-01-222-0/+18 * Update to 2.1.marcus2003-01-202-4/+3 * The MASTER_SITE's DNS has changed. Make this port fetchable once more.marcus2002-11-131-1/+1 * Correct the default font path.marcus2002-10-241-2/+2 * Fix a problem with the shared library installation.marcus2002-10-082-5/+44