* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
+#include <gtk/gtkcelllayout.h>
+#include <gtk/gtkcellrenderertext.h>
#include "modest-combo-box.h"
/* 'private'/'protected' functions */
(GInstanceInitFunc) modest_combo_box_init,
NULL
};
- my_type = g_type_register_static (G_TYPE_OBJECT,
+ my_type = g_type_register_static (GTK_TYPE_COMBO_BOX,
"ModestComboBox",
&my_info, 0);
}
-gpointer
-modest_combo_box_get_active_id (ModestComboBox *self)
+static void
+get_active (ModestComboBox *self, GValue *val, gint column)
{
GtkTreeIter iter;
- gpointer retval;
- g_return_val_if_fail (self, NULL);
+ g_return_if_fail (self);
- if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX(self), &iter))
- retval = NULL; /* nothing found */
- else {
+ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX(self), &iter)) {
GtkTreeModel *model;
- GValue val;
model = gtk_combo_box_get_model (GTK_COMBO_BOX(self));
+ gtk_tree_model_get_value (model, &iter, column, val);
+ }
+}
+
+gpointer
+modest_combo_box_get_active_id (ModestComboBox *self)
+{
+ g_return_val_if_fail (self, NULL);
+ GValue val = {0,};
+ gpointer retval;
- g_value_init (&val, G_TYPE_POINTER);
- gtk_tree_model_get_value (model, &iter, COLUMN_ID, &val);
+ /* Do not unset the GValue */
+ get_active (self, &val, COLUMN_ID);
+ retval = g_value_peek_pointer (&val);
+
+ return retval;
+}
+
+gpointer
+modest_combo_box_get_active_display_name (ModestComboBox *self)
+{
+ g_return_val_if_fail (self, NULL);
+ GValue val = {0,};
+ gpointer retval;
+
+ /* Do not unset the GValue */
+ get_active (self, &val, COLUMN_DISPLAY_NAME);
+ retval = g_value_peek_pointer (&val);
- retval = g_value_get_pointer (&val);
- g_value_unset (&val);
- }
return retval;
}