X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-combo-box.c;h=810e02f59694cc6246f59b9f2b760136eadc5b26;hp=3e0fc0eac9ad664267f43397279d6fdd75ec1093;hb=HEAD;hpb=89e160bc529653c83e480de512561219d4134c1d diff --git a/src/widgets/modest-combo-box.c b/src/widgets/modest-combo-box.c index 3e0fc0e..810e02f 100644 --- a/src/widgets/modest-combo-box.c +++ b/src/widgets/modest-combo-box.c @@ -27,9 +27,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -#include -#include +#include #include "modest-combo-box.h" /* 'private'/'protected' functions */ @@ -125,11 +123,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 +145,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); @@ -168,8 +178,9 @@ modest_combo_box_new (const ModestPairList *pairs, GEqualFunc id_equal_func) gtk_cell_layout_clear (GTK_CELL_LAYOUT(obj)); renderer = gtk_cell_renderer_text_new (); + g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(obj), - renderer, FALSE); + renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT(obj), renderer, "text", COLUMN_DISPLAY_NAME, NULL); @@ -205,15 +216,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); } @@ -236,7 +245,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; } @@ -251,14 +260,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; }