On Sun, 2003-09-21 at 10:07, Pierre Sarrazin wrote: > Hi. I want a GtkTreeView with an editable text column and an > editable "toggle" (checkbox) column. My current code has the former, > but the latter does not work yet. Here is how the two columns are > added to the view: > > renderer = gtk_cell_renderer_text_new(); > column = gtk_tree_view_column_new_with_attributes( > _("Regular expression"), > renderer, > "text", COLUMN_REGEX, > "editable", COLUMN_EDITABLE, > NULL); > gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view), column); > > renderer = gtk_cell_renderer_toggle_new(); > column = gtk_tree_view_column_new_with_attributes( > _("Negate"), > renderer, > "active", COLUMN_NEGATE, > "activatable", COLUMN_EDITABLE, > NULL); > gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view), column); > > > The only row in the store is added with this: > > gtk_tree_store_append(store, &iter, NULL); > gtk_tree_store_set(store, &iter, > COLUMN_REGEX, "foo", > COLUMN_NEGATE, FALSE, > COLUMN_EDITABLE, TRUE, > -1); > > The store was created with this: > > GtkTreeStore *store = gtk_tree_store_new(3, > G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); > > > When I click on a the text field, I can edit it. When I click on the > checkbox, it does not change. > > I've looked at the "Editable Cells" demo in gtk-demo (from the > gtk2-2.2.2-0.ximian.5.3 RPM), but it does not use "toggle" columns. > > Has anyone successfully created an editable checkbox in a GtkTreeView? Use the toggled signal on the renderer like this : g_signal_connect (G_OBJECT(renderer), "toggled", G_CALLBACK (your_callback), NULL); "your_callback" would look like this : static void your_callback(GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { // get the treemodel from somewhere GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean enabled; gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, COLUMN_X, &enabled, -1); enabled ^= 1; // do something with the new enabled value, and set the new // enabled value in your treemodel gtk_tree_path_free (path); } I don't remember where I learned this, but I think it was from the gtk-demo though. _______________________________________________ gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list