+ // This adds GTK+'s missing MVC logic for ValueChanged
+ wxNode *node = GetOwner()->m_viewingColumns.GetFirst();
+ while (node)
+ {
+ wxDataViewViewingColumn* viewing_column = (wxDataViewViewingColumn*) node->GetData();
+ if (viewing_column->m_modelColumn == model_col)
+ {
+ GtkTreeView *widget = GTK_TREE_VIEW(viewing_column->m_viewColumn->GetOwner()->m_treeview);
+ GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(viewing_column->m_viewColumn->GetGtkHandle());
+
+ // Get cell area
+ GtkTreePath *path = gtk_tree_path_new();
+ gtk_tree_path_append_index( path, model_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 );
+ }
+
+ node = node->GetNext();
+ }
+
+ return true;
+}
+
+bool wxGtkDataViewListModelNotifier::RowsReordered( size_t *new_order )
+{
+ // Assume sizeof(size_t)= == sizeof(gint)
+
+ GtkTreePath *path = gtk_tree_path_new ();
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (m_gtk_store), path, NULL, (gint*)new_order);
+ gtk_tree_path_free (path);
+
+ // This adds GTK+'s missing MVC logic for RowsReordered
+ wxNode *node = GetOwner()->m_viewingColumns.GetFirst();
+ while (node)
+ {
+ wxDataViewViewingColumn* viewing_column = (wxDataViewViewingColumn*) node->GetData();
+ GtkTreeView *widget = GTK_TREE_VIEW(viewing_column->m_viewColumn->GetOwner()->m_treeview);
+ // Doesn't work yet...
+ gtk_widget_queue_draw( GTK_WIDGET(widget) );
+
+ node = node->GetNext();
+ }
+
+ return true;