1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-16 16:10:06 +02:00

Separate class ProjectWindowBase...

... which adds a project association to wxFrame, and nothing else
This commit is contained in:
Paul Licameli 2020-01-03 11:58:01 -05:00
parent db6265d4e7
commit be24e6b5a1
2 changed files with 30 additions and 5 deletions

View File

@ -564,14 +564,24 @@ enum {
NextID,
};
ProjectWindow::ProjectWindow(wxWindow * parent, wxWindowID id,
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()
{
}
ProjectWindow::ProjectWindow(wxWindow * parent, wxWindowID id,
const wxPoint & pos,
const wxSize & size, AudacityProject &project)
: ProjectWindowBase{ parent, id, pos, size, project }
{
mNextWindowID = NextID;
// Two sub-windows need to be made before Init(),

View File

@ -25,9 +25,27 @@ class wxPanel;
class ProjectWindow;
void InitProjectWindow( ProjectWindow &window );
///\brief A top-level window associated with a project
class ProjectWindowBase /* not final */ : public wxFrame
{
public:
explicit ProjectWindowBase(
wxWindow * parent, wxWindowID id,
const wxPoint & pos, const wxSize &size,
AudacityProject &project );
~ProjectWindowBase() override;
AudacityProject &GetProject() { return mProject; }
const AudacityProject &GetProject() const { return mProject; }
protected:
AudacityProject &mProject;
};
///\brief A top-level window associated with a project, and handling scrollbars
/// and zooming
class ProjectWindow final : public wxFrame
class ProjectWindow final : public ProjectWindowBase
, public TrackPanelListener
, public PrefsListener
{
@ -36,8 +54,6 @@ public:
static const ProjectWindow &Get( const AudacityProject &project );
static ProjectWindow *Find( AudacityProject *pProject );
static const ProjectWindow *Find( const AudacityProject *pProject );
AudacityProject &GetProject() { return mProject; }
const AudacityProject &GetProject() const { return mProject; }
explicit ProjectWindow(
wxWindow * parent, wxWindowID id,
@ -173,7 +189,6 @@ public:
bool mbInitializingScrollbar{ false };
private:
AudacityProject &mProject;
wxRect mNormalizedWindowState;
wxPanel *mTopPanel{};