Crash when making links clickable in composer
[evolution.git] / src / composer / e-composer-header-table.h
blob75913e8faed5462832e6d999cc77264d3ddf5371
1 /*
2 * This program is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU Lesser General Public License as published by
4 * the Free Software Foundation.
6 * This program is distributed in the hope that it will be useful, but
7 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
8 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
9 * for more details.
11 * You should have received a copy of the GNU Lesser General Public License
12 * along with this program; if not, see <http://www.gnu.org/licenses/>.
14 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
17 #ifndef E_COMPOSER_HEADER_TABLE_H
18 #define E_COMPOSER_HEADER_TABLE_H
20 #include <libebook/libebook.h>
22 #include <composer/e-composer-header.h>
24 /* Standard GObject macros */
25 #define E_TYPE_COMPOSER_HEADER_TABLE \
26 (e_composer_header_table_get_type ())
27 #define E_COMPOSER_HEADER_TABLE(obj) \
28 (G_TYPE_CHECK_INSTANCE_CAST \
29 ((obj), E_TYPE_COMPOSER_HEADER_TABLE, EComposerHeaderTable))
30 #define E_COMPOSER_HEADER_TABLE_CLASS(cls) \
31 (G_TYPE_CHECK_CLASS_CAST \
32 ((cls), E_TYPE_COMPOSER_HEADER_TABLE, EComposerHeaderTableClass))
33 #define E_IS_COMPOSER_HEADER_TABLE(obj) \
34 (G_TYPE_CHECK_INSTANCE_TYPE \
35 ((obj), E_TYPE_COMPOSER_HEADER_TABLE))
36 #define E_IS_COMPOSER_HEADER_TABLE_CLASS(cls) \
37 (G_TYPE_CHECK_CLASS_TYPE \
38 ((cls), E_TYPE_COMPOSER_HEADER_TABLE))
39 #define E_COMPOSER_HEADER_TABLE_GET_CLASS(obj) \
40 (G_TYPE_INSTANCE_GET_CLASS \
41 ((obj), E_TYPE_COMPOSER_HEADER_TABLE, EComposerHeaderTableClass))
43 G_BEGIN_DECLS
45 typedef struct _EComposerHeaderTable EComposerHeaderTable;
46 typedef struct _EComposerHeaderTableClass EComposerHeaderTableClass;
47 typedef struct _EComposerHeaderTablePrivate EComposerHeaderTablePrivate;
49 /* Headers, listed in the order they should appear in the table. */
50 typedef enum {
51 E_COMPOSER_HEADER_FROM,
52 E_COMPOSER_HEADER_REPLY_TO,
53 E_COMPOSER_HEADER_TO,
54 E_COMPOSER_HEADER_CC,
55 E_COMPOSER_HEADER_BCC,
56 E_COMPOSER_HEADER_POST_TO,
57 E_COMPOSER_HEADER_SUBJECT,
58 E_COMPOSER_NUM_HEADERS
59 } EComposerHeaderType;
61 struct _EComposerHeaderTable {
62 GtkTable parent;
63 EComposerHeaderTablePrivate *priv;
66 struct _EComposerHeaderTableClass {
67 GtkTableClass parent_class;
70 GType e_composer_header_table_get_type (void);
71 GtkWidget * e_composer_header_table_new (EClientCache *client_cache);
72 EClientCache * e_composer_header_table_ref_client_cache
73 (EComposerHeaderTable *table);
74 EComposerHeader *
75 e_composer_header_table_get_header
76 (EComposerHeaderTable *table,
77 EComposerHeaderType type);
78 EMailSignatureComboBox *
79 e_composer_header_table_get_signature_combo_box
80 (EComposerHeaderTable *table);
81 EDestination ** e_composer_header_table_get_destinations
82 (EComposerHeaderTable *table);
83 EDestination ** e_composer_header_table_get_destinations_bcc
84 (EComposerHeaderTable *table);
85 void e_composer_header_table_add_destinations_bcc
86 (EComposerHeaderTable *table,
87 EDestination **destination);
88 void e_composer_header_table_set_destinations_bcc
89 (EComposerHeaderTable *table,
90 EDestination **destinations);
91 EDestination ** e_composer_header_table_get_destinations_cc
92 (EComposerHeaderTable *table);
93 void e_composer_header_table_add_destinations_cc
94 (EComposerHeaderTable *table,
95 EDestination **destination);
96 void e_composer_header_table_set_destinations_cc
97 (EComposerHeaderTable *table,
98 EDestination **destinations);
99 EDestination ** e_composer_header_table_get_destinations_to
100 (EComposerHeaderTable *table);
101 void e_composer_header_table_add_destinations_to
102 (EComposerHeaderTable *table,
103 EDestination **destinations);
104 void e_composer_header_table_set_destinations_to
105 (EComposerHeaderTable *table,
106 EDestination **destinations);
107 gchar * e_composer_header_table_dup_identity_uid
108 (EComposerHeaderTable *table,
109 gchar **chosen_alias_name,
110 gchar **chosen_alias_address);
111 void e_composer_header_table_set_identity_uid
112 (EComposerHeaderTable *table,
113 const gchar *identity_uid,
114 const gchar *alias_name,
115 const gchar *alias_address);
116 const gchar * e_composer_header_table_get_from_name
117 (EComposerHeaderTable *table);
118 const gchar * e_composer_header_table_get_from_address
119 (EComposerHeaderTable *table);
120 GList * e_composer_header_table_get_post_to
121 (EComposerHeaderTable *table);
122 void e_composer_header_table_set_post_to_base
123 (EComposerHeaderTable *table,
124 const gchar *base_url,
125 const gchar *post_to);
126 void e_composer_header_table_set_post_to_list
127 (EComposerHeaderTable *table,
128 GList *folder_list);
129 const gchar * e_composer_header_table_get_reply_to
130 (EComposerHeaderTable *table);
131 void e_composer_header_table_set_reply_to
132 (EComposerHeaderTable *table,
133 const gchar *reply_to);
134 const gchar * e_composer_header_table_get_signature_uid
135 (EComposerHeaderTable *table);
136 void e_composer_header_table_set_signature_uid
137 (EComposerHeaderTable *table,
138 const gchar *signature_uid);
139 const gchar * e_composer_header_table_get_subject
140 (EComposerHeaderTable *table);
141 void e_composer_header_table_set_subject
142 (EComposerHeaderTable *table,
143 const gchar *subject);
144 void e_composer_header_table_set_header_visible
145 (EComposerHeaderTable *table,
146 EComposerHeaderType type,
147 gboolean visible);
148 ESource * e_composer_header_table_ref_source
149 (EComposerHeaderTable *table,
150 const gchar *uid);
152 G_END_DECLS
154 #endif /* E_COMPOSER_HEADER_TABLE_H */