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();
122 void UpdateTrackVRuler(
Track &t);
123 void UpdateVRulerSize();
126 bool IsAudioActive();
129 size_t GetSelectedTrackCount()
const;
132 void UpdateSelectionDisplay();
135 void MakeParentRedrawScrollbars();
142 wxRect FindTrackRect(
const Track * target );
149 wxRect FindFocusedTrackRect(
const Track * target );
156 std::vector<wxRect> FindRulerRects(
const Channel &target);
161 std::shared_ptr<TrackPanelNode>
Root()
override;
172 void DrawTracks(wxDC * dc);
177 void SetBackgroundCell
178 (
const std::shared_ptr< CommonTrackPanelCell > &pCell);
179 std::shared_ptr< CommonTrackPanelCell > GetBackgroundCell();
211 parent->GetEventHandler()->QueueEvent(
safenew wxTimerEvent(*
this));
229 DECLARE_EVENT_TABLE()
231 void ProcessUIHandleResult
233 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
void OnKeyDown(wxKeyEvent &event)
void OnMouseEvent(wxMouseEvent &event)
virtual void SetFocusedCell()=0
virtual TrackPanelCell * GetFocusedCell()=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.