Hallo!
ich bräuchte dringend Hilfe zu folgendem Thema, weil ich nicht weiterkomme:
im baue mit C und gtk ein Treeview.
Beim Aufbauen setze ich den Cell renderer auf "editable"
Nachher, wenn ich den Baum fülle, möchte ich aber manche Cellen haben, die nicht editierbar sind, je nachdem, was dadrin steht.
1) kann man das editierbare schon beim Füllen des Treeview ändern?
2) ich habe einen callback bei "editing-started" signal. Wie kann ich da das Editieren abbrechen, wenn ich merke, dass diese Zelle nicht geändert werden darf?
ich schaffe es weder mit g_signa_emit_by_name noch mit etwas anderem.

Kann mir jemand weiterhelfen?
danke schön im voraus
MBoerner


Code:
renderer = gtk_cell_renderer_text_new();
g_object_set(G_OBJECT(renderer),"editable",TRUE,NULL);
g_signal_connect(G_OBJECT(renderer),"edited",G_CALLBACK(cb_valueEdited),NULL);  
g_signal_connect(G_OBJECT(renderer),"editing-started",G_CALLBACK(cb_valueEdited_started),NULL); 
column = gtk_tree_view_column_new_with_attributes("value",renderer,"text",COL_VALUE,NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(pw_local.treeview),column);
und
Code:
static gboolean cb_valueEdited_started(GtkCellRendererText *cell, GtkCellEditable *editable, const gchar *path_string, const gchar *new_text)
{
	// check if access right allows to edit the cell
	if (pw_cell_editing_allowed(path_string))
	{
		if (GTK_IS_ENTRY(editable))
		{
			GtkEntry *entry = GTK_ENTRY(editable);
			g_signal_connect(GTK_OBJECT(entry), "activate", (GCallback)cb_endWithEnter, NULL);
		}
	}
	else
	{
		// cancel editing!
	}