You shall not beg, but you should test ;-) Yes, you can set the active option with the 'gtk_combo_box_set_active' or 'gtk_combo_box_set_active_iter'.
On Thu, Jun 24, 2010 at 3:07 PM, John Williams <[email protected]> wrote: > Shall I beg? > > 2010/6/21 John Williams <[email protected]>: > > Anyone? > > > > 2010/6/16 John Williams <[email protected]>: > >> Other question, how can I set the active option? > gtk_combo_box_set_active? > >> > >> 2010/6/16 John Williams <[email protected]>: > >>> Yes Tadej, you understand perfectly. > >>> > >>> Thank you for the example! > >>> > >>> 2010/6/15 Tadej Borovšak <[email protected]>: > >>>> Hello. > >>>> > >>>> If I understand you correctly, you want to store name and ID of your > >>>> field inside combo box and retrieve it when needed. If this is true, > >>>> have a look at this snippet of code that demonstrates how to do this: > >>>> > >>>> ------- > >>>> #include <gtk/gtk.h> > >>>> > >>>> enum > >>>> { > >>>> COL_NAME, > >>>> COL_ID, > >>>> NO_COLS > >>>> }; > >>>> > >>>> static void > >>>> cb_changed (GtkComboBox *combo) > >>>> { > >>>> GtkTreeIter iter; > >>>> GtkTreeModel *model; > >>>> gint id; > >>>> gchar *name; > >>>> > >>>> gtk_combo_box_get_active_iter (combo, &iter); > >>>> model = gtk_combo_box_get_model (combo); > >>>> gtk_tree_model_get (model, &iter, COL_NAME, &name, COL_ID, &id, -1); > >>>> > >>>> g_print ("Active selection: %s (id: %d)\n", name, id); > >>>> g_free (name); > >>>> } > >>>> > >>>> int > >>>> main (int argc, > >>>> char **argv) > >>>> { > >>>> GtkWidget *window, > >>>> *combo; > >>>> GtkCellRenderer *cell; > >>>> GtkListStore *store; > >>>> gint i; > >>>> > >>>> gtk_init (&argc, &argv); > >>>> > >>>> window = gtk_window_new (GTK_WINDOW_TOPLEVEL); > >>>> g_signal_connect (window, "destroy", gtk_main_quit, NULL); > >>>> > >>>> store = gtk_list_store_new (NO_COLS, G_TYPE_STRING, G_TYPE_INT); > >>>> for (i = 0; i < 10; i++) > >>>> { > >>>> GtkTreeIter iter; > >>>> gchar name[] = "Item "; > >>>> > >>>> name[5] = '0' + i; > >>>> gtk_list_store_append (store, &iter); > >>>> gtk_list_store_set (store, &iter, COL_NAME, name, > >>>> COL_ID, g_random_int (), > >>>> -1); > >>>> } > >>>> > >>>> combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store)); > >>>> g_signal_connect (combo, "changed", G_CALLBACK (cb_changed), NULL); > >>>> gtk_container_add (GTK_CONTAINER (window), combo); > >>>> > >>>> cell = gtk_cell_renderer_text_new (); > >>>> gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE); > >>>> gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo), cell, > >>>> "text", COL_NAME); > >>>> > >>>> gtk_widget_show_all (window); > >>>> > >>>> gtk_main(); > >>>> > >>>> return 0; > >>>> } > >>>> ---------- > >>>> > >>>> Tadej > >>>> > >>>> -- > >>>> Tadej Borovšak > >>>> tadeboro.blogspot.com > >>>> [email protected] > >>>> [email protected] > >>>> > >>> > >> > > > _______________________________________________ > gtk-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/gtk-list >
_______________________________________________ gtk-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtk-list
