1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-04-23 06:23:49 +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

@@ -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{};