40 #include "combo_helper.h"
42 GtkComboBox *ch_new_combo()
44 GtkListStore *store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
45 GtkComboBox *combo = GTK_COMBO_BOX(
46 gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)));
48 GtkCellRenderer *cell = gtk_cell_renderer_text_new();
49 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
50 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), cell,
"text", 0, NULL);
55 void ch_append_to_combo(GtkComboBox *combo,
const gchar *text, gint value)
58 GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model(combo));
59 gtk_list_store_append(store, &iter);
60 gtk_list_store_set(store, &iter, 0, text, 1, value, -1);
63 gchar *ch_get_active_str_value(GtkComboBox *combo)
68 gboolean has_selection = gtk_combo_box_get_active_iter(combo, &iter);
72 GtkTreeModel *store = gtk_combo_box_get_model(combo);
73 gtk_tree_model_get(store, &iter, 0, &value, -1);
79 gint ch_get_active_value(GtkComboBox *combo)
84 gboolean has_selection = gtk_combo_box_get_active_iter(combo, &iter);
88 GtkTreeModel *store = gtk_combo_box_get_model(combo);
89 gtk_tree_model_get(store, &iter, 1, &value, -1);
95 void ch_set_active_str_value(GtkComboBox *combo, gchar *new_value)
98 GtkTreeModel *store = gtk_combo_box_get_model(combo);
100 gboolean valid_row = gtk_tree_model_get_iter_first(store, &iter);
104 gtk_tree_model_get(store, &iter, 0, &value, -1);
106 if (strcmp(value, new_value) == 0)
108 gtk_combo_box_set_active_iter(combo, &iter);
112 valid_row = gtk_tree_model_iter_next(store, &iter);
116 void ch_set_active_value(GtkComboBox *combo, gint new_value)
119 GtkTreeModel *store = gtk_combo_box_get_model(combo);
121 gboolean valid_row = gtk_tree_model_get_iter_first(store, &iter);
125 gtk_tree_model_get(store, &iter, 1, &value, -1);
127 if (value == new_value)
129 gtk_combo_box_set_active_iter(combo, &iter);
133 valid_row = gtk_tree_model_iter_next(store, &iter);