Audacity  3.0.3
Public Member Functions | Private Member Functions | Private Attributes | List of all members
AdornedRulerPanel::QuickPlayIndicatorOverlay Class Referencefinal
Inheritance diagram for AdornedRulerPanel::QuickPlayIndicatorOverlay:
[legend]
Collaboration diagram for AdornedRulerPanel::QuickPlayIndicatorOverlay:
[legend]

Public Member Functions

 QuickPlayIndicatorOverlay (AudacityProject *project)
 
- Public Member Functions inherited from Overlay
 Overlay ()=default
 
 Overlay (const Overlay &) PROHIBITED
 
Overlayoperator= (const Overlay &) PROHIBITED
 
virtual ~Overlay ()=0
 
std::pair< wxRect, bool > GetRectangle (wxSize size)
 
virtual void Erase (wxDC &dc, wxDC &src)
 

Private Member Functions

unsigned SequenceNumber () const override
 This number determines an ordering of overlays, so that those with higher numbers overpaint those with lower numbers that intersect. More...
 
std::pair< wxRect, bool > DoGetRectangle (wxSize size) override
 
void Draw (OverlayPanel &panel, wxDC &dc) override
 

Private Attributes

friend QuickPlayRulerOverlay
 
friend AdornedRulerPanel
 
AudacityProjectmProject
 
std::shared_ptr< QuickPlayRulerOverlaymPartner { std::make_shared<QuickPlayRulerOverlay>(*this) }
 
int mOldQPIndicatorPos { -1 }
 
bool mOldQPIndicatorSnapped {}
 
bool mOldPreviewingScrub {}
 

Detailed Description

Definition at line 167 of file AdornedRulerPanel.cpp.

Constructor & Destructor Documentation

◆ QuickPlayIndicatorOverlay()

AdornedRulerPanel::QuickPlayIndicatorOverlay::QuickPlayIndicatorOverlay ( AudacityProject project)

Definition at line 303 of file AdornedRulerPanel.cpp.

305  : mProject(project)
306 {
307 }

Member Function Documentation

◆ DoGetRectangle()

std::pair< wxRect, bool > AdornedRulerPanel::QuickPlayIndicatorOverlay::DoGetRectangle ( wxSize  size)
overrideprivatevirtual

Implements Overlay.

Definition at line 316 of file AdornedRulerPanel.cpp.

317 {
318  mPartner->Update();
319 
320  wxRect rect(mOldQPIndicatorPos, 0, 1, size.GetHeight());
321  return std::make_pair(
322  rect,
323  (mOldQPIndicatorPos != mPartner->mNewQPIndicatorPos ||
324  mOldQPIndicatorSnapped != mPartner->mNewQPIndicatorSnapped ||
325  mOldPreviewingScrub != mPartner->mNewPreviewingScrub)
326  );
327 }

References size.

◆ Draw()

void AdornedRulerPanel::QuickPlayIndicatorOverlay::Draw ( OverlayPanel panel,
wxDC &  dc 
)
overrideprivatevirtual

Implements Overlay.

Definition at line 329 of file AdornedRulerPanel.cpp.

331 {
332  mOldQPIndicatorPos = mPartner->mNewQPIndicatorPos;
333  mOldQPIndicatorSnapped = mPartner->mNewQPIndicatorSnapped;
334  mOldPreviewingScrub = mPartner->mNewPreviewingScrub;
335 
336  if (mOldQPIndicatorPos >= 0) {
338  ? AColor::IndicatorColor(&dc, true) // Draw green line for preview.
340  ? AColor::SnapGuidePen(&dc)
341  : AColor::Light(&dc, false)
342  ;
343 
344  // Draw indicator in all visible tracks
345  auto pCellularPanel = dynamic_cast<CellularPanel*>( &panel );
346  if ( !pCellularPanel ) {
347  wxASSERT( false );
348  return;
349  }
350  pCellularPanel
351  ->VisitCells( [&]( const wxRect &rect, TrackPanelCell &cell ) {
352  const auto pTrackView = dynamic_cast<TrackView*>(&cell);
353  if (!pTrackView)
354  return;
355 
356  // Draw the NEW indicator in its NEW location
357  AColor::Line(dc,
359  rect.GetTop(),
361  rect.GetBottom());
362  } );
363  }
364 }

References AColor::IndicatorColor(), AColor::Light(), AColor::Line(), and AColor::SnapGuidePen().

Here is the call graph for this function:

◆ SequenceNumber()

unsigned AdornedRulerPanel::QuickPlayIndicatorOverlay::SequenceNumber ( ) const
overrideprivatevirtual

This number determines an ordering of overlays, so that those with higher numbers overpaint those with lower numbers that intersect.

Implements Overlay.

Definition at line 310 of file AdornedRulerPanel.cpp.

311 {
312  return 30;
313 }

Member Data Documentation

◆ AdornedRulerPanel

friend AdornedRulerPanel::QuickPlayIndicatorOverlay::AdornedRulerPanel
private

Definition at line 170 of file AdornedRulerPanel.cpp.

◆ mOldPreviewingScrub

bool AdornedRulerPanel::QuickPlayIndicatorOverlay::mOldPreviewingScrub {}
private

Definition at line 187 of file AdornedRulerPanel.cpp.

◆ mOldQPIndicatorPos

int AdornedRulerPanel::QuickPlayIndicatorOverlay::mOldQPIndicatorPos { -1 }
private

Definition at line 185 of file AdornedRulerPanel.cpp.

◆ mOldQPIndicatorSnapped

bool AdornedRulerPanel::QuickPlayIndicatorOverlay::mOldQPIndicatorSnapped {}
private

Definition at line 186 of file AdornedRulerPanel.cpp.

◆ mPartner

std::shared_ptr<QuickPlayRulerOverlay> AdornedRulerPanel::QuickPlayIndicatorOverlay::mPartner { std::make_shared<QuickPlayRulerOverlay>(*this) }
private

Definition at line 182 of file AdornedRulerPanel.cpp.

◆ mProject

AudacityProject* AdornedRulerPanel::QuickPlayIndicatorOverlay::mProject
private

Definition at line 180 of file AdornedRulerPanel.cpp.

◆ QuickPlayRulerOverlay

friend AdornedRulerPanel::QuickPlayIndicatorOverlay::QuickPlayRulerOverlay
private

Definition at line 169 of file AdornedRulerPanel.cpp.


The documentation for this class was generated from the following file:
size
size_t size
Definition: ffmpeg-2.3.6-single-header.h:412
AdornedRulerPanel::QuickPlayIndicatorOverlay::mOldPreviewingScrub
bool mOldPreviewingScrub
Definition: AdornedRulerPanel.cpp:187
AColor
AColor Manages color brushes and pens.
Definition: AColor.h:25
AdornedRulerPanel::QuickPlayIndicatorOverlay::mProject
AudacityProject * mProject
Definition: AdornedRulerPanel.cpp:180
AColor::IndicatorColor
static void IndicatorColor(wxDC *dc, bool bIsNotRecording)
Definition: AColor.cpp:380
AColor::Line
static void Line(wxDC &dc, wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
Definition: AColor.cpp:109
TrackPanelCell
Definition: TrackPanelCell.h:74
AdornedRulerPanel::QuickPlayIndicatorOverlay::mPartner
std::shared_ptr< QuickPlayRulerOverlay > mPartner
Definition: AdornedRulerPanel.cpp:183
TrackView
Definition: TrackView.h:24
CellularPanel
Formerly part of TrackPanel, this abstract base class has no special knowledge of Track objects and i...
Definition: CellularPanel.h:34
AdornedRulerPanel::QuickPlayIndicatorOverlay::mOldQPIndicatorPos
int mOldQPIndicatorPos
Definition: AdornedRulerPanel.cpp:185
AdornedRulerPanel::QuickPlayIndicatorOverlay::mOldQPIndicatorSnapped
bool mOldQPIndicatorSnapped
Definition: AdornedRulerPanel.cpp:186