mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-04 17:49:45 +02:00
... where we have a window, ascend the chain of parent pointers instead to find the project window.
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
/**********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
ProjectWindowBase.cpp
|
|
|
|
Paul Licameli split from ProjectWindow.cpp
|
|
|
|
**********************************************************************/
|
|
|
|
#include "ProjectWindowBase.h"
|
|
|
|
#include "Project.h"
|
|
|
|
ProjectWindowBase::ProjectWindowBase(wxWindow * parent, wxWindowID id,
|
|
const wxPoint & pos,
|
|
const wxSize & size, AudacityProject &project)
|
|
: wxFrame(parent, id, _TS("Audacity"), pos, size)
|
|
, mProject{ project }
|
|
{
|
|
project.SetFrame( this );
|
|
};
|
|
|
|
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 ) );
|
|
}
|
|
|