Audacity 3.2.0
TrackControls.h
Go to the documentation of this file.
1/**********************************************************************
2
3Audacity: A Digital Audio Editor
4
5TrackControls.h
6
7Paul Licameli split from TrackPanel.cpp
8
9**********************************************************************/
10
11#ifndef __AUDACITY_TRACK_CONTROLS__
12#define __AUDACITY_TRACK_CONTROLS__
13
15#include "TrackInfo.h"
16
17class Track;
18
19class AUDACITY_DLL_API TrackControls /* not final */ : public CommonTrackCell
20 , public std::enable_shared_from_this< TrackControls >
21{
22public:
23 static TrackControls &Get( Track &track );
24 static const TrackControls &Get( const Track &track );
25
26 explicit
27 TrackControls( std::shared_ptr<Track> pTrack );
28
29 virtual ~TrackControls() = 0;
30
31 // This decides what details to draw in the track control panel, besides
32 // those at the bottom
33 virtual const TrackInfo::TCPLines& GetTCPLines() const = 0;
34};
35
37
38struct DoGetControlsTag;
39
42 DoGetControlsTag,
43 std::shared_ptr< TrackControls >,
44 Track
45>;
47
48#endif
Utility for non-intrusive definition of a new method on a base class.
DECLARE_EXPORTED_ATTACHED_VIRTUAL(AUDACITY_DLL_API, DoGetControls)
Class template generates single-dispatch, open method registry tables.
virtual const TrackInfo::TCPLines & GetTCPLines() const =0
Abstract base class for an object holding data associated with points on a time axis.
Definition: Track.h:122
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
Definition: BasicUI.cpp:196
std::vector< TCPLine > TCPLines
Definition: TrackInfo.h:59