1 /**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 ProjectWindowBase.cpp
6
7 Paul Licameli split from ProjectWindow.cpp
8
9 **********************************************************************/
10
11 #include "ProjectWindowBase.h"
12
13 #include "Project.h"
14 #include "ProjectWindows.h"
15
ProjectWindowBase(wxWindow * parent,wxWindowID id,const wxPoint & pos,const wxSize & size,AudacityProject & project)16 ProjectWindowBase::ProjectWindowBase(wxWindow * parent, wxWindowID id,
17 const wxPoint & pos,
18 const wxSize & size, AudacityProject &project)
19 : wxFrame(parent, id, _TS("Audacity"), pos, size)
20 , mProject{ project }
21 {
22 SetProjectFrame( project, *this );
23
24 // Ensure a unique name of this window for journalling purposes
25 SetName(
26 wxString::Format( L"AudacityProject %d", project.GetProjectNumber() ) );
27 };
28
~ProjectWindowBase()29 ProjectWindowBase::~ProjectWindowBase()
30 {
31 }
32
33 namespace {
34
FindProjectWindow(wxWindow * pWindow)35 ProjectWindowBase *FindProjectWindow( wxWindow *pWindow )
36 {
37 while ( pWindow && pWindow->GetParent() )
38 pWindow = pWindow->GetParent();
39 return dynamic_cast< ProjectWindowBase* >( pWindow );
40 }
41
42 }
43
FindProjectFromWindow(wxWindow * pWindow)44 AudacityProject *FindProjectFromWindow( wxWindow *pWindow )
45 {
46 auto pProjectWindow = FindProjectWindow( pWindow );
47 return pProjectWindow ? &pProjectWindow->GetProject() : nullptr;
48 }
49
FindProjectFromWindow(const wxWindow * pWindow)50 const AudacityProject *FindProjectFromWindow( const wxWindow *pWindow )
51 {
52 return FindProjectFromWindow( const_cast< wxWindow* >( pWindow ) );
53 }
54