* Added a new account key called type for server accounts
[modest] / src / gtk / modest-store-widget.c
index a537831..c10216e 100644 (file)
@@ -27,6 +27,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <glib/gi18n.h>
 #include "modest-store-widget.h"
 #include <string.h>
 
@@ -36,8 +37,7 @@ static void modest_store_widget_init       (ModestStoreWidget *obj);
 static void modest_store_widget_finalize   (GObject *obj);
 /* list my signals  */
 enum {
-       /* MY_SIGNAL_1, */
-       /* MY_SIGNAL_2, */
+       DATA_CHANGED_SIGNAL,
        LAST_SIGNAL
 };
 
@@ -62,7 +62,7 @@ struct _ModestStoreWidgetPrivate {
 static GtkContainerClass *parent_class = NULL;
 
 /* uncomment the following if you have defined any signals */
-/* static guint signals[LAST_SIGNAL] = {0}; */
+static guint signals[LAST_SIGNAL] = {0};
 
 GType
 modest_store_widget_get_type (void)
@@ -100,11 +100,14 @@ modest_store_widget_class_init (ModestStoreWidgetClass *klass)
        g_type_class_add_private (gobject_class, sizeof(ModestStoreWidgetPrivate));
 
        /* signal definitions go here, e.g.: */
-/*     signals[MY_SIGNAL_1] = */
-/*             g_signal_new ("my_signal_1",....); */
-/*     signals[MY_SIGNAL_2] = */
-/*             g_signal_new ("my_signal_2",....); */
-/*     etc. */
+       signals[DATA_CHANGED_SIGNAL] =
+               g_signal_new ("data_changed",
+                             G_TYPE_FROM_CLASS (klass),
+                             G_SIGNAL_RUN_FIRST,
+                             G_STRUCT_OFFSET(ModestStoreWidgetClass, data_changed),
+                             NULL, NULL,
+                             g_cclosure_marshal_VOID__VOID,
+                             G_TYPE_NONE, 0);
 }
 
 static void
@@ -185,6 +188,11 @@ mbox_configuration (ModestStoreWidget *self)
        return box;
 }
 
+static void
+on_entry_changed (GtkEntry *entry, gpointer user_data)
+{
+       g_signal_emit (MODEST_STORE_WIDGET (user_data), signals[DATA_CHANGED_SIGNAL], 0);
+}
 
 static GtkWidget*
 imap_pop_configuration (ModestStoreWidget *self)
@@ -219,13 +227,13 @@ imap_pop_configuration (ModestStoreWidget *self)
        gtk_label_set_markup (GTK_LABEL(label),_("<b>Security</b>"));
        gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 0);
 
+       priv->security = modest_widget_factory_get_combo_box (priv->factory, 
+                                                             MODEST_COMBO_BOX_TYPE_SECURITY_PROTOS);
        hbox = gtk_hbox_new (FALSE, 6);
        label = gtk_label_new(NULL);
        gtk_label_set_text (GTK_LABEL(label),_("Connection type:"));
        gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(hbox),  modest_widget_factory_get_combo_box
-                           (priv->factory, MODEST_COMBO_BOX_TYPE_SECURITY_PROTOS),
-                           FALSE, FALSE,0);
+       gtk_box_pack_start (GTK_BOX(hbox),  priv->security, FALSE, FALSE,0);
        gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);
        
        hbox = gtk_hbox_new (FALSE, 6);
@@ -244,6 +252,10 @@ imap_pop_configuration (ModestStoreWidget *self)
        
        gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);
 
+       /* Handle entry modifications */
+       g_signal_connect (priv->username, "changed", on_entry_changed, self);
+       g_signal_connect (priv->servername, "changed", on_entry_changed, self);
+
        return box;
 }
 
@@ -289,12 +301,12 @@ modest_store_widget_new (ModestWidgetFactory *factory, const gchar *proto)
 
        priv->proto = g_strdup (proto);
        
-       if (strcmp (proto, MODEST_PROTO_POP) == 0 ||
-           strcmp (proto, MODEST_PROTO_IMAP) == 0) {
+       if (strcmp (proto, MODEST_PROTOCOL_STORE_POP) == 0 ||
+           strcmp (proto, MODEST_PROTOCOL_STORE_IMAP) == 0) {
                w = imap_pop_configuration (self);
-       } else if (strcmp (proto, MODEST_PROTO_MAILDIR) == 0) {
+       } else if (strcmp (proto, MODEST_PROTOCOL_STORE_MAILDIR) == 0) {
                w = maildir_configuration (self);
-       }  else if (strcmp (proto, MODEST_PROTO_MBOX) == 0) {
+       }  else if (strcmp (proto, MODEST_PROTOCOL_STORE_MBOX) == 0) {
                w = mbox_configuration (self);
        } else
                w = gtk_label_new ("");
@@ -305,7 +317,6 @@ modest_store_widget_new (ModestWidgetFactory *factory, const gchar *proto)
        return GTK_WIDGET(self);
 }
 
-
 gboolean
 modest_store_widget_get_remember_password (ModestStoreWidget *self)
 {
@@ -346,9 +357,8 @@ modest_store_widget_get_proto (ModestStoreWidget *self)
 {
        ModestStoreWidgetPrivate *priv;
 
-       g_return_val_if_fail (self, FALSE);
+       g_return_val_if_fail (self, NULL);
        priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
 
        return priv->proto;
 }
-