From d36ce4538195a7344c5bb78b83b7e188edb3f59b Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sat, 6 Jul 2019 00:36:26 -0400 Subject: [PATCH] Declare pointers to WaveTrack sub-views, with stub methods for now --- .../wavetrack/ui/SpectrumView.cpp | 13 +++++ .../playabletrack/wavetrack/ui/SpectrumView.h | 43 ++++++++++++++ .../wavetrack/ui/WaveTrackView.cpp | 56 +++++++++++++++++++ .../wavetrack/ui/WaveTrackView.h | 5 ++ .../wavetrack/ui/WaveformView.cpp | 13 +++++ .../playabletrack/wavetrack/ui/WaveformView.h | 43 ++++++++++++++ 6 files changed, 173 insertions(+) diff --git a/src/tracks/playabletrack/wavetrack/ui/SpectrumView.cpp b/src/tracks/playabletrack/wavetrack/ui/SpectrumView.cpp index e69de29bb..22e1d6dd8 100644 --- a/src/tracks/playabletrack/wavetrack/ui/SpectrumView.cpp +++ b/src/tracks/playabletrack/wavetrack/ui/SpectrumView.cpp @@ -0,0 +1,13 @@ +/********************************************************************** + +Audacity: A Digital Audio Editor + +SpectrumView.cpp + +Paul Licameli split from WaveTrackView.cpp + +**********************************************************************/ + +#include "SpectrumView.h" + +SpectrumView::~SpectrumView() = default; diff --git a/src/tracks/playabletrack/wavetrack/ui/SpectrumView.h b/src/tracks/playabletrack/wavetrack/ui/SpectrumView.h index e69de29bb..98d833a27 100644 --- a/src/tracks/playabletrack/wavetrack/ui/SpectrumView.h +++ b/src/tracks/playabletrack/wavetrack/ui/SpectrumView.h @@ -0,0 +1,43 @@ +/********************************************************************** + +Audacity: A Digital Audio Editor + +SpectrumView.h + +Paul Licameli split from WaveTrackView.h + +**********************************************************************/ + +#ifndef __AUDACITY_SPECTRUM_VIEW__ +#define __AUDACITY_SPECTRUM_VIEW__ + +#include "../../../ui/CommonTrackView.h" // to inherit + +class SpectrumView final : public CommonTrackView +{ + SpectrumView( const SpectrumView& ) = delete; + SpectrumView &operator=( const SpectrumView& ) = delete; + +public: + using CommonTrackView::CommonTrackView; + ~SpectrumView() override; + + std::shared_ptr DoGetVRulerControls() override; + + +private: + // TrackPanelDrawable implementation + void Draw( + TrackPanelDrawingContext &context, + const wxRect &rect, unsigned iPass ) override; + + std::vector DetailedHitTest( + const TrackPanelMouseState &state, + const AudacityProject *pProject, int currentTool, bool bMultiTool ) + override; + +protected: + void DoSetMinimized( bool minimized ) override; +}; + +#endif diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.cpp b/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.cpp index 84b9e451c..80b579470 100644 --- a/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.cpp +++ b/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.cpp @@ -21,6 +21,9 @@ Paul Licameli split from TrackPanel.cpp #include "WaveTrackControls.h" #include "WaveTrackVRulerControls.h" +#include "SpectrumView.h" +#include "WaveformView.h" + #include "../../../../AColor.h" #include "../../../../Envelope.h" #include "../../../../EnvelopeEditor.h" @@ -43,6 +46,8 @@ Paul Licameli split from TrackPanel.cpp WaveTrackView::WaveTrackView( const std::shared_ptr &pTrack ) : CommonTrackView{ pTrack } + , mWaveformView{ std::make_shared< WaveformView >( pTrack ) } + , mSpectrumView{ std::make_shared< SpectrumView >( pTrack ) } { DoSetHeight( WaveTrackControls::DefaultWaveTrackHeight() ); } @@ -51,6 +56,13 @@ WaveTrackView::~WaveTrackView() { } +std::vector SpectrumView::DetailedHitTest( + const TrackPanelMouseState &state, + const AudacityProject *pProject, int currentTool, bool bMultiTool ) +{ + return {}; +} + std::vector WaveTrackView::DetailedHitTest (const TrackPanelMouseState &st, const AudacityProject *pProject, int currentTool, bool bMultiTool) @@ -130,6 +142,21 @@ std::vector WaveTrackView::DetailedHitTest return results; } +std::vector WaveformView::DetailedHitTest( + const TrackPanelMouseState &state, + const AudacityProject *pProject, int currentTool, bool bMultiTool ) +{ + return {}; +} + +void SpectrumView::DoSetMinimized( bool minimized ) +{ +} + +void WaveformView::DoSetMinimized( bool minimized ) +{ +} + void WaveTrackView::DoSetMinimized( bool minimized ) { auto wt = static_cast( FindTrack().get() ); @@ -175,6 +202,16 @@ template<> template<> auto DoGetWaveTrackView::Implementation() -> Function { } static DoGetWaveTrackView registerDoGetWaveTrackView; +std::shared_ptr WaveformView::DoGetVRulerControls() +{ + return {}; +} + +std::shared_ptr SpectrumView::DoGetVRulerControls() +{ + return {}; +} + std::shared_ptr WaveTrackView::DoGetVRulerControls() { return @@ -1843,6 +1880,25 @@ void DrawSpectrum( TrackPanelDrawingContext &context, } +void WaveTrackView::Reparent( const std::shared_ptr &parent ) +{ + CommonTrackView::Reparent( parent ); + if ( mWaveformView ) + mWaveformView->Reparent( parent ); + if ( mSpectrumView ) + mSpectrumView->Reparent( parent ); +} + +void WaveformView::Draw( + TrackPanelDrawingContext &context, const wxRect &rect, unsigned iPass ) +{ +} + +void SpectrumView::Draw( + TrackPanelDrawingContext &context, const wxRect &rect, unsigned iPass ) +{ +} + void WaveTrackView::Draw( TrackPanelDrawingContext &context, const wxRect &rect, unsigned iPass ) diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.h b/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.h index 0a7406165..234ddb684 100644 --- a/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.h +++ b/src/tracks/playabletrack/wavetrack/ui/WaveTrackView.h @@ -30,6 +30,9 @@ public: std::shared_ptr DoGetVRulerControls() override; + // CommonTrackView implementation + void Reparent( const std::shared_ptr &parent ) override; + private: // TrackPanelDrawable implementation void Draw( @@ -47,6 +50,8 @@ private: protected: void DoSetMinimized( bool minimized ) override; + + std::shared_ptr< CommonTrackView > mWaveformView, mSpectrumView; }; #endif diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveformView.cpp b/src/tracks/playabletrack/wavetrack/ui/WaveformView.cpp index e69de29bb..c9518ea7a 100644 --- a/src/tracks/playabletrack/wavetrack/ui/WaveformView.cpp +++ b/src/tracks/playabletrack/wavetrack/ui/WaveformView.cpp @@ -0,0 +1,13 @@ +/********************************************************************** + +Audacity: A Digital Audio Editor + +WaveformView.cpp + +Paul Licameli split from WaveTrackView.cpp + +**********************************************************************/ + +#include "WaveformView.h" + +WaveformView::~WaveformView() = default; diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveformView.h b/src/tracks/playabletrack/wavetrack/ui/WaveformView.h index e69de29bb..7d99d082e 100644 --- a/src/tracks/playabletrack/wavetrack/ui/WaveformView.h +++ b/src/tracks/playabletrack/wavetrack/ui/WaveformView.h @@ -0,0 +1,43 @@ +/********************************************************************** + +Audacity: A Digital Audio Editor + +WaveformView.h + +Paul Licameli split from WaveTrackView.h + +**********************************************************************/ + +#ifndef __AUDACITY_WAVEFORM_VIEW__ +#define __AUDACITY_WAVEFORM_VIEW__ + +#include "../../../ui/CommonTrackView.h" // to inherit + +class WaveformView final : public CommonTrackView +{ + WaveformView( const WaveformView& ) = delete; + WaveformView &operator=( const WaveformView& ) = delete; + +public: + using CommonTrackView::CommonTrackView; + ~WaveformView() override; + + std::shared_ptr DoGetVRulerControls() override; + + +private: + // TrackPanelDrawable implementation + void Draw( + TrackPanelDrawingContext &context, + const wxRect &rect, unsigned iPass ) override; + + std::vector DetailedHitTest( + const TrackPanelMouseState &state, + const AudacityProject *pProject, int currentTool, bool bMultiTool ) + override; + +protected: + void DoSetMinimized( bool minimized ) override; +}; + +#endif