Modified webpage: now tinymail repository is in gitorious.
[modest] / src / widgets / modest-toolkit-factory.c
index 506a738..a24b370 100644 (file)
 #define USE_GTK_ENTRY
 #define USE_GTK_FILE_CHOOSER
 #define USE_COUNTRY_COMBOBOX
-#define USE_SERVERSECURITY_PICKER
+#define USE_SERVERSECURITY_COMBOBOX
+#define USE_SECUREAUTH_COMBOBOX
+#define USE_GTK_SECURITY_OPTIONS_VIEW
+#define USE_GTK_TEXT_VIEW
+#define USE_SELECTOR_COMBOBOX
+#define USE_GTK_DETAILS_DIALOG
 #endif
 
 #ifdef USE_SCROLLED_WINDOW
@@ -53,7 +58,7 @@
 #include <modest-hildon-pannable-area-scrollable.h>
 #endif
 
-#ifdef USE_GTK_TOOLBAR
+#ifdef USE_GTK_FIND_TOOLBAR
 #include <modest-find-toolbar.h>
 #else
 #include <modest-hildon-find-toolbar.h>
 #include <modest-serversecurity-picker.h>
 #endif
 
+#ifdef USE_SECUREAUTH_COMBOBOX
+#include <modest-secureauth-combo-box.h>
+#else
+#include <modest-secureauth-picker.h>
+#endif
+
+#ifdef USE_GTK_SECURITY_OPTIONS_VIEW
+#include <modest-gtk-security-options-view.h>
+#else
+#include <modest-maemo-security-options-view.h>
+#endif
+
+#ifdef USE_SELECTOR_COMBOBOX
+#include <modest-combo-box.h>
+#else
+#include <modest-selector-picker.h>
+#endif
+
+#ifdef USE_GTK_DETAILS_DIALOG
+#include <modest-gtk-details-dialog.h>
+#else
+#include <modest-hildon2-details-dialog.h>
+#endif
+
 static void modest_toolkit_factory_class_init (ModestToolkitFactoryClass *klass);
 static void modest_toolkit_factory_init (ModestToolkitFactory *self);
 
@@ -107,6 +136,21 @@ static GtkWidget * modest_toolkit_factory_create_provider_selector_default    (M
 static GtkWidget * modest_toolkit_factory_create_servertype_selector_default  (ModestToolkitFactory *self,
                                                                               gboolean filter_providers);
 static GtkWidget * modest_toolkit_factory_create_serversecurity_selector_default (ModestToolkitFactory *self);
+static GtkWidget * modest_toolkit_factory_create_secureauth_selector_default (ModestToolkitFactory *self);
+static GtkWidget * modest_toolkit_factory_create_security_options_view_default (ModestToolkitFactory *self, 
+                                                                               ModestSecurityOptionsType type,
+                                                                               gboolean full, 
+                                                                               GtkSizeGroup *title_size_group,
+                                                                               GtkSizeGroup *value_size_group);
+static GtkWidget * modest_toolkit_factory_create_text_view_default            (ModestToolkitFactory *self);
+static GtkWidget * modest_toolkit_factory_create_selector_default             (ModestToolkitFactory *self,
+                                                                              ModestPairList *pairs, GEqualFunc id_equal_func,
+                                                                              gboolean center);
+static GtkWidget * modest_toolkit_factory_create_details_dialog_with_header_default   (ModestToolkitFactory *self, GtkWindow *parent,
+                                                                              TnyHeader *header, gboolean get_size);
+static GtkWidget * modest_toolkit_factory_create_details_dialog_with_folder_default  (ModestToolkitFactory *self, GtkWindow *parent,
+                                                                             TnyFolder *folder);
+
 /* globals */
 static GObjectClass *parent_class = NULL;
 
@@ -138,6 +182,12 @@ modest_toolkit_factory_class_init (ModestToolkitFactoryClass *klass)
        klass->create_provider_selector = modest_toolkit_factory_create_provider_selector_default;
        klass->create_servertype_selector = modest_toolkit_factory_create_servertype_selector_default;
        klass->create_serversecurity_selector = modest_toolkit_factory_create_serversecurity_selector_default;
+       klass->create_secureauth_selector = modest_toolkit_factory_create_secureauth_selector_default;
+       klass->create_security_options_view = modest_toolkit_factory_create_security_options_view_default;
+       klass->create_text_view = modest_toolkit_factory_create_text_view_default;
+       klass->create_selector = modest_toolkit_factory_create_selector_default;
+       klass->create_details_dialog_with_header = modest_toolkit_factory_create_details_dialog_with_header_default;
+       klass->create_details_dialog_with_folder = modest_toolkit_factory_create_details_dialog_with_folder_default;
 }
 
 static void
@@ -279,40 +329,40 @@ modest_toolkit_factory_create_entry_default (ModestToolkitFactory *self)
 void
 modest_entry_set_text (GtkWidget *widget, const gchar *text)
 {
-#ifdef MODEST_TOOLKIT_HILDON2
-       hildon_entry_set_text (HILDON_ENTRY (widget), text);
-#else
+#ifdef USE_GTK_ENTRY
        gtk_entry_set_text (GTK_ENTRY (widget), text);
+#else
+       hildon_entry_set_text (HILDON_ENTRY (widget), text);
 #endif
 }
 
 const gchar *
 modest_entry_get_text (GtkWidget *widget)
 {
-#ifdef MODEST_TOOLKIT_HILDON2
-       return hildon_entry_get_text (HILDON_ENTRY (widget));
+#ifdef USE_GTK_ENTRY
+       return gtk_entry_get_text (GTK_ENTRY (widget));
 #else
-       return gtk_entry_set_text (GTK_ENTRY (widget));
+       return hildon_entry_get_text (HILDON_ENTRY (widget));
 #endif
 }
 
 void 
 modest_entry_set_hint (GtkWidget *widget, const gchar *hint)
 {
-#ifdef MODEST_TOOLKIT_HILDON2
-       hildon_entry_set_placeholder (HILDON_ENTRY (widget), hint);
-#else
+#ifdef USE_GTK_ENTRY
        gtk_widget_set_tooltip_text (widget, hint);
+#else
+       hildon_entry_set_placeholder (HILDON_ENTRY (widget), hint);
 #endif
 }
 
 gboolean
 modest_is_entry (GtkWidget *widget)
 {
-#ifdef MODEST_TOOLKIT_HILDON2
-       return HILDON_IS_ENTRY (widget);
-#else
+#ifdef USE_GTK_ENTRY
        return GTK_IS_ENTRY (widget);
+#else
+       return HILDON_IS_ENTRY (widget);
 #endif
 }
 
@@ -464,7 +514,7 @@ modest_toolkit_factory_create_provider_selector_default (ModestToolkitFactory *s
 {
        GtkWidget *result;
 #ifdef USE_PROVIDER_COMBOBOX
-       result = modest_provider_combo_box_new ();
+       result = GTK_WIDGET (modest_provider_combo_box_new ());
 #else
        result = GTK_WIDGET (modest_provider_picker_new (MODEST_EDITABLE_SIZE, 
                                                         HILDON_BUTTON_ARRANGEMENT_HORIZONTAL));
@@ -488,6 +538,16 @@ modest_provider_selector_fill (GtkWidget *widget,
 #endif
 }
 
+void
+modest_provider_selector_refresh (GtkWidget *widget)
+{
+#ifdef USE_PROVIDER_COMBOBOX
+       modest_provider_combo_box_refresh (MODEST_PROVIDER_COMBO_BOX (widget));
+#else
+       modest_provider_picker_refresh (MODEST_PROVIDER_PICKER (widget));
+#endif
+}
+
 gchar *
 modest_provider_selector_get_active_provider_id (GtkWidget *widget)
 {
@@ -616,7 +676,7 @@ static GtkWidget *
 modest_toolkit_factory_create_serversecurity_selector_default (ModestToolkitFactory *self)
 {
        GtkWidget *result;
-#ifdef USE_PROVIDER_COMBOBOX
+#ifdef USE_SERVERSECURITY_COMBOBOX
        result = GTK_WIDGET (modest_serversecurity_combo_box_new ());
 #else
        result = GTK_WIDGET (modest_serversecurity_picker_new (MODEST_EDITABLE_SIZE, 
@@ -670,3 +730,242 @@ modest_serversecurity_selector_get_active_serversecurity_port (GtkWidget *combob
        return modest_serversecurity_picker_get_active_serversecurity_port (MODEST_SERVERSECURITY_PICKER (combobox));
 #endif
 }
+
+GtkWidget *
+modest_toolkit_factory_create_secureauth_selector (ModestToolkitFactory *self)
+{
+       return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_secureauth_selector (self);
+}
+
+static GtkWidget *
+modest_toolkit_factory_create_secureauth_selector_default (ModestToolkitFactory *self)
+{
+       GtkWidget *result;
+#ifdef USE_SECUREAUTH_COMBOBOX
+       result = GTK_WIDGET (modest_secureauth_combo_box_new ());
+#else
+       result = GTK_WIDGET (modest_secureauth_picker_new (MODEST_EDITABLE_SIZE, 
+                                                          HILDON_BUTTON_ARRANGEMENT_HORIZONTAL));
+#endif
+       return result;
+}
+
+ModestProtocolType
+modest_secureauth_selector_get_active_secureauth (GtkWidget *widget)
+{
+#ifdef USE_SECUREAUTH_COMBOBOX
+       return modest_secureauth_combo_box_get_active_secureauth (MODEST_SECUREAUTH_COMBO_BOX (widget));
+#else
+       return modest_secureauth_picker_get_active_secureauth (MODEST_SECUREAUTH_PICKER (widget));
+#endif
+}
+
+gboolean
+modest_secureauth_selector_set_active_secureauth (GtkWidget *widget,
+                                                 ModestProtocolType secureauth)
+{
+#ifdef USE_SECUREAUTH_COMBOBOX
+       return modest_secureauth_combo_box_set_active_secureauth (MODEST_SECUREAUTH_COMBO_BOX (widget),
+                                                                 secureauth);
+#else
+       return modest_secureauth_picker_set_active_secureauth (MODEST_SECUREAUTH_PICKER (widget),
+                                                              secureauth);
+#endif
+}
+
+gboolean
+modest_is_secureauth_selector (GtkWidget *widget)
+{
+#ifdef USE_SECUREAUTH_COMBOBOX
+       return MODEST_IS_SECUREAUTH_COMBO_BOX (widget);
+#else
+       return MODEST_IS_SECUREAUTH_PICKER (widget);
+#endif
+}
+
+GtkWidget *
+modest_toolkit_factory_create_security_options_view (ModestToolkitFactory *self, 
+                                                    ModestSecurityOptionsType type,
+                                                    gboolean full, 
+                                                    GtkSizeGroup *title_size_group, 
+                                                    GtkSizeGroup *value_size_group)
+{
+       return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_security_options_view (self, type, full, 
+                                                                                     title_size_group, value_size_group);
+}
+
+static GtkWidget *
+modest_toolkit_factory_create_security_options_view_default (ModestToolkitFactory *self, 
+                                                            ModestSecurityOptionsType type,
+                                                            gboolean full, 
+                                                            GtkSizeGroup *title_size_group, 
+                                                            GtkSizeGroup *value_size_group)
+{
+       GtkWidget *result;
+#ifdef USE_GTK_SECURITY_OPTIONS_VIEW
+       result = GTK_WIDGET (modest_gtk_security_options_view_new (type, full, title_size_group, value_size_group));
+#else
+       result = GTK_WIDGET (modest_maemo_security_options_view_new (type, full, title_size_group, value_size_group));
+#endif
+       return result;
+}
+
+GtkWidget *
+modest_toolkit_factory_create_text_view (ModestToolkitFactory *self)
+{
+       return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_text_view (self);
+}
+
+static GtkWidget *
+modest_toolkit_factory_create_text_view_default (ModestToolkitFactory *self)
+{
+#ifdef USE_GTK_TEXT_VIEW
+       return gtk_text_view_new ();
+#else
+       return hildon_text_view_new ();
+#endif
+}
+
+GtkTextBuffer *
+modest_text_view_get_buffer (GtkWidget *widget)
+{
+#ifdef USE_GTK_TEXT_VIEW
+       return gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+#else
+       return hildon_text_view_get_buffer (HILDON_TEXT_VIEW (widget));
+#endif
+}
+
+gboolean
+modest_is_text_view (GtkWidget *widget)
+{
+#ifdef USE_GTK_TEXT_VIEW
+       return GTK_IS_TEXT_VIEW (widget);
+#else
+       return HILDON_IS_TEXT_VIEW (widget);
+#endif
+}
+
+GtkWidget *
+modest_toolkit_factory_create_selector (ModestToolkitFactory *self,
+                                       ModestPairList *pairs, GEqualFunc id_equal_func, gboolean center)
+{
+  return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_selector (self, pairs, id_equal_func, center);
+}
+
+static GtkWidget *
+modest_toolkit_factory_create_selector_default (ModestToolkitFactory *self,
+                                               ModestPairList *pairs, GEqualFunc id_equal_func, gboolean center)
+{
+#ifdef USE_SELECTOR_COMBOBOX
+       return modest_combo_box_new (pairs, id_equal_func);
+#else
+       return modest_selector_picker_new (MODEST_EDITABLE_SIZE, 
+                                          HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+                                          pairs, id_equal_func, center);
+#endif
+}
+
+void
+modest_selector_set_pair_list (GtkWidget *widget, 
+                              ModestPairList *pairs)
+{
+#ifdef USE_SELECTOR_COMBOBOX
+       modest_combo_box_set_pair_list (MODEST_COMBO_BOX (widget),
+                                       pairs);
+#else
+       modest_selector_picker_set_pair_list (MODEST_SELECTOR_PICKER (widget),
+                                             pairs);
+#endif
+}
+
+gpointer
+modest_selector_get_active_id  (GtkWidget *self)
+{
+#ifdef USE_SELECTOR_COMBOBOX
+       return modest_combo_box_get_active_id (MODEST_COMBO_BOX (self));
+#else
+       return modest_selector_picker_get_active_id (MODEST_SELECTOR_PICKER (self));
+#endif
+}
+
+void
+modest_selector_set_active_id (GtkWidget *self, gpointer id)
+{
+#ifdef USE_SELECTOR_COMBOBOX
+       modest_combo_box_set_active_id (MODEST_COMBO_BOX (self), id);
+#else
+       modest_selector_picker_set_active_id (MODEST_SELECTOR_PICKER (self), id);
+#endif
+}
+
+const gchar*
+modest_selector_get_active_display_name  (GtkWidget *self)
+{
+#ifdef USE_SELECTOR_COMBOBOX
+       return modest_combo_box_get_active_display_name (MODEST_COMBO_BOX (self));
+#else
+       return modest_selector_picker_get_active_display_name (MODEST_SELECTOR_PICKER (self));
+#endif
+}
+
+void
+modest_selector_set_value_max_chars (GtkWidget *self, gint value_max_width_chars)
+{
+#ifndef USE_SELECTOR_COMBOBOX
+       modest_selector_picker_set_value_max_chars (MODEST_SELECTOR_PICKER (self), value_max_width_chars);
+#endif
+}
+
+gint
+modest_selector_get_value_max_chars (GtkWidget *self)
+{
+#ifdef USE_SELECTOR_COMBOBOX
+       return G_MAXINT;
+#else
+       return modest_selector_picker_get_value_max_chars (MODEST_SELECTOR_PICKER (self));
+#endif
+}
+
+GtkWidget *
+modest_toolkit_factory_create_details_dialog_with_header (ModestToolkitFactory *self,
+                                                         GtkWindow *parent,
+                                                         TnyHeader *header,
+                                                         gboolean get_size)
+{
+       return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_details_dialog_with_header (self, parent, header, get_size);
+}
+
+static GtkWidget *
+modest_toolkit_factory_create_details_dialog_with_header_default (ModestToolkitFactory *self,
+                                                                 GtkWindow *parent,
+                                                                 TnyHeader *header, 
+                                                                 gboolean get_size)
+{
+#ifndef USE_GTK_DETAILS_DIALOG
+       return modest_hildon2_details_dialog_new_with_header (parent, header, get_size);
+#else
+       return modest_gtk_details_dialog_new_with_header (parent, header, get_size);
+#endif
+}
+
+GtkWidget *
+modest_toolkit_factory_create_details_dialog_with_folder (ModestToolkitFactory *self,
+                                                         GtkWindow *parent,
+                                                         TnyFolder *folder)
+{
+       return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_details_dialog_with_folder (self, parent, folder);
+}
+
+static GtkWidget *
+modest_toolkit_factory_create_details_dialog_with_folder_default (ModestToolkitFactory *self,
+                                                                 GtkWindow *parent,
+                                                                 TnyFolder *folder)
+{
+#ifndef USE_GTK_DETAILS_DIALOG
+       return modest_hildon2_details_dialog_new_with_folder (parent, folder);
+#else
+       return modest_gtk_details_dialog_new_with_folder (parent, folder);
+#endif
+}
+