void UndoEngine::PrintTree(HeeksObj *tree, std::stringstream &cstr,int level) { tab(cstr,level); cstr << "ID: " << tree->m_id << endl; tab(cstr,level); cstr << "Type: " << wxString(tree->GetTypeString()).mb_str() << endl; tab(cstr,level); cstr << "Location: " << tree << endl; if(tree->IsList()) { ObjList* list = (ObjList*)tree; if(list->DescendForUndo()) { HeeksObj* child = list->GetFirstChild(); while(child) { PrintTree(child,cstr,level+1); child = list->GetNextChild(); } } } }