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:
parent
db6265d4e7
commit
be24e6b5a1
@ -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(),
|
||||
|
@ -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{};
|
||||
|
Loading…
x
Reference in New Issue
Block a user