Audacity 3.2.0
Typedefs | Functions | Variables
CommonTrackInfo Namespace Reference

Functions for drawing the track control panel, which is shown to the side of a track It has the menus, pan and gain controls displayed in it. So "Info" is somewhat a misnomer. Should possibly be "TrackControls". More...

Typedefs

using TCPLine = TrackInfo::TCPLine
 
using TCPLines = TrackInfo::TCPLines
 

Functions

AUDACITY_DLL_API unsigned MinimumTrackHeight ()
 
AUDACITY_DLL_API unsigned DefaultTrackHeight (const TCPLines &topLines)
 
AUDACITY_DLL_API void DrawItems (TrackPanelDrawingContext &context, const wxRect &rect, const Track &track)
 
AUDACITY_DLL_API void DrawItems (TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack, const std::vector< TCPLine > &topLines, const std::vector< TCPLine > &bottomLines)
 
AUDACITY_DLL_API void DrawCloseButton (TrackPanelDrawingContext &context, const wxRect &bev, const Channel *pChannel, UIHandle *target)
 
AUDACITY_DLL_API void CloseTitleDrawFunction (TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
 
AUDACITY_DLL_API void SyncLockDrawFunction (TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
 
AUDACITY_DLL_API void GetCloseBoxHorizontalBounds (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetCloseBoxRect (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetTrackTitleHorizontalBounds (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetTrackTitleRect (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetSliderHorizontalBounds (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetTrackMenuButtonBounds (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetTrackMenuButtonRect (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetMinimizeHorizontalBounds (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetMinimizeRect (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetSyncLockHorizontalBounds (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API void GetSyncLockIconRect (const wxRect &rect, wxRect &dest)
 
AUDACITY_DLL_API bool HideTopItem (const wxRect &rect, const wxRect &subRect, int allowance=0)
 
AUDACITY_DLL_API const TCPLinesStaticTCPLines ()
 

Variables

static constexpr auto Margin = 4
 
static constexpr auto ToolButtonSize = 16
 

Detailed Description

Functions for drawing the track control panel, which is shown to the side of a track It has the menus, pan and gain controls displayed in it. So "Info" is somewhat a misnomer. Should possibly be "TrackControls".

It maintains global slider widget instances that are reparented and repositioned as needed for drawing and interaction with the user, interoperating with the custom panel subdivision implemented in CellularPanel and avoiding wxWidgets sizers

If we'd instead coded it as a wxWindow, we would have an instance of this class for each track displayed.

Typedef Documentation

◆ TCPLine

Definition at line 20 of file CommonTrackInfo.h.

◆ TCPLines

Definition at line 21 of file CommonTrackInfo.h.

Function Documentation

◆ CloseTitleDrawFunction()

void CommonTrackInfo::CloseTitleDrawFunction ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track pTrack 
)

Definition at line 219 of file CommonTrackInfo.cpp.

222{
223 const auto dc = &context.dc;
224
225 const auto target = context.target.get();
226 const auto hit = target && target->FindTrack().get() == pTrack;
227 const auto captured = hit && target->IsDragging();
228
229 { //close button
230 wxRect bev = rect;
231 GetCloseBoxHorizontalBounds( rect, bev );
232
233 DrawToolButtonBackground(context, bev, captured);
234
235 dc->DrawBitmap(theTheme.Bitmap(tcpClose), bev.GetLeftTop());
236 }
237
238 { //track title
239 wxRect bev = rect;
241 const auto titleStr = TrackArt::TruncateText(*dc,
242 pTrack ? pTrack->GetName() : _("Name"), bev.width);
243
245 const auto metrics = dc->GetFontMetrics();
246
247 dc->SetTextForeground( theTheme.Colour( clrTrackPanelText ) );
248 dc->SetTextBackground( wxTRANSPARENT );
249 dc->DrawText(titleStr, bev.x + 2, bev.y + (bev.height - (metrics.ascent + metrics.descent)) / 2);
250
251 }
252
253 { //minimize button
254 const auto minimized =
255 pTrack ? ChannelView::Get(*pTrack->GetChannel(0)).GetMinimized() : false;
256
257 wxRect bev = rect;
259
260 DrawToolButtonBackground(context, bev, captured);
261
262 dc->DrawBitmap(
263 minimized
264 ? theTheme.Bitmap(tcpChevronDown)
265 : theTheme.Bitmap(tcpChevron),
266 bev.GetLeftTop());
267
268 }
269
270 { //track menu button
271 wxRect bev = rect;
272 GetTrackMenuButtonBounds(rect, bev);
273
274 DrawToolButtonBackground(context, bev, captured);
275
276 dc->DrawBitmap(theTheme.Bitmap(tcpEllipses), bev.GetLeftTop());
277 }
278
279}
#define _(s)
Definition: Internat.h:73
THEME_API Theme theTheme
Definition: Theme.cpp:82
std::shared_ptr< ChannelType > GetChannel(size_t iChannel)
Retrieve a channel, cast to the given type.
Definition: Channel.h:320
static ChannelView & Get(Channel &channel)
bool GetMinimized() const
Definition: ChannelView.h:69
wxColour & Colour(int iIndex)
wxBitmap & Bitmap(int iIndex)
const wxString & GetName() const
Name is always the same for all channels of a group.
Definition: Track.cpp:64
AUDACITY_DLL_API void GetCloseBoxHorizontalBounds(const wxRect &rect, wxRect &dest)
AUDACITY_DLL_API void GetTrackMenuButtonBounds(const wxRect &rect, wxRect &dest)
AUDACITY_DLL_API void GetTrackTitleHorizontalBounds(const wxRect &rect, wxRect &dest)
AUDACITY_DLL_API void GetMinimizeHorizontalBounds(const wxRect &rect, wxRect &dest)
AUDACITY_DLL_API wxString TruncateText(wxDC &dc, const wxString &text, const int maxWidth)
Definition: TrackArt.cpp:173
AUDACITY_DLL_API void SetTrackInfoFont(wxDC *dc)
Definition: TrackInfo.cpp:77
void DrawToolButtonBackground(TrackPanelDrawingContext &context, const wxRect &rect, bool captured)

References _, ThemeBase::Bitmap(), ThemeBase::Colour(), TrackPanelDrawingContext::dc, anonymous_namespace{CommonTrackInfo.cpp}::DrawToolButtonBackground(), ChannelView::Get(), ChannelGroup::GetChannel(), GetCloseBoxHorizontalBounds(), ChannelView::GetMinimized(), GetMinimizeHorizontalBounds(), Track::GetName(), GetTrackMenuButtonBounds(), GetTrackTitleHorizontalBounds(), TrackInfo::SetTrackInfoFont(), TrackPanelDrawingContext::target, theTheme, and TrackArt::TruncateText().

Referenced by commonTrackTCPLines().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DefaultTrackHeight()

unsigned CommonTrackInfo::DefaultTrackHeight ( const TCPLines topLines)

Definition at line 393 of file CommonTrackInfo.cpp.

394{
395 int needed =
397 totalTCPLines( topLines, true ) +
399 return (unsigned) std::max(needed, (int) ChannelView::DefaultHeight);
400}
@ kVerticalPadding
Definition: ViewInfo.h:92
static constexpr auto Margin
int totalTCPLines(const TCPLines &lines, bool omitLastExtra)

References anonymous_namespace{CommonTrackInfo.cpp}::commonTrackTCPBottomLines, ChannelView::DefaultHeight, kVerticalPadding, Margin, and anonymous_namespace{CommonTrackInfo.cpp}::totalTCPLines().

Referenced by NoteTrackControls::DefaultNoteTrackHeight(), and WaveTrackControls::DefaultWaveTrackHeight().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DrawCloseButton()

void CommonTrackInfo::DrawCloseButton ( TrackPanelDrawingContext context,
const wxRect &  bev,
const Channel pChannel,
UIHandle target 
)

Definition at line 180 of file CommonTrackInfo.cpp.

183{
184 auto dc = &context.dc;
185 auto pTrack = pChannel
186 ? dynamic_cast<const Track*>(&pChannel->GetChannelGroup())
187 : nullptr;
188 bool selected = pTrack ? pTrack->GetSelected() : true;
189 bool hit = target && target->FindTrack().get() == pTrack;
190 bool captured = hit && target->IsDragging();
191 bool down = captured && bev.Contains( context.lastState.GetPosition());
192
193 wxMemoryDC memDC;
194
195 if(selected)
196 memDC.SelectObject(theTheme.Bitmap(bmpCloseHover));
197 else if(down)
198 memDC.SelectObject(theTheme.Bitmap(bmpCloseDown));
199 else
200 memDC.SelectObject(theTheme.Bitmap(bmpCloseNormal));
201
202 dc->Blit(bev.GetLeft(), bev.GetRight(), bev.width, bev.height, &memDC, 0, 0);
203
204 AColor::Bevel2(*dc, !down, bev, selected, hit );
205}
static void Bevel2(wxDC &dc, bool up, const wxRect &r, bool bSel=false, bool bHighlight=false)
Definition: AColor.cpp:298
ChannelGroup & GetChannelGroup()
Channel object's lifetime is assumed to be nested in its Track's.
Definition: Channel.cpp:43
Abstract base class for an object holding data associated with points on a time axis.
Definition: Track.h:110
bool GetSelected() const
Selectedness is always the same for all channels of a group.
Definition: Track.cpp:78
virtual std::shared_ptr< const Track > FindTrack() const =0
virtual bool IsDragging() const
Definition: UIHandle.cpp:57

References AColor::Bevel2(), ThemeBase::Bitmap(), TrackPanelDrawingContext::dc, UIHandle::FindTrack(), Channel::GetChannelGroup(), Track::GetSelected(), UIHandle::IsDragging(), TrackPanelDrawingContext::lastState, and theTheme.

Referenced by SubViewCloseHandle::Draw().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DrawItems() [1/2]

void CommonTrackInfo::DrawItems ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track track 
)

Definition at line 131 of file CommonTrackInfo.cpp.

134{
135 auto &trackControl = TrackControls::Get(track);
136 const auto &topLines = trackControl.GetTCPLines();
137 const auto &bottomLines = commonTrackTCPBottomLines;
139 ( context, rect, &track, topLines, bottomLines );
140}
static TrackControls & Get(Track &track)
AUDACITY_DLL_API void DrawItems(TrackPanelDrawingContext &context, const wxRect &rect, const Track &track)

References anonymous_namespace{CommonTrackInfo.cpp}::commonTrackTCPBottomLines, DrawItems(), and TrackControls::Get().

Referenced by CommonTrackControls::Draw(), and DrawItems().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DrawItems() [2/2]

void CommonTrackInfo::DrawItems ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track pTrack,
const std::vector< TCPLine > &  topLines,
const std::vector< TCPLine > &  bottomLines 
)

Definition at line 142 of file CommonTrackInfo.cpp.

146{
147 const auto rect = wxRect(rect_).Deflate(Margin);
148 auto dc = &context.dc;
150 dc->SetTextForeground(theTheme.Colour(clrTrackPanelText));
151
152 {
153 int yy = 0;
154 for ( const auto &line : topLines ) {
155 wxRect itemRect{
156 rect.x, rect.y + yy,
157 rect.width, line.height
158 };
159 if ( !CommonTrackInfo::HideTopItem( rect, itemRect ) &&
160 line.drawFunction )
161 line.drawFunction( context, itemRect, pTrack );
162 yy += line.height + line.extraSpace;
163 }
164 }
165 {
166 int yy = rect.height;
167 for ( const auto &line : bottomLines ) {
168 yy -= line.height + line.extraSpace;
169 if ( line.drawFunction ) {
170 wxRect itemRect{
171 rect.x, rect.y + yy,
172 rect.width, line.height
173 };
174 line.drawFunction( context, itemRect, pTrack );
175 }
176 }
177 }
178}
AUDACITY_DLL_API bool HideTopItem(const wxRect &rect, const wxRect &subRect, int allowance=0)

References ThemeBase::Colour(), TrackPanelDrawingContext::dc, HideTopItem(), Margin, TrackInfo::SetTrackInfoFont(), and theTheme.

Here is the call graph for this function:

◆ GetCloseBoxHorizontalBounds()

void CommonTrackInfo::GetCloseBoxHorizontalBounds ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 304 of file CommonTrackInfo.cpp.

305{
306 dest.x = rect.x;
307 dest.width = ToolButtonSize;
308}
static constexpr auto ToolButtonSize

References ToolButtonSize.

Referenced by CloseTitleDrawFunction(), GetCloseBoxRect(), and GetTrackTitleHorizontalBounds().

Here is the caller graph for this function:

◆ GetCloseBoxRect()

void CommonTrackInfo::GetCloseBoxRect ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 310 of file CommonTrackInfo.cpp.

311{
312 const auto rect = wxRect(rect_).Deflate(Margin);
313 GetCloseBoxHorizontalBounds( rect, dest );
315 dest.y = rect.y + results.first;
316 dest.height = results.second;
317}
static const TCPLines & commonTrackTCPLines()
AUDACITY_DLL_API std::pair< int, int > CalcItemY(const TCPLines &lines, unsigned iItem)
Definition: TrackInfo.cpp:61

References TrackInfo::CalcItemY(), commonTrackTCPLines(), GetCloseBoxHorizontalBounds(), TrackInfo::TCPLine::kItemBarButtons, and Margin.

Referenced by CloseButtonHandle::HitTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMinimizeHorizontalBounds()

void CommonTrackInfo::GetMinimizeHorizontalBounds ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 360 of file CommonTrackInfo.cpp.

361{
362 GetTrackMenuButtonBounds(rect, dest);
363 dest.x -= ToolButtonSize + Padding;
364}

References GetTrackMenuButtonBounds(), anonymous_namespace{CommonTrackInfo.cpp}::Padding, and ToolButtonSize.

Referenced by CloseTitleDrawFunction(), GetMinimizeRect(), and GetTrackTitleHorizontalBounds().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMinimizeRect()

void CommonTrackInfo::GetMinimizeRect ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 366 of file CommonTrackInfo.cpp.

367{
368 const auto rect = wxRect(rect_).Deflate(Margin);
369
370 GetMinimizeHorizontalBounds( rect, dest );
371 const auto results = CalcItemY
373 dest.y = rect.y + results.first;
374 dest.height = results.second;
375}

References TrackInfo::CalcItemY(), commonTrackTCPLines(), GetMinimizeHorizontalBounds(), TrackInfo::TCPLine::kItemBarButtons, and Margin.

Referenced by MinimizeButtonHandle::HitTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetSliderHorizontalBounds()

void CommonTrackInfo::GetSliderHorizontalBounds ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 339 of file CommonTrackInfo.cpp.

340{
341 dest.x = rect.x + (rect.width - kTrackInfoSliderWidth) / 2;
342 dest.width = kTrackInfoSliderWidth;
343}
@ kTrackInfoSliderWidth
Definition: ViewInfo.h:100

References kTrackInfoSliderWidth.

Referenced by WaveTrackControls::GetGainRect(), WaveTrackControls::GetPanRect(), NoteTrackControls::GetVelocityRect(), anonymous_namespace{NoteTrackControls.cpp}::SliderDrawFunction(), and anonymous_namespace{WaveTrackControls.cpp}::SliderDrawFunction().

Here is the caller graph for this function:

◆ GetSyncLockHorizontalBounds()

void CommonTrackInfo::GetSyncLockHorizontalBounds ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 377 of file CommonTrackInfo.cpp.

378{
379 dest.width = kTrackInfoBtnSize;
380 dest.x = rect.x + rect.width - dest.width;
381}
@ kTrackInfoBtnSize
Definition: ViewInfo.h:98

References kTrackInfoBtnSize.

Referenced by GetSyncLockIconRect(), and SyncLockDrawFunction().

Here is the caller graph for this function:

◆ GetSyncLockIconRect()

void CommonTrackInfo::GetSyncLockIconRect ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 383 of file CommonTrackInfo.cpp.

384{
385 const auto rect = wxRect(rect_).Deflate(Margin);
386 GetSyncLockHorizontalBounds( rect, dest );
387 auto results = CalcBottomItemY
389 dest.y = rect.y + results.first;
390 dest.height = results.second;
391}
AUDACITY_DLL_API void GetSyncLockHorizontalBounds(const wxRect &rect, wxRect &dest)
std::pair< int, int > CalcBottomItemY(const TCPLines &lines, unsigned iItem, int height)

References anonymous_namespace{CommonTrackInfo.cpp}::CalcBottomItemY(), anonymous_namespace{CommonTrackInfo.cpp}::commonTrackTCPBottomLines, GetSyncLockHorizontalBounds(), TrackInfo::TCPLine::kItemSyncLock, and Margin.

Here is the call graph for this function:

◆ GetTrackMenuButtonBounds()

void CommonTrackInfo::GetTrackMenuButtonBounds ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 345 of file CommonTrackInfo.cpp.

346{
347 dest.x = rect.x + rect.width - ToolButtonSize;
348 dest.width = ToolButtonSize;
349}

References ToolButtonSize.

Referenced by CloseTitleDrawFunction(), GetMinimizeHorizontalBounds(), and GetTrackMenuButtonRect().

Here is the caller graph for this function:

◆ GetTrackMenuButtonRect()

void CommonTrackInfo::GetTrackMenuButtonRect ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 351 of file CommonTrackInfo.cpp.

352{
353 const auto rect = wxRect(rect_).Deflate(Margin);
354 GetTrackMenuButtonBounds(rect, dest);
356 dest.y = rect.y + results.first;
357 dest.height = ToolButtonSize;
358}

References TrackInfo::CalcItemY(), commonTrackTCPLines(), GetTrackMenuButtonBounds(), TrackInfo::TCPLine::kItemBarButtons, Margin, and ToolButtonSize.

Referenced by CommonTrackControls::DoContextMenu(), and MenuButtonHandle::HitTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTrackTitleHorizontalBounds()

void CommonTrackInfo::GetTrackTitleHorizontalBounds ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 319 of file CommonTrackInfo.cpp.

320{
321 // to right of CloseBoxRect, plus a little more
322 wxRect closeRect;
323 wxRect minRect;
324 GetCloseBoxHorizontalBounds( rect, closeRect );
325 GetMinimizeHorizontalBounds( rect, minRect );
326 dest.x = rect.x + closeRect.width + Padding;
327 dest.width = minRect.x - closeRect.width - closeRect.x;
328}

References GetCloseBoxHorizontalBounds(), GetMinimizeHorizontalBounds(), and anonymous_namespace{CommonTrackInfo.cpp}::Padding.

Referenced by CloseTitleDrawFunction(), and GetTrackTitleRect().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTrackTitleRect()

void CommonTrackInfo::GetTrackTitleRect ( const wxRect &  rect,
wxRect &  dest 
)

Definition at line 330 of file CommonTrackInfo.cpp.

331{
332 const auto rect = wxRect(rect_).Deflate(Margin);
333 GetTrackTitleHorizontalBounds( rect, dest );
335 dest.y = rect.y + results.first;
336 dest.height = results.second;
337}

References TrackInfo::CalcItemY(), commonTrackTCPLines(), GetTrackTitleHorizontalBounds(), TrackInfo::TCPLine::kItemBarButtons, and Margin.

Here is the call graph for this function:

◆ HideTopItem()

bool CommonTrackInfo::HideTopItem ( const wxRect &  rect,
const wxRect &  subRect,
int  allowance = 0 
)

Definition at line 122 of file CommonTrackInfo.cpp.

123 {
124 auto limit = CalcBottomItemY
126 // Return true if the rectangle is even touching the limit
127 // without an overlap. That was the behavior as of 2.1.3.
128 return subRect.y + subRect.height - allowance >= rect.y + limit;
129}

References anonymous_namespace{CommonTrackInfo.cpp}::CalcBottomItemY(), anonymous_namespace{CommonTrackInfo.cpp}::commonTrackTCPBottomLines, and TrackInfo::TCPLine::kHighestBottomItem.

Referenced by DrawItems(), EffectsButtonHandle::HitTest(), GainSliderHandle::HitTest(), MuteButtonHandle::HitTest(), NoteTrackButtonHandle::HitTest(), PanSliderHandle::HitTest(), SoloButtonHandle::HitTest(), and VelocitySliderHandle::HitTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MinimumTrackHeight()

unsigned CommonTrackInfo::MinimumTrackHeight ( )

Definition at line 110 of file CommonTrackInfo.cpp.

111{
112 unsigned height = Margin * 2;
113 if (!commonTrackTCPLines().empty())
114 height += commonTrackTCPLines().front().height;
115 if (!commonTrackTCPBottomLines.empty())
116 height += commonTrackTCPBottomLines.front().height;
117 // + 1 prevents the top item from disappearing for want of enough space,
118 // according to the rules in HideTopItem.
119 return height + kVerticalPadding + 1;
120}

References anonymous_namespace{CommonTrackInfo.cpp}::commonTrackTCPBottomLines, commonTrackTCPLines(), kVerticalPadding, and Margin.

Referenced by CommonChannelView::GetMinimizedHeight(), and ProjectWindow::MinimumTrackHeight().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StaticTCPLines()

const TCPLines & CommonTrackInfo::StaticTCPLines ( )

Definition at line 57 of file CommonTrackInfo.cpp.

58{
59 return commonTrackTCPLines();
60}

References commonTrackTCPLines().

Referenced by CommonTrackControls::GetTCPLines(), PlayableTrackControls::StaticNoteTCPLines(), and PlayableTrackControls::StaticWaveTCPLines().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SyncLockDrawFunction()

void CommonTrackInfo::SyncLockDrawFunction ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track pTrack 
)

Definition at line 281 of file CommonTrackInfo.cpp.

284{
285 auto dc = &context.dc;
286 bool syncLockSelected =
287 pTrack ? SyncLock::IsSyncLockSelected(*pTrack) : true;
288
289 // Draw the sync-lock indicator if this track is in a sync-lock selected group.
290 if (syncLockSelected)
291 {
292 wxRect syncLockIconRect = rect;
293
294 GetSyncLockHorizontalBounds( rect, syncLockIconRect );
295 wxBitmap syncLockBitmap(theTheme.Image(bmpSyncLockIcon));
296 // Icon is 12x12 and syncLockIconRect is 16x16.
297 dc->DrawBitmap(syncLockBitmap,
298 syncLockIconRect.x + 3,
299 syncLockIconRect.y + 2,
300 true);
301 }
302}
static bool IsSyncLockSelected(const Track &track)
Definition: SyncLock.cpp:80
wxImage & Image(int iIndex)

References TrackPanelDrawingContext::dc, GetSyncLockHorizontalBounds(), ThemeBase::Image(), SyncLock::IsSyncLockSelected(), and theTheme.

Here is the call graph for this function:

Variable Documentation

◆ Margin

constexpr auto CommonTrackInfo::Margin = 4
staticconstexpr

◆ ToolButtonSize

constexpr auto CommonTrackInfo::ToolButtonSize = 16
staticconstexpr