+extern "C" {
+static void wxGtkTextRendererEditedCallback( GtkCellRendererText *renderer,
+ gchar *arg1, gchar *arg2, gpointer user_data );
+}
+
+static void wxGtkTextRendererEditedCallback( GtkCellRendererText *renderer,
+ gchar *arg1, gchar *arg2, gpointer user_data )
+{
+ wxDataViewTextCell *cell = (wxDataViewTextCell*) user_data;
+
+ wxString tmp = wxGTK_CONV_BACK( arg2 );
+ wxVariant value = tmp;
+ if (!cell->Validate( value ))
+ return;
+
+ wxDataViewListModel *model = cell->GetOwner()->GetOwner()->GetModel();
+
+ GtkTreePath *path = gtk_tree_path_new_from_string( arg1 );
+ size_t model_row = (size_t)gtk_tree_path_get_indices (path)[0];
+ gtk_tree_path_free( path );
+
+ size_t model_col = cell->GetOwner()->GetModelColumn();
+
+ model->SetValue( value, model_col, model_row );
+ model->ValueChanged( model_col, model_row );
+}
+