* Changes in the autotools stuff affecting a lot of platform dependent
[modest] / src / widgets / modest-combo-box.c
index e44aef1..6c066fe 100644 (file)
@@ -125,11 +125,11 @@ modest_combo_box_finalize (GObject *obj)
 }
 
 static GtkTreeModel*
-get_model (const ModestPairList *pairs)
+get_model (ModestPairList *pairs)
 {
        GtkTreeIter iter;
        GtkListStore *store;
-       const GSList *cursor;
+       GSList *cursor;
        
        store = gtk_list_store_new (2,
                                    G_TYPE_POINTER, /* the id */
@@ -147,17 +147,29 @@ get_model (const ModestPairList *pairs)
        return GTK_TREE_MODEL (store);
 }
 
+void
+modest_combo_box_set_pair_list (ModestComboBox *combo, ModestPairList *pairs)
+{
+       GtkTreeModel *model;
+
+       model = get_model (pairs);
+
+       gtk_combo_box_set_model (GTK_COMBO_BOX(combo), model);
+       g_object_unref (model);
+       
+       gtk_combo_box_set_active (GTK_COMBO_BOX(combo), 0);
+}
+
+
 
 GtkWidget*
-modest_combo_box_new (const ModestPairList *pairs, GEqualFunc id_equal_func)
+modest_combo_box_new (ModestPairList *pairs, GEqualFunc id_equal_func)
 {
        GtkTreeModel *model;
        GtkCellRenderer *renderer;
        GObject *obj;
        ModestComboBoxPrivate *priv;
 
-       g_return_val_if_fail (pairs,         NULL);
-       
        obj  = G_OBJECT(g_object_new(MODEST_TYPE_COMBO_BOX, NULL));
        priv = MODEST_COMBO_BOX_GET_PRIVATE(obj);
        
@@ -206,15 +218,13 @@ gpointer
 modest_combo_box_get_active_id (ModestComboBox *self)
 {
        GValue val = {0,};
-       gpointer retval;
 
        g_return_val_if_fail (self, NULL);
        
        /* Do not unset the GValue */
        get_active (self, &val, COLUMN_ID);
-       retval = g_value_peek_pointer (&val);
 
-       return retval;
+       return g_value_get_pointer (&val);
 }
 
 
@@ -237,7 +247,7 @@ modest_combo_box_set_active_id (ModestComboBox *self, gpointer id)
        do {
                gpointer row_id;
                gtk_tree_model_get (model, &iter, COLUMN_ID, &row_id, -1);
-               if ((priv->id_equal_func)(id, row_id) == 0) {
+               if ((priv->id_equal_func)(id, row_id)) {
                        gtk_combo_box_set_active_iter (GTK_COMBO_BOX(self), &iter);
                        found = TRUE;
                }
@@ -252,14 +262,14 @@ modest_combo_box_set_active_id (ModestComboBox *self, gpointer id)
 const gchar*
 modest_combo_box_get_active_display_name (ModestComboBox *self)
 {
-       GValue val = {0,};
-       gpointer retval;
+       const GValue val = {0,};
+       const gchar *retval;
 
        g_return_val_if_fail (self, NULL);
 
        /* Do not unset the GValue */
-       get_active (self, &val, COLUMN_DISPLAY_NAME);
-       retval = g_value_peek_pointer (&val);
+       get_active (self, (GValue *)&val, COLUMN_DISPLAY_NAME);
+       retval = g_value_get_string (&val);
 
-       return (gchar*) retval;
+       return retval;
 }