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);
100 void OnProjectSettingsChange(wxCommandEvent &event);
101 void OnTrackFocusChange( wxCommandEvent &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();
115 void OnTrackMenu(
Track *t = NULL);
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();
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.
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
std::shared_ptr< CommonTrackPanelCell > mpBackground
TrackPanelListener * GetListener()
Observer::Subscription mUndoSubscription
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)
Notification of changes in individual tracks of TrackList, or of TrackList's composition.
Type of message published by UndoManager.