//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ // //=============================================================================// #include "cbase.h" #include "itreeitem.h" #include "mxtk/mxTreeView.h" #include "project.h" #include "scene.h" #include "soundentry.h" #include "vcdfile.h" #include "wavefile.h" #include "workspace.h" //----------------------------------------------------------------------------- // Purpose: // Input : *tree - // *parent - // Output : mxTreeViewItem //----------------------------------------------------------------------------- mxTreeViewItem *ITreeItem::FindItem( mxTreeView *tree, mxTreeViewItem *parent, bool recurse ) { if ( !tree ) return NULL; mxTreeViewItem *child = tree->getFirstChild( parent ); while ( child ) { ITreeItem *treeItem = (ITreeItem *)tree->getUserData( child ); if ( treeItem ) { if ( treeItem == this ) { return child; } if ( recurse ) { mxTreeViewItem *found = FindItem( tree, child, recurse ); if ( found ) { return found; } } } child = tree->getNextChild( child ); } return NULL; } ITreeItem *ITreeItem::GetParentItem() { if ( GetSoundEntry() ) { return GetSoundEntry()->GetOwnerVCDFile(); } if ( GetVCDFile() ) { return GetVCDFile()->GetOwnerScene(); } if ( GetScene() ) { return GetScene()->GetOwnerProject(); } if ( GetProject() ) { return GetProject()->GetOwnerWorkspace(); } if ( GetWaveFile() ) { return GetWaveFile()->GetOwnerSoundEntry(); } return NULL; }