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. 5 * 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. 10 * 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/>. 13 * 14 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) 15 */ 16 17 #ifndef E_COMPOSER_HEADER_TABLE_H 18 #define E_COMPOSER_HEADER_TABLE_H 19 20 #include <libebook/libebook.h> 21 22 #include <composer/e-composer-header.h> 23 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)) 42 43 G_BEGIN_DECLS 44 45 typedef struct _EComposerHeaderTable EComposerHeaderTable; 46 typedef struct _EComposerHeaderTableClass EComposerHeaderTableClass; 47 typedef struct _EComposerHeaderTablePrivate EComposerHeaderTablePrivate; 48 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; 60 61 struct _EComposerHeaderTable { 62 GtkTable parent; 63 EComposerHeaderTablePrivate *priv; 64 }; 65 66 struct _EComposerHeaderTableClass { 67 GtkTableClass parent_class; 68 }; 69 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); 151 152 G_END_DECLS 153 154 #endif /* E_COMPOSER_HEADER_TABLE_H */ 155