New details dialog for gtk
[modest] / src / widgets / modest-toolkit-factory.h
1 #ifndef                                         __MODEST_TOOLKIT_FACTORY_H__
2 #define                                         __MODEST_TOOLKIT_FACTORY_H__
3
4 #include <glib-object.h>
5 #include <gtk/gtk.h>
6 #include <modest-presets.h>
7 #include <widgets/modest-security-options-view.h>
8 #include <modest-pair.h>
9 #include <tny-header.h>
10 #include <tny-folder.h>
11
12 G_BEGIN_DECLS
13
14 #define                                         MODEST_TYPE_TOOLKIT_FACTORY \
15                                                 (modest_toolkit_factory_get_type())
16
17 #define                                         MODEST_TOOLKIT_FACTORY(obj) \
18                                                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
19                                                 MODEST_TYPE_TOOLKIT_FACTORY, ModestToolkitFactory))
20
21 #define                                         MODEST_TOOLKIT_FACTORY_CLASS(klass) \
22                                                 (G_TYPE_CHECK_CLASS_CAST ((klass), \
23                                                 MODEST_TYPE_TOOLKIT_FACTORY, ModestToolkitFactory))
24
25 #define                                         MODEST_IS_TOOLKIT_FACTORY(obj) \
26                                                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEST_TYPE_TOOLKIT_FACTORY))
27
28 #define                                         MODEST_IS_TOOLKIT_FACTORY_CLASS(klass) \
29                                                 (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEST_TYPE_TOOLKIT_FACTORY))
30
31 #define                                         MODEST_TOOLKIT_FACTORY_GET_CLASS(obj) \
32                                                 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
33                                                 MODEST_TYPE_TOOLKIT_FACTORY, ModestToolkitFactoryClass))
34
35 typedef struct                                  _ModestToolkitFactory ModestToolkitFactory;
36
37 typedef struct                                  _ModestToolkitFactoryClass ModestToolkitFactoryClass;
38
39 struct                                          _ModestToolkitFactoryClass
40 {
41         GObjectClass parent_class;
42
43         GtkWidget * (*create_scrollable) (ModestToolkitFactory *self);
44         GtkWidget * (*create_check_button) (ModestToolkitFactory *self, const gchar *label);
45         GtkWidget * (*create_check_menu) (ModestToolkitFactory *self, const gchar *label);
46         GtkWidget * (*create_isearch_toolbar) (ModestToolkitFactory *self, const gchar *label);
47         GtkWidget * (*create_entry) (ModestToolkitFactory *self);
48         GtkWidget * (*create_number_entry) (ModestToolkitFactory *self, gint min, gint max);
49         GtkWidget * (*create_file_chooser_dialog) (ModestToolkitFactory *self, const gchar *title,
50                                                    GtkWindow *parent, GtkFileChooserAction action);
51         GtkWidget * (*create_country_selector) (ModestToolkitFactory *self);
52         GtkWidget * (*create_provider_selector) (ModestToolkitFactory *self);
53         GtkWidget * (*create_servertype_selector) (ModestToolkitFactory *self, gboolean filter_providers);
54         GtkWidget * (*create_serversecurity_selector) (ModestToolkitFactory *self);
55         GtkWidget * (*create_secureauth_selector) (ModestToolkitFactory *self);
56         GtkWidget * (*create_security_options_view) (ModestToolkitFactory *self, ModestSecurityOptionsType type,
57                                                      gboolean full, GtkSizeGroup *title_size_group, GtkSizeGroup *value_size_group);
58         GtkWidget * (*create_text_view) (ModestToolkitFactory *self);
59         GtkWidget * (*create_selector) (ModestToolkitFactory *self,
60                                         ModestPairList *pairs, GEqualFunc id_equal_func);
61         GtkWidget * (*create_details_dialog_with_header) (ModestToolkitFactory *self, GtkWindow *parent,
62                                                           TnyHeader *header, gboolean get_size);
63         GtkWidget * (*create_details_dialog_with_folder) (ModestToolkitFactory *self, GtkWindow *parent,
64                                                           TnyFolder *folder);
65 };
66
67 struct                                          _ModestToolkitFactory
68 {
69     GObject parent;
70 };
71
72
73 GType
74 modest_toolkit_factory_get_type                       (void) G_GNUC_CONST;
75
76 ModestToolkitFactory *
77 modest_toolkit_factory_get_instance                            (void);
78
79 GtkWidget *
80 modest_toolkit_factory_create_scrollable              (ModestToolkitFactory *self);
81
82 GtkWidget *
83 modest_toolkit_factory_create_check_button (ModestToolkitFactory *self, const gchar *label);
84
85 GtkWidget *
86 modest_toolkit_factory_create_check_menu (ModestToolkitFactory *self, const gchar *label);
87
88 GtkWidget *
89 modest_toolkit_factory_create_isearch_toolbar (ModestToolkitFactory *self, const gchar *label);
90
91 GtkWidget *
92 modest_toolkit_factory_create_entry (ModestToolkitFactory *self);
93
94 GtkWidget *
95 modest_toolkit_factory_create_number_entry (ModestToolkitFactory *self, gint min, gint max);
96
97 GtkWidget *
98 modest_toolkit_factory_create_file_chooser_dialog (ModestToolkitFactory *self, const gchar *title,
99                                                    GtkWindow *parent, GtkFileChooserAction action);
100
101 GtkWidget *
102 modest_toolkit_factory_create_country_selector (ModestToolkitFactory *self);
103
104 GtkWidget *
105 modest_toolkit_factory_create_provider_selector (ModestToolkitFactory *self);
106
107 GtkWidget *
108 modest_toolkit_factory_create_servertype_selector (ModestToolkitFactory *self, gboolean filter_providers);
109
110 GtkWidget *
111 modest_toolkit_factory_create_serversecurity_selector (ModestToolkitFactory *self);
112
113 GtkWidget *
114 modest_toolkit_factory_create_secureauth_selector (ModestToolkitFactory *self);
115
116 GtkWidget *
117 modest_toolkit_factory_create_security_options_view (ModestToolkitFactory *self, ModestSecurityOptionsType type,
118                                                      gboolean full, GtkSizeGroup *title_size_group, GtkSizeGroup *value_size_group);
119
120 GtkWidget *
121 modest_toolkit_factory_create_text_view (ModestToolkitFactory *self);
122
123 GtkWidget *
124 modest_toolkit_factory_create_selector (ModestToolkitFactory *self,
125                                         ModestPairList *pairs, GEqualFunc id_equal_func);
126
127 GtkWidget *
128 modest_toolkit_factory_create_details_dialog_with_header (ModestToolkitFactory *self, GtkWindow *parent,
129                                                           TnyHeader *header, gboolean get_size);
130
131 GtkWidget *
132 modest_toolkit_factory_create_details_dialog_with_folder (ModestToolkitFactory *self, GtkWindow *parent,
133                                                           TnyFolder *folder);
134
135 gboolean
136 modest_togglable_get_active (GtkWidget *widget);
137
138 void
139 modest_togglable_set_active (GtkWidget *widget, gboolean active);
140
141 gboolean
142 modest_is_togglable (GtkWidget *widget);
143
144 void
145 modest_entry_set_text (GtkWidget *widget, const gchar *text);
146
147 const gchar *
148 modest_entry_get_text (GtkWidget *widget);
149
150 void
151 modest_entry_set_hint (GtkWidget *widget, const gchar *hint);
152
153 gboolean 
154 modest_is_entry (GtkWidget *widget);
155
156 gint
157 modest_number_entry_get_value (GtkWidget *widget);
158
159 void
160 modest_number_entry_set_value (GtkWidget *widget, gint value);
161
162 gboolean
163 modest_number_entry_is_valid (GtkWidget *widget);
164
165 gboolean
166 modest_is_number_entry (GtkWidget *widget);
167
168 gint
169 modest_country_selector_get_active_country_mcc (GtkWidget *widget);
170
171 void
172 modest_country_selector_load_data (GtkWidget *widget);
173
174 gboolean
175 modest_country_selector_set_active_country_locale (GtkWidget *widget);
176
177 typedef enum {
178         MODEST_PROVIDER_SELECTOR_ID_PROVIDER,
179         MODEST_PROVIDER_SELECTOR_ID_OTHER,
180         MODEST_PROVIDER_SELECTOR_ID_PLUGIN_PROTOCOL
181 } ModestProviderSelectorIdType;
182
183
184 void
185 modest_provider_selector_fill (GtkWidget *widget, ModestPresets *presets, gint mcc);
186
187 gchar *
188 modest_provider_selector_get_active_provider_id (GtkWidget *widget);
189
190 gchar *
191 modest_provider_selector_get_active_provider_label (GtkWidget *widget);
192
193 ModestProviderSelectorIdType
194 modest_provider_selector_get_active_id_type (GtkWidget *widget);
195
196 void
197 modest_provider_selector_set_others_provider (GtkWidget *self);
198
199 ModestProtocolType
200 modest_servertype_selector_get_active_servertype (GtkWidget *self);
201
202 void
203 modest_servertype_selector_set_active_servertype (GtkWidget *self, ModestProtocolType protocol_type_id);
204
205 void modest_serversecurity_selector_fill (GtkWidget *combobox, ModestProtocolType protocol);
206
207 ModestProtocolType modest_serversecurity_selector_get_active_serversecurity (GtkWidget *combobox);
208
209 gboolean modest_serversecurity_selector_set_active_serversecurity (GtkWidget *combobox,
210                                                                    ModestProtocolType serversecurity);
211
212 gint modest_serversecurity_selector_get_active_serversecurity_port (GtkWidget *combobox);
213
214 ModestProtocolType
215 modest_secureauth_selector_get_active_secureauth (GtkWidget *widget);
216
217 gboolean
218 modest_secureauth_selector_set_active_secureauth (GtkWidget *widget,
219                                                   ModestProtocolType secureauth);
220
221 gboolean
222 modest_is_secureauth_selector (GtkWidget *widget);
223
224 GtkTextBuffer *
225 modest_text_view_get_buffer (GtkWidget *widget);
226
227 gboolean 
228 modest_is_text_view (GtkWidget *widget);
229
230 void         modest_selector_set_pair_list (GtkWidget *widget, 
231                                             ModestPairList *pairs);
232 gpointer   modest_selector_get_active_id  (GtkWidget *self);
233 void       modest_selector_set_active_id (GtkWidget *self, gpointer id);
234 const gchar* modest_selector_get_active_display_name  (GtkWidget *self);
235 void       modest_selector_set_value_max_chars (GtkWidget *self, gint value_max_width_chars);
236 gint       modest_selector_get_value_max_chars (GtkWidget *self);
237
238
239 #ifndef MODEST_TOOLKIT_HILDON2
240 #define USE_PROVIDER_COMBOBOX
241 #define USE_SERVERTYPE_COMBOBOX
242 #define USE_GTK_SPIN_BUTTON
243 #endif
244
245 #ifndef USE_GTK_SPIN_BUTTON
246 #define MODEST_NUMBER_ENTRY_SUPPORT_VALID_CHANGED
247 #endif
248
249 #ifndef USE_PROVIDER_COMBOBOX
250 #include <hildon/hildon.h>
251 #endif
252 #ifndef USE_SERVERTYPE_COMBOBOX
253 #include <hildon/hildon.h>
254 #endif
255
256 G_END_DECLS
257
258 #endif /* __MODEST_WP_TEXT_VIEW_H__ */