Audacity 3.2.0
TrackInfo.h
Go to the documentation of this file.
1/**********************************************************************
2
3Audacity: A Digital Audio Editor
4
5TrackInfo.h
6
7Paul Licameli split from TrackPanel.cpp
8
9**********************************************************************/
10
11#ifndef __AUDACITY_TRACK_INFO__
12#define __AUDACITY_TRACK_INFO__
13
14
15
16
17#include <vector>
18
19class wxDC;
20class wxPoint;
21class wxRect;
22class wxWindow;
23
24class ButtonHandle;
25class LWSlider;
26class Track;
28
29static const int TitleSoloBorderOverlap = 1;
30
31namespace TrackInfo
32{
33 AUDACITY_DLL_API
34 unsigned MinimumTrackHeight();
35
36 struct TCPLine {
37 enum : unsigned {
38 // The sequence is not significant, just keep bits distinct
41 kItemMute = 1 << 2,
42 kItemSolo = 1 << 3,
43 kItemGain = 1 << 4,
44 kItemPan = 1 << 5,
45 kItemVelocity = 1 << 6,
47 kItemMinimize = 1 << 8,
48 kItemSyncLock = 1 << 9,
50 kItemEffects = 1 << 11,
51
53 };
54
55 using DrawFunction = void (*)(
57 const wxRect &rect,
58 const Track *maybeNULL
59 );
60
61 unsigned items; // a bitwise OR of values of the enum above
62 int height;
65 };
66
67 using TCPLines = std::vector< TCPLine >;
68
69 // return y value and height
70 AUDACITY_DLL_API
71 std::pair< int, int > CalcItemY( const TCPLines &lines, unsigned iItem );
72
73 AUDACITY_DLL_API
74 unsigned DefaultTrackHeight( const TCPLines &topLines );
75
76 AUDACITY_DLL_API
77 void DrawItems
78 ( TrackPanelDrawingContext &context,
79 const wxRect &rect, const Track &track );
80
81 AUDACITY_DLL_API
82 void DrawItems
83 ( TrackPanelDrawingContext &context,
84 const wxRect &rect, const Track *pTrack,
85 const std::vector<TCPLine> &topLines,
86 const std::vector<TCPLine> &bottomLines );
87
88 AUDACITY_DLL_API
89 void DrawCloseButton(
90 TrackPanelDrawingContext &context, const wxRect &bev,
91 const Track *pTrack, ButtonHandle *target );
92
93 AUDACITY_DLL_API
95 ( TrackPanelDrawingContext &context,
96 const wxRect &rect, const Track *pTrack );
97
98 AUDACITY_DLL_API
100 ( TrackPanelDrawingContext &context,
101 const wxRect &rect, const Track *pTrack );
102
103 AUDACITY_DLL_API
104 void SetTrackInfoFont(wxDC *dc);
105
106
107 AUDACITY_DLL_API
108 void GetCloseBoxHorizontalBounds( const wxRect & rect, wxRect &dest );
109 AUDACITY_DLL_API
110 void GetCloseBoxRect(const wxRect & rect, wxRect &dest);
111
112 AUDACITY_DLL_API
113 void GetTitleBarHorizontalBounds( const wxRect & rect, wxRect &dest );
114 AUDACITY_DLL_API
115 void GetTitleBarRect(const wxRect & rect, wxRect &dest);
116
117 AUDACITY_DLL_API
118 void GetSliderHorizontalBounds( const wxPoint &topleft, wxRect &dest );
119
120 AUDACITY_DLL_API
121 void GetMinimizeHorizontalBounds( const wxRect &rect, wxRect &dest );
122 AUDACITY_DLL_API
123 void GetMinimizeRect(const wxRect & rect, wxRect &dest);
124
125 AUDACITY_DLL_API
126 void GetSelectButtonHorizontalBounds( const wxRect &rect, wxRect &dest );
127 AUDACITY_DLL_API
128 void GetSelectButtonRect(const wxRect & rect, wxRect &dest);
129
130 AUDACITY_DLL_API
131 void GetSyncLockHorizontalBounds( const wxRect &rect, wxRect &dest );
132 AUDACITY_DLL_API
133 void GetSyncLockIconRect(const wxRect & rect, wxRect &dest);
134
135 AUDACITY_DLL_API
136 bool HideTopItem( const wxRect &rect, const wxRect &subRect,
137 int allowance = 0 );
138
139 // Non-member, namespace function relying on TrackPanel to invoke it
140 // when it handles preference update events
141 AUDACITY_DLL_API
142 void UpdatePrefs( wxWindow *pParent );
143
144 AUDACITY_DLL_API
145 bool HasSoloButton();
146};
147
148#endif
static const int TitleSoloBorderOverlap
Definition: TrackInfo.h:29
A UIHandle for a TrackPanel button, such as the Mute and Solo buttons.
Definition: ButtonHandle.h:26
Lightweight version of ASlider. In other words it does not have a window permanently associated with ...
Definition: ASlider.h:64
Abstract base class for an object holding data associated with points on a time axis.
Definition: Track.h:226
Functions for drawing the track control panel, which is shown to the side of a track It has the menus...
AUDACITY_DLL_API void GetSliderHorizontalBounds(const wxPoint &topleft, wxRect &dest)
Definition: TrackInfo.cpp:488
AUDACITY_DLL_API bool HideTopItem(const wxRect &rect, const wxRect &subRect, int allowance=0)
Definition: TrackInfo.cpp:208
AUDACITY_DLL_API void GetCloseBoxRect(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:463
AUDACITY_DLL_API void GetTitleBarRect(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:480
AUDACITY_DLL_API void GetSyncLockHorizontalBounds(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:543
AUDACITY_DLL_API void SetTrackInfoFont(wxDC *dc)
Definition: TrackInfo.cpp:559
AUDACITY_DLL_API void GetCloseBoxHorizontalBounds(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:457
std::vector< TCPLine > TCPLines
Definition: TrackInfo.h:67
AUDACITY_DLL_API void GetMinimizeHorizontalBounds(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:494
AUDACITY_DLL_API void GetMinimizeRect(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:508
AUDACITY_DLL_API void GetSelectButtonRect(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:534
AUDACITY_DLL_API bool HasSoloButton()
Definition: TrackInfo.cpp:95
AUDACITY_DLL_API void GetTitleBarHorizontalBounds(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:471
AUDACITY_DLL_API void GetSyncLockIconRect(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:549
AUDACITY_DLL_API unsigned DefaultTrackHeight(const TCPLines &topLines)
Definition: TrackInfo.cpp:566
AUDACITY_DLL_API void DrawCloseButton(TrackPanelDrawingContext &context, const wxRect &bev, const Track *pTrack, ButtonHandle *target)
Definition: TrackInfo.cpp:267
AUDACITY_DLL_API void MinimizeSyncLockDrawFunction(TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
Definition: TrackInfo.cpp:375
AUDACITY_DLL_API void DrawItems(TrackPanelDrawingContext &context, const wxRect &rect, const Track &track)
Definition: TrackInfo.cpp:218
AUDACITY_DLL_API std::pair< int, int > CalcItemY(const TCPLines &lines, unsigned iItem)
Definition: TrackInfo.cpp:146
AUDACITY_DLL_API void GetSelectButtonHorizontalBounds(const wxRect &rect, wxRect &dest)
Definition: TrackInfo.cpp:517
AUDACITY_DLL_API void UpdatePrefs(wxWindow *pParent)
AUDACITY_DLL_API void CloseTitleDrawFunction(TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
Definition: TrackInfo.cpp:301
AUDACITY_DLL_API unsigned MinimumTrackHeight()
Definition: TrackInfo.cpp:196
void(*)(TrackPanelDrawingContext &context, const wxRect &rect, const Track *maybeNULL) DrawFunction
Definition: TrackInfo.h:59
DrawFunction drawFunction
Definition: TrackInfo.h:64
unsigned items
Definition: TrackInfo.h:61