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

Reply via email to