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,
|
NextID,
|
||||||
};
|
};
|
||||||
|
|
||||||
ProjectWindow::ProjectWindow(wxWindow * parent, wxWindowID id,
|
ProjectWindowBase::ProjectWindowBase(wxWindow * parent, wxWindowID id,
|
||||||
const wxPoint & pos,
|
const wxPoint & pos,
|
||||||
const wxSize & size, AudacityProject &project)
|
const wxSize & size, AudacityProject &project)
|
||||||
: wxFrame(parent, id, _TS("Audacity"), pos, size)
|
: wxFrame(parent, id, _TS("Audacity"), pos, size)
|
||||||
, mProject{ project }
|
, mProject{ project }
|
||||||
{
|
{
|
||||||
project.SetFrame( this );
|
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;
|
mNextWindowID = NextID;
|
||||||
|
|
||||||
// Two sub-windows need to be made before Init(),
|
// Two sub-windows need to be made before Init(),
|
||||||
|
@ -25,9 +25,27 @@ class wxPanel;
|
|||||||
class ProjectWindow;
|
class ProjectWindow;
|
||||||
void InitProjectWindow( ProjectWindow &window );
|
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
|
///\brief A top-level window associated with a project, and handling scrollbars
|
||||||
/// and zooming
|
/// and zooming
|
||||||
class ProjectWindow final : public wxFrame
|
class ProjectWindow final : public ProjectWindowBase
|
||||||
, public TrackPanelListener
|
, public TrackPanelListener
|
||||||
, public PrefsListener
|
, public PrefsListener
|
||||||
{
|
{
|
||||||
@ -36,8 +54,6 @@ public:
|
|||||||
static const ProjectWindow &Get( const AudacityProject &project );
|
static const ProjectWindow &Get( const AudacityProject &project );
|
||||||
static ProjectWindow *Find( AudacityProject *pProject );
|
static ProjectWindow *Find( AudacityProject *pProject );
|
||||||
static const ProjectWindow *Find( const AudacityProject *pProject );
|
static const ProjectWindow *Find( const AudacityProject *pProject );
|
||||||
AudacityProject &GetProject() { return mProject; }
|
|
||||||
const AudacityProject &GetProject() const { return mProject; }
|
|
||||||
|
|
||||||
explicit ProjectWindow(
|
explicit ProjectWindow(
|
||||||
wxWindow * parent, wxWindowID id,
|
wxWindow * parent, wxWindowID id,
|
||||||
@ -173,7 +189,6 @@ public:
|
|||||||
bool mbInitializingScrollbar{ false };
|
bool mbInitializingScrollbar{ false };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AudacityProject &mProject;
|
|
||||||
wxRect mNormalizedWindowState;
|
wxRect mNormalizedWindowState;
|
||||||
|
|
||||||
wxPanel *mTopPanel{};
|
wxPanel *mTopPanel{};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user