1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 17:30:17 +01:00

Fewer uses of ::GetActiveProject()...

... where we have a window, ascend the chain of parent pointers instead to
find the project window.
This commit is contained in:
Paul Licameli
2019-05-21 10:21:46 -04:00
parent 9029eee5bd
commit 275797bbb4
6 changed files with 52 additions and 14 deletions

View File

@@ -24,3 +24,26 @@ ProjectWindowBase::ProjectWindowBase(wxWindow * parent, wxWindowID id,
ProjectWindowBase::~ProjectWindowBase()
{
}
namespace {
ProjectWindowBase *FindProjectWindow( wxWindow *pWindow )
{
while ( pWindow && pWindow->GetParent() )
pWindow = pWindow->GetParent();
return dynamic_cast< ProjectWindowBase* >( pWindow );
}
}
AudacityProject *FindProjectFromWindow( wxWindow *pWindow )
{
auto pProjectWindow = FindProjectWindow( pWindow );
return pProjectWindow ? &pProjectWindow->GetProject() : nullptr;
}
const AudacityProject *FindProjectFromWindow( const wxWindow *pWindow )
{
return FindProjectFromWindow( const_cast< wxWindow* >( pWindow ) );
}