Further sorting work using the sorting data model.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2006-03-01 10:49:06 +00:00
parent abd6692ca8
commit 4eccd3a10f
3 changed files with 148 additions and 7 deletions

View File

@@ -735,6 +735,7 @@ public:
virtual bool RowDeleted( size_t row );
virtual bool RowChanged( size_t row );
virtual bool ValueChanged( size_t col, size_t row );
virtual bool RowsReordered( size_t *new_order );
virtual bool Cleared();
GtkWxListStore *m_gtk_store;
@@ -806,7 +807,7 @@ bool wxGtkDataViewListModelNotifier::RowChanged( size_t row )
bool wxGtkDataViewListModelNotifier::ValueChanged( size_t model_col, size_t model_row )
{
// This adds GTK+'s missing MVC logic for SetValue
// This adds GTK+'s missing MVC logic for ValueChanged
wxNode *node = GetOwner()->m_viewingColumns.GetFirst();
while (node)
{
@@ -835,6 +836,30 @@ bool wxGtkDataViewListModelNotifier::ValueChanged( size_t model_col, size_t mode
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;
}
bool wxGtkDataViewListModelNotifier::Cleared()
{
return false;