To disable editing on a TreeView cell you must change the editable<http://developer.gnome.org/gtk/2.24/GtkCellRendererText.html#GtkCellRendererText--editable>property to FALSE. But doing so will affect the whole column.
I can think of 2 ways to solve your problem: 1. What you can do is add another G_TYPE_BOOLEAN column in your model and associate the editable property of the CellRenderer with that column. 2. Customize the CellRenderer with gtk-tree-view-column-set-cell-data-func<http://developer.gnome.org/gtk/stable/GtkTreeViewColumn.html#gtk-tree-view-column-set-cell-data-func> Regards, Ian On Mon, Feb 13, 2012 at 2:37 AM, Enoch Langston <[email protected]>wrote: > My name is Kevin and I work in IT support. I am new to the mailing list > and development in general. I have found gtk both rewarding and difficult > to learn. I have especially been having a rough time with figuring out how > to deactivate a cell I have set to editing with a call to > gtk_tree_view_set_cursor(). Once I've set the path via this function to > enable editing I am worried about a user selecting another option in the > treeview with a left click and notcing that the old path still has a text > field in it and can be editited. Below is the function I wrote that gets > called when someone selects rename on a popup menu which is one of the > choices. I use this function to set the path to the cell to enable editing, > I am also controlling editing in my tree model with a boolean property > which I switch on just before calling this function. I need to know how to > caputure the case that the user clicks on a different tree view path mid > edit before actually submitting the editing cell with the "enter" key. Here > is how I enable it, how do I disable it if they click somewhere else? > > void tree_select_menu_rename(GtkWidget *menuitem, gpointer userdata) > { > GtkTreeView *view; > GtkTreeModel *sortModel, *baseModel; > GtkTreePath *path = NULL; > GtkTreePath *sortPath = NULL; > GtkTreeIter sortIter, baseIter; > GtkTreeSelection *selection; > > view = GTK_TREE_VIEW(userdata); > selection = gtk_tree_view_get_selection(view); > > if(!gtk_tree_selection_get_selected(selection, &sortModel, &sortIter)){ > return;} > > gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sortModel), > &baseIter, &sortIter); > baseModel = > gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(sortModel)); > gtk_tree_store_set(GTK_TREE_STORE(baseModel), &baseIter, EDITCELL, TRUE, > -1); > path = gtk_tree_model_get_path(baseModel, &baseIter); > sortPath = > gtk_tree_model_sort_convert_child_path_to_path(GTK_TREE_MODEL_SORT(sortModel), > path); > GtkTreeViewColumn *col = gtk_tree_view_get_column(GTK_TREE_VIEW(view), > 0); > gtk_tree_view_set_cursor(view, sortPath, col, TRUE); > > > > /*FREE RESOURCES USED */ > gtk_tree_path_free(path); > gtk_tree_path_free(sortPath); > } > > > > _______________________________________________ > 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
