Getting closer to working tree/list wxDataViewCtrl.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -191,6 +191,15 @@ public:
|
|||||||
}
|
}
|
||||||
virtual wxDataViewItem GetNthChild( const wxDataViewItem &parent, unsigned int n ) const
|
virtual wxDataViewItem GetNthChild( const wxDataViewItem &parent, unsigned int n ) const
|
||||||
{
|
{
|
||||||
|
if (!parent.IsOk())
|
||||||
|
{
|
||||||
|
// root node
|
||||||
|
if (n == 0)
|
||||||
|
return wxDataViewItem( 1 );
|
||||||
|
|
||||||
|
return wxDataViewItem( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
int ID = parent.GetID();
|
int ID = parent.GetID();
|
||||||
switch (ID)
|
switch (ID)
|
||||||
{
|
{
|
||||||
|
@@ -267,15 +267,19 @@ wxgtk_tree_model_get_iter (GtkTreeModel *tree_model,
|
|||||||
|
|
||||||
wxDataViewItem item;
|
wxDataViewItem item;
|
||||||
|
|
||||||
|
wxPrintf( "get_iter depth: %d\n", depth );
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < depth; i++)
|
for (i = 0; i < depth; i++)
|
||||||
{
|
{
|
||||||
gint pos = gtk_tree_path_get_indices (path)[i];
|
gint pos = gtk_tree_path_get_indices (path)[i];
|
||||||
item = model->GetNthChild( item, (unsigned int) pos );
|
item = model->GetNthChild( item, (unsigned int) pos );
|
||||||
|
|
||||||
|
wxPrintf( "pos %d\n", pos );
|
||||||
|
|
||||||
if (!item.IsOk())
|
if (!item.IsOk())
|
||||||
{
|
{
|
||||||
wxPrintf( wxT("wrong item from path\n") );
|
wxPrintf( "wrong item from path\n" );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -438,18 +442,32 @@ wxgtk_tree_model_iter_nth_child (GtkTreeModel *tree_model,
|
|||||||
GtkWxTreeModel *wxtree_model = (GtkWxTreeModel *) tree_model;
|
GtkWxTreeModel *wxtree_model = (GtkWxTreeModel *) tree_model;
|
||||||
g_return_val_if_fail (GTK_IS_WX_TREE_MODEL (wxtree_model), FALSE);
|
g_return_val_if_fail (GTK_IS_WX_TREE_MODEL (wxtree_model), FALSE);
|
||||||
|
|
||||||
g_return_val_if_fail (wxtree_model->stamp == parent->stamp, FALSE);
|
|
||||||
|
|
||||||
wxDataViewModel *model = wxtree_model->model;
|
wxDataViewModel *model = wxtree_model->model;
|
||||||
|
|
||||||
wxDataViewItem item( (wxUint32) parent->user_data );
|
if (!parent)
|
||||||
item = model->GetNthChild( item, n );
|
{
|
||||||
|
wxDataViewItem item;
|
||||||
|
item = model->GetNthChild( item, n );
|
||||||
|
|
||||||
if (!item.IsOk())
|
if (!item.IsOk())
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
iter->stamp = wxtree_model->stamp;
|
iter->stamp = wxtree_model->stamp;
|
||||||
iter->user_data = (gpointer) item.GetID();
|
iter->user_data = (gpointer) item.GetID();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (wxtree_model->stamp == parent->stamp, FALSE);
|
||||||
|
|
||||||
|
wxDataViewItem item( (wxUint32) parent->user_data );
|
||||||
|
item = model->GetNthChild( item, n );
|
||||||
|
|
||||||
|
if (!item.IsOk())
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
iter->stamp = wxtree_model->stamp;
|
||||||
|
iter->user_data = (gpointer) item.GetID();
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user