1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-10 17:11:17 +02:00

Split out class CommonTrackView ...

... so base class TrackView can be used by TrackPanel to define its subdivision,
avoiding dependency on any special callbacks in CommonTrackView
This commit is contained in:
Paul Licameli 2019-06-18 10:09:41 -04:00
parent 059d7eaa42
commit e77799d62c
6 changed files with 16 additions and 10 deletions

View File

@ -13,7 +13,7 @@ Paul Licameli split from class LabelTrack
#include "../../ui/TrackView.h" #include "../../ui/TrackView.h"
class LabelTrackView final : public TrackView class LabelTrackView final : public CommonTrackView
{ {
LabelTrackView( const LabelTrackView& ) = delete; LabelTrackView( const LabelTrackView& ) = delete;
LabelTrackView &operator=( const LabelTrackView& ) = delete; LabelTrackView &operator=( const LabelTrackView& ) = delete;
@ -21,7 +21,7 @@ class LabelTrackView final : public TrackView
public: public:
explicit explicit
LabelTrackView( const std::shared_ptr<Track> &pTrack ) LabelTrackView( const std::shared_ptr<Track> &pTrack )
: TrackView{ pTrack } {} : CommonTrackView{ pTrack } {}
~LabelTrackView() override; ~LabelTrackView() override;
}; };

View File

@ -13,7 +13,7 @@ Paul Licameli split from class NoteTrack
#include "../../../ui/TrackView.h" #include "../../../ui/TrackView.h"
class NoteTrackView final : public TrackView class NoteTrackView final : public CommonTrackView
{ {
NoteTrackView( const NoteTrackView& ) = delete; NoteTrackView( const NoteTrackView& ) = delete;
NoteTrackView &operator=( const NoteTrackView& ) = delete; NoteTrackView &operator=( const NoteTrackView& ) = delete;
@ -21,7 +21,7 @@ class NoteTrackView final : public TrackView
public: public:
explicit explicit
NoteTrackView( const std::shared_ptr<Track> &pTrack ) NoteTrackView( const std::shared_ptr<Track> &pTrack )
: TrackView{ pTrack } {} : CommonTrackView{ pTrack } {}
~NoteTrackView() override; ~NoteTrackView() override;
}; };

View File

@ -13,7 +13,7 @@ Paul Licameli split from class WaveTrack
#include "../../../ui/TrackView.h" #include "../../../ui/TrackView.h"
class WaveTrackView final : public TrackView class WaveTrackView final : public CommonTrackView
{ {
WaveTrackView( const WaveTrackView& ) = delete; WaveTrackView( const WaveTrackView& ) = delete;
WaveTrackView &operator=( const WaveTrackView& ) = delete; WaveTrackView &operator=( const WaveTrackView& ) = delete;
@ -21,7 +21,7 @@ class WaveTrackView final : public TrackView
public: public:
explicit explicit
WaveTrackView( const std::shared_ptr<Track> &pTrack ) WaveTrackView( const std::shared_ptr<Track> &pTrack )
: TrackView{ pTrack } {} : CommonTrackView{ pTrack } {}
~WaveTrackView() override; ~WaveTrackView() override;
}; };

View File

@ -13,7 +13,7 @@ Paul Licameli split from class TimeTrack
#include "../../ui/TrackView.h" #include "../../ui/TrackView.h"
class TimeTrackView final : public TrackView class TimeTrackView final : public CommonTrackView
{ {
TimeTrackView( const TimeTrackView& ) = delete; TimeTrackView( const TimeTrackView& ) = delete;
TimeTrackView &operator=( const TimeTrackView& ) = delete; TimeTrackView &operator=( const TimeTrackView& ) = delete;
@ -21,7 +21,7 @@ class TimeTrackView final : public TrackView
public: public:
explicit explicit
TimeTrackView( const std::shared_ptr<Track> &pTrack ) TimeTrackView( const std::shared_ptr<Track> &pTrack )
: TrackView{ pTrack } {} : CommonTrackView{ pTrack } {}
~TimeTrackView() override; ~TimeTrackView() override;
}; };

View File

@ -34,7 +34,7 @@ const TrackView &TrackView::Get( const Track &track )
return *track.GetTrackView(); return *track.GetTrackView();
} }
std::vector<UIHandlePtr> TrackView::HitTest std::vector<UIHandlePtr> CommonTrackView::HitTest
(const TrackPanelMouseState &st, (const TrackPanelMouseState &st,
const AudacityProject *pProject) const AudacityProject *pProject)
{ {
@ -100,7 +100,7 @@ std::shared_ptr<TrackPanelCell> Track::ContextMenuDelegate()
return TrackControls::Get( *this ).shared_from_this(); return TrackControls::Get( *this ).shared_from_this();
} }
std::shared_ptr<TrackPanelCell> TrackView::ContextMenuDelegate() std::shared_ptr<TrackPanelCell> CommonTrackView::ContextMenuDelegate()
{ {
return TrackControls::Get( *FindTrack() ).shared_from_this(); return TrackControls::Get( *FindTrack() ).shared_from_this();
} }

View File

@ -29,6 +29,12 @@ public:
static TrackView &Get( Track & ); static TrackView &Get( Track & );
static const TrackView &Get( const Track & ); static const TrackView &Get( const Track & );
};
class CommonTrackView /* not final */ : public TrackView
{
public:
using TrackView::TrackView;
std::vector<UIHandlePtr> HitTest std::vector<UIHandlePtr> HitTest
(const TrackPanelMouseState &, const AudacityProject *pProject) (const TrackPanelMouseState &, const AudacityProject *pProject)