From: Robert Roebling Date: Mon, 27 Feb 2006 14:18:24 +0000 (+0000) Subject: MVC works now. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5d605a6995d8f1a647934e30089468cc598c951d?ds=inline MVC works now. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/gtk/dataview.h b/include/wx/gtk/dataview.h index 47d9a026b5..480fd896f7 100644 --- a/include/wx/gtk/dataview.h +++ b/include/wx/gtk/dataview.h @@ -221,6 +221,7 @@ public: private: friend class wxDataViewCtrlDC; + friend class wxGtkDataViewListModelNotifier; GtkWidget *m_treeview; private: diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 76f1fe07fa..3a9267cc82 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -817,7 +817,29 @@ bool wxGtkDataViewListModelNotifier::Cleared() bool wxGtkDataViewListModelNotifier::ValueChanged( wxDataViewColumn *view_column, size_t model_column, size_t row ) { - return false; + wxDataViewCell *cell = view_column->GetCell(); + if (!cell) + return false; + + wxVariant variant = m_wx_model->GetValue( model_column, row ); + cell->SetValue( variant ); + + GtkTreeView *widget = GTK_TREE_VIEW(view_column->GetOwner()->m_treeview); + GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(view_column->GetGtkHandle()); + + // Get cell area + GtkTreePath *path = gtk_tree_path_new(); + gtk_tree_path_append_index( path, row ); + GdkRectangle cell_area; + gtk_tree_view_get_cell_area( widget, path, column, &cell_area ); + gtk_tree_path_free( path ); + + int ydiff = column->button->allocation.height; + // Redraw + gtk_widget_queue_draw_area( GTK_WIDGET(widget), + cell_area.x, ydiff + cell_area.y, cell_area.width, cell_area.height ); + + return true; } // ---------------------------------------------------------