11#ifndef __AUDACITY_TRACK_PANEL__
12#define __AUDACITY_TRACK_PANEL__
73 const std::shared_ptr<TrackList> &
tracks,
84 void OnPaint(wxPaintEvent & event);
89 void OnTrackListDeletion();
90 void UpdateViewIfNoTracks();
92 double GetMostRecentXPos();
94 void OnSize( wxSizeEvent & );
95 void OnIdle(wxIdleEvent & event);
96 void OnTimer(wxTimerEvent& event);
103 (
bool eraseBackground =
true,
const wxRect *rect = (
const wxRect *) NULL)
106 void RefreshTrack(
Track *trk,
bool refreshbacking =
true);
108 void HandlePageUpKey();
109 void HandlePageDownKey();
117 void UpdateVRulers();
119 void UpdateTrackVRuler(
Track &t);
120 void UpdateVRulerSize();
123 bool IsAudioActive();
126 size_t GetSelectedTrackCount()
const;
129 void UpdateSelectionDisplay();
132 void MakeParentRedrawScrollbars();
139 wxRect FindTrackRect(
const Track * target );
146 wxRect FindFocusedTrackRect(
const Track * target );
153 std::vector<wxRect> FindRulerRects(
const Channel &target);
158 std::shared_ptr<TrackPanelNode>
Root()
override;
169 void DrawTracks(wxDC * dc);
174 void SetBackgroundCell
175 (
const std::shared_ptr< CommonTrackPanelCell > &pCell);
176 std::shared_ptr< CommonTrackPanelCell > GetBackgroundCell();
208 parent->GetEventHandler()->QueueEvent(
safenew wxTimerEvent(*
this));
226 DECLARE_EVENT_TABLE()
228 void ProcessUIHandleResult
230 unsigned refreshResult) override;
static constexpr auto kTimerInterval
This is an Audacity Specific ruler panel which additionally has border, selection markers,...
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
void OnSize(wxSizeEvent &event)
Formerly part of TrackPanel, this abstract base class has no special knowledge of Track objects and i...
virtual std::shared_ptr< TrackPanelNode > Root()=0
virtual AudacityProject * GetProject() const =0
virtual std::shared_ptr< TrackPanelCell > GetFocusedCell()=0
void OnKeyDown(wxKeyEvent &event)
void OnMouseEvent(wxMouseEvent &event)
virtual void SetFocusedCell()=0
Lightweight version of ASlider. In other words it does not have a window permanently associated with ...
A move-only handle representing a connection to a Publisher.
A listener notified of changes in preferences.
virtual void UpdatePrefs()=0
Defines a selected portion of a project.
Used for finding the peaks, for snapping to peaks.
This class handles the actual rendering of WaveTracks (both waveforms and spectra),...
Abstract base class for an object holding data associated with points on a time axis.
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Timer class dedicated to informing the TrackPanel that it is time to refresh some aspect of the scree...
Helper to TrackPanel to give accessibility.
The TrackPanel class coordinates updates and operations on the main part of the screen which contains...
Observer::Subscription mProjectRulerInvalidatedSubscription
AdornedRulerPanel * mRuler
AdornedRulerPanel * GetRuler()
std::shared_ptr< TrackList > mTracks
Observer::Subscription mAudioIOSubscription
Observer::Subscription mTrackListSubscription
const TrackList * GetTracks() const
Observer::Subscription mRealtimeEffectManagerSubscription
std::shared_ptr< CommonTrackPanelCell > mpBackground
Observer::Subscription mSyncLockSubscription
Observer::Subscription mUndoSubscription
Observer::Subscription mFocusChangeSubscription
std::unique_ptr< TrackArtist > mTrackArtist
Observer::Subscription mSelectionSubscription
Holds a msgid for the translation catalog; may also bind format arguments.
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
Sent after sync lock setting changes, with its new state.
Notification of changes in individual tracks of TrackList, or of TrackList's composition.
Type of message published by UndoManager.