]> git.saurik.com Git - wxWidgets.git/commitdiff
MVC works now.
authorRobert Roebling <robert@roebling.de>
Mon, 27 Feb 2006 14:18:24 +0000 (14:18 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 27 Feb 2006 14:18:24 +0000 (14:18 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/dataview.h
src/gtk/dataview.cpp

index 47d9a026b5f7e73c1008135d7badebb8b1c2fd44..480fd896f7db686697cb90b7984b3a8e54b7fd1d 100644 (file)
@@ -221,6 +221,7 @@ public:
     
 private:
     friend class wxDataViewCtrlDC;
+    friend class wxGtkDataViewListModelNotifier;
     GtkWidget       *m_treeview;
     
 private:
index 76f1fe07fa397e24347f7883776d606f5e039de7..3a9267cc825667264208c66b8282be5761037fe3 100644 (file)
@@ -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;
 }
 
 // ---------------------------------------------------------