11#ifndef __AUDACITY_WAVE_TRACK_VIEW__
12#define __AUDACITY_WAVE_TRACK_VIEW__
14#include "../../../ui/CommonTrackView.h"
57 std::vector<UIHandlePtr>
61 const std::shared_ptr<WaveTrack> &wt );
64 static void DrawBoldBoundaries(
68 std::weak_ptr<WaveTrackView> GetWaveTrackView()
const;
71 const wxRect &rect,
const wxPoint *pPosition,
AudacityProject *pProject )
122 void Reparent(
const std::shared_ptr<Track> &parent )
override;
126 std::vector<UIHandlePtr>
130 const std::shared_ptr<WaveTrack> &wt,
133 std::vector< WaveTrackSubView::Type > GetDisplays()
const;
134 void SetDisplay(
Display display,
bool exclusive =
true);
137 {
return DoGetPlacements(); }
139 { DoGetPlacements() = placements; }
143 bool ToggleSubView(
Display id );
147 std::vector< std::shared_ptr< WaveTrackSubView > > GetAllSubViews();
156 std::weak_ptr<WaveClip> GetSelectedClip();
165 Refinement
GetSubViews(
const wxRect* rect =
nullptr);
168 (wxKeyEvent& event,
ViewInfo& viewInfo, wxWindow* pParent,
171 unsigned KeyDown(wxKeyEvent& event,
ViewInfo& viewInfo, wxWindow* pParent,
175 (wxKeyEvent& event,
ViewInfo& viewInfo, wxWindow* pParent,
180 static bool ClipDetailsVisible(
const WaveClip& clip,
const ZoomInfo& zoomInfo,
const wxRect& viewRect);
181 static wxRect ClipHitTestArea(
const WaveClip& clip,
const ZoomInfo& zoomInfo,
const wxRect& viewRect);
195 void BuildSubViews()
const;
196 void DoSetDisplay(
Display display,
bool exclusive =
true);
202 const wxRect &rect,
unsigned iPass )
override;
210 Refinement
GetSubViews(
const wxRect& rect)
override;
222 mutable wxCoord mLastHeight{};
224 bool &DoGetMultiView();
225 bool DoGetMultiView()
const;
227 std::shared_ptr<CommonTrackCell> DoGetAffordance(
const std::shared_ptr<Track>& track);
246 const WaveClip *clip,
const wxRect &rect,
275 static wxRect GetClipRect(
const WaveClip& clip,
const ZoomInfo& zoomInfo,
const wxRect& viewRect,
bool* outShowSamples =
nullptr);
Utility ClientData::Site to register hooks into a host class that attach client data.
@ kChannelSeparatorThickness
std::vector< WaveTrackSubViewPlacement > WaveTrackSubViewPlacements
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Utility to register hooks into a host class that attach client data.
void Reparent(const std::shared_ptr< Track > &parent) override
Object may be shared among tracks but hold a special back-pointer to one of them; reassign it.
virtual std::vector< MenuItem > GetMenuItems(const wxRect &rect, const wxPoint *pPosition, AudacityProject *pProject)
Return a list of items for DoContextMenu() (empties for separators)
std::vector< UIHandlePtr > HitTest(const TrackPanelMouseState &, const AudacityProject *pProject) final override
virtual std::vector< UIHandlePtr > DetailedHitTest(const TrackPanelMouseState &, const AudacityProject *pProject, int currentTool, bool bMultiTool)=0
Defines a selected portion of a project.
Abstract base class for an object holding data associated with points on a time axis.
virtual unsigned KeyDown(wxKeyEvent &event, ViewInfo &viewInfo, wxWindow *pParent, AudacityProject *project)
virtual unsigned CaptureKey(wxKeyEvent &event, ViewInfo &viewInfo, wxWindow *pParent, AudacityProject *project)
virtual unsigned LoseFocus(AudacityProject *project)
virtual unsigned Char(wxKeyEvent &event, ViewInfo &viewInfo, wxWindow *pParent, AudacityProject *project)
virtual void Draw(TrackPanelDrawingContext &context, const wxRect &rect, unsigned iPass)
virtual void DoSetMinimized(bool isMinimized)
static TrackView * Find(Track *)
void CopyTo(Track &track) const override
Copy state, for undo/redo purposes.
virtual Refinement GetSubViews(const wxRect &rect)
virtual std::shared_ptr< TrackVRulerControls > DoGetVRulerControls()=0
static TrackView & Get(Track &)
virtual std::shared_ptr< CommonTrackCell > GetAffordanceControls()
Holds a msgid for the translation catalog; may also bind format arguments.
This allows multiple clips to be a part of one WaveTrack.
Implements some features which are specific to Wave Clips.
A Track that contains audio waveform data.
std::weak_ptr< TrackPanelResizeHandle > mResizeHandle
std::weak_ptr< SubViewAdjustHandle > mAdjustHandle
std::weak_ptr< SubViewRearrangeHandle > mRearrangeHandle
virtual const Type & SubViewType() const =0
std::weak_ptr< WaveTrackView > mwWaveTrackView
std::weak_ptr< WaveClipTrimHandle > mClipTrimHandle
std::weak_ptr< CutlineHandle > mCutlineHandle
std::weak_ptr< SubViewCloseHandle > mCloseHandle
void SetMultiView(bool value)
std::weak_ptr< TrackPanelCell > mKeyEventDelegate
WaveTrackView(const WaveTrackView &)=delete
wxCoord GetLastHeight() const
void RestorePlacements(const WaveTrackSubViewPlacements &placements)
bool GetMultiView() const
const WaveTrackSubViewPlacements & SavePlacements() const
WaveTrackView & operator=(const WaveTrackView &)=delete
std::weak_ptr< WaveTrackAffordanceHandle > mAffordanceHandle
std::shared_ptr< CommonTrackCell > mpAffordanceCellControl
Positions or offsets within audio files need a wide type.
@ SkipCopying
ignore the source and leave empty
double averagePixelsPerSample
bool showIndividualSamples