11#ifndef __AUDACITY_WAVE_TRACK_VIEW__
12#define __AUDACITY_WAVE_TRACK_VIEW__
14#include "../../../ui/CommonChannelView.h"
49 std::shared_ptr<WaveChannel> FindWaveChannel();
59 std::vector<UIHandlePtr>
63 const std::shared_ptr<WaveChannel> &wt);
66 static void DrawBoldBoundaries(
70 std::weak_ptr<WaveChannelView> GetWaveChannelView()
const;
73 const wxRect &rect,
const wxPoint *pPosition,
AudacityProject *pProject )
126 using CommonChannelView::CommonChannelView;
129 std::shared_ptr<WaveChannel> FindWaveChannel();
142 std::vector<UIHandlePtr>
146 const std::shared_ptr<WaveChannel> &wt,
149 std::vector<WaveChannelSubView::Type> GetDisplays()
const;
150 void SetDisplay(
Display display,
bool exclusive =
true);
153 {
return DoGetPlacements(); }
155 { DoGetPlacements() = placements; }
159 bool ToggleSubView(
Display id );
163 std::vector<std::shared_ptr<WaveChannelSubView>> GetAllSubViews();
180 Refinement
GetSubViews(
const wxRect* rect =
nullptr);
183 (wxKeyEvent& event,
ViewInfo& viewInfo, wxWindow* pParent,
186 unsigned KeyDown(wxKeyEvent& event,
ViewInfo& viewInfo, wxWindow* pParent,
190 (wxKeyEvent& event,
ViewInfo& viewInfo, wxWindow* pParent,
195 static bool ClipDetailsVisible(
197 static wxRect ClipHitTestArea(
const ClipTimes& clip,
198 const ZoomInfo& zoomInfo,
const wxRect& viewRect);
214 void BuildSubViews()
const;
215 void DoSetDisplay(
Display display,
bool exclusive =
true);
221 const wxRect &rect,
unsigned iPass )
override;
229 Refinement
GetSubViews(
const wxRect& rect)
override;
240 mutable wxCoord mLastHeight{};
242 bool &DoGetMultiView();
243 bool DoGetMultiView()
const;
245 std::shared_ptr<CommonTrackCell> DoGetAffordance(
Track& track);
Utility ClientData::Site to register hooks into a host class that attach client data.
@ kChannelSeparatorThickness
std::vector< WaveChannelSubViewPlacement > WaveChannelSubViewPlacements
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
virtual std::shared_ptr< ChannelVRulerControls > DoGetVRulerControls()=0
static ChannelView * Find(Channel *pChannel)
void Reparent(const std::shared_ptr< Track > &parent, size_t iChannel) override
Object may be shared among tracks but hold a special back-pointer to one of them; reassign it.
static ChannelView & Get(Channel &channel)
virtual std::shared_ptr< CommonTrackCell > GetAffordanceControls()
virtual void DoSetMinimized(bool isMinimized)
void CopyTo(Track &track, size_t iChannel) const override
Copy state, for undo/redo purposes.
virtual Refinement GetSubViews(const wxRect &rect)
Utility to register hooks into a host class that attach client data.
Implements some hit-testing shared by many ChannelView subtypes.
std::vector< UIHandlePtr > HitTest(const TrackPanelMouseState &, const AudacityProject *pProject) final
virtual std::vector< UIHandlePtr > DetailedHitTest(const TrackPanelMouseState &, const AudacityProject *pProject, int currentTool, bool bMultiTool)=0
virtual std::vector< MenuItem > GetMenuItems(const wxRect &rect, const wxPoint *pPosition, AudacityProject *pProject)
Return a list of items for DoContextMenu() (empties for separators)
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)
Constructed from one channel, but changes height of all channels in a track.
Holds a msgid for the translation catalog; may also bind format arguments.
std::weak_ptr< SubViewAdjustHandle > mAdjustHandle
virtual const Type & SubViewType() const =0
std::weak_ptr< CutlineHandle > mCutlineHandle
std::weak_ptr< TrackPanelResizeHandle > mResizeHandle
std::weak_ptr< WaveChannelView > mwWaveChannelView
std::weak_ptr< WaveClipAdjustBorderHandle > mClipBorderAdjustHandle
std::weak_ptr< SubViewCloseHandle > mCloseHandle
std::weak_ptr< SubViewRearrangeHandle > mRearrangeHandle
void SetMultiView(bool value)
const WaveChannelSubViewPlacements & SavePlacements() const
bool GetMultiView() const
std::weak_ptr< WaveTrackAffordanceHandle > mAffordanceHandle
WaveChannelView & operator=(const WaveChannelView &)=delete
std::shared_ptr< CommonTrackCell > mpAffordanceCellControl
WaveChannelView(const WaveChannelView &)=delete
std::weak_ptr< TrackPanelCell > mKeyEventDelegate
wxCoord GetLastHeight() const
void RestorePlacements(const WaveChannelSubViewPlacements &placements)
Implements some features which are specific to Wave Clips.
A Track that contains audio waveform data.
std::shared_ptr< Interval > IntervalHolder
@ SkipCopying
ignore the source and leave empty