11#ifndef __AUDACITY_TRACK_PANEL__
12#define __AUDACITY_TRACK_PANEL__
75 const std::shared_ptr<TrackList> &tracks,
86 void OnPaint(wxPaintEvent & event);
91 void OnTrackListDeletion();
93 void UpdateViewIfNoTracks();
95 double GetMostRecentXPos();
97 void OnSize( wxSizeEvent & );
98 void OnIdle(wxIdleEvent & event);
99 void OnTimer(wxTimerEvent& event);
106 (
bool eraseBackground =
true,
const wxRect *rect = (
const wxRect *) NULL)
109 void RefreshTrack(
Track *trk,
bool refreshbacking =
true);
111 void HandlePageUpKey();
112 void HandlePageDownKey();
117 void VerticalScroll(
float fracPosition);
122 void UpdateVRulers();
124 void UpdateTrackVRuler(
Track *t);
125 void UpdateVRulerSize();
128 bool IsAudioActive();
131 size_t GetSelectedTrackCount()
const;
134 void UpdateSelectionDisplay();
137 void MakeParentRedrawScrollbars();
144 wxRect FindTrackRect(
const Track * target );
151 wxRect FindFocusedTrackRect(
const Track * target );
158 std::vector<wxRect> FindRulerRects(
const Track * target );
163 std::shared_ptr<TrackPanelNode>
Root()
override;
175 void DrawTracks(wxDC * dc);
180 void SetBackgroundCell
181 (
const std::shared_ptr< CommonTrackPanelCell > &pCell);
182 std::shared_ptr< CommonTrackPanelCell > GetBackgroundCell();
214 parent->GetEventHandler()->QueueEvent(
safenew wxTimerEvent(*
this));
232 DECLARE_EVENT_TABLE()
234 void ProcessUIHandleResult
236 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.
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...
AdornedRulerPanel * mRuler
AdornedRulerPanel * GetRuler()
TrackPanelListener * mListener
std::shared_ptr< TrackList > mTracks
Observer::Subscription mAudioIOSubscription
Observer::Subscription mTrackListSubscription
const TrackList * GetTracks() const
Observer::Subscription mRealtimeEffectManagerSubscription
std::shared_ptr< CommonTrackPanelCell > mpBackground
TrackPanelListener * GetListener()
Observer::Subscription mSyncLockSubscription
Observer::Subscription mUndoSubscription
Observer::Subscription mFocusChangeSubscription
std::unique_ptr< TrackArtist > mTrackArtist
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.
AUDACITY_DLL_API void UpdatePrefs(wxWindow *pParent)
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.