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