Hello!
I want to move a branch with drag&drop in a wxtreectrl.
Here is the function, that I use:
Code:
typedef struct sItemRepresentation
{
wxTreeItemId pTreeItem;
} sItemRepresentation;
void MoveTree(wxTreeItemId &source, wxTreeItemId &dest)
{
wxTreeItemIdValue cookie;
wxTreeItemId cdest;
// 1. Child
wxTreeItemId child = WxTreeCtrl1->GetFirstChild(source, cookie);
if (child.IsOk())
{
// Add child to destination
sItemRepresentation selItemRep = m_vItems[child];
selItemRep.pTreeItem = WxTreeCtrl1->InsertItem(dest,WxTreeCtrl1->GetItemText(selItemRep.pTreeItem));
m_vItems[selItemRep.pTreeItem] = selItemRep;
MoveTree(child,selItemRep.pTreeItem);
// Get next children
while ((child = WxTreeCtrl1->GetNextChild(child, cookie)).IsOk())
{
selItemRep = m_vItems[child];
wxMessageBox(WxTreeCtrl1->GetItemText(selItemRep.pTreeItem), _T("Error"),wxOK | wxICON_ERROR, this);
selItemRep.pTreeItem = WxTreeCtrl1->InsertItem(dest,WxTreeCtrl1->GetItemText(selItemRep.pTreeItem));
m_vItems[selItemRep.pTreeItem] = selItemRep;
MoveTree(child,selItemRep.pTreeItem);
child = WxTreeCtrl1->GetNextChild(child, cookie);
}
}
}
But the moving of a branch does not work correctly. Some treeitems are just not moved (and I do not see a reason therefore).
I already posted it in the wxwidgets forum, but nobody seems to answer.
Can someone please give me a hint?