Audacity 3.2.0
Public Member Functions | Public Attributes | List of all members
anonymous_namespace{TrackPanel.cpp}::Subgroup Struct Referencefinal
Inheritance diagram for anonymous_namespace{TrackPanel.cpp}::Subgroup:
[legend]
Collaboration diagram for anonymous_namespace{TrackPanel.cpp}::Subgroup:
[legend]

Public Member Functions

 Subgroup (TrackPanel &panel)
 
Subdivision Children (const wxRect &rect) override
 
- Public Member Functions inherited from TrackPanelGroup
 TrackPanelGroup ()
 
virtual ~TrackPanelGroup ()
 
virtual Subdivision Children (const wxRect &rect)=0
 
- Public Member Functions inherited from TrackPanelNode
 TrackPanelNode ()
 
virtual ~TrackPanelNode ()=0
 
- Public Member Functions inherited from TrackPanelDrawable
virtual ~TrackPanelDrawable ()=0
 
virtual void Draw (TrackPanelDrawingContext &context, const wxRect &rect, unsigned iPass)
 
virtual wxRect DrawingArea (TrackPanelDrawingContext &context, const wxRect &rect, const wxRect &panelRect, unsigned iPass)
 

Public Attributes

TrackPanelmPanel
 

Additional Inherited Members

- Public Types inherited from TrackPanelGroup
enum class  Axis { X , Y }
 
using Child = std::pair< wxCoord, std::shared_ptr< TrackPanelNode > >
 
using Refinement = std::vector< Child >
 
using Subdivision = std::pair< Axis, Refinement >
 
- Static Public Member Functions inherited from TrackPanelDrawable
static wxRect MaximizeWidth (const wxRect &rect, const wxRect &panelRect)
 
static wxRect MaximizeHeight (const wxRect &rect, const wxRect &panelRect)
 

Detailed Description

Definition at line 1554 of file TrackPanel.cpp.

Constructor & Destructor Documentation

◆ Subgroup()

anonymous_namespace{TrackPanel.cpp}::Subgroup::Subgroup ( TrackPanel panel)
inlineexplicit

Definition at line 1555 of file TrackPanel.cpp.

1555: mPanel{ panel } {}

Member Function Documentation

◆ Children()

Subdivision anonymous_namespace{TrackPanel.cpp}::Subgroup::Children ( const wxRect &  rect)
inlineoverridevirtual

Implements TrackPanelGroup.

Definition at line 1556 of file TrackPanel.cpp.

1557 {
1558 const auto &viewInfo = *mPanel.GetViewInfo();
1559 wxCoord yy = -viewInfo.vpos;
1560 Refinement refinement;
1561
1562 auto &tracks = *mPanel.GetTracks();
1563 if (!tracks.empty())
1564 refinement.emplace_back( yy, EmptyCell::Instance() ),
1565 yy += kTopMargin;
1566
1567 for (const auto pTrack : tracks) {
1568 wxCoord height = 0;
1569 for (auto pChannel : pTrack->Channels()) {
1570 auto &view = ChannelView::Get(*pChannel);
1571 height += view.GetHeight();
1572 }
1573 refinement.emplace_back( yy,
1574 std::make_shared<ResizingChannelGroup>(
1575 pTrack->SharedPointer(), viewInfo.GetLeftOffset())
1576 );
1577 yy += height;
1578 }
1579
1580 refinement.emplace_back(std::max(0, yy), mPanel.GetBackgroundCell());
1581
1582 return { Axis::Y, std::move(refinement) };
1583 }
const auto tracks
@ kTopMargin
static ChannelView & Get(Channel &channel)
std::vector< Child > Refinement
std::shared_ptr< CommonTrackPanelCell > GetBackgroundCell()
Definition: TrackPanel.cpp:890
ViewInfo * GetViewInfo()
Definition: TrackPanel.h:165
const TrackList * GetTracks() const
Definition: TrackPanel.h:163
int vpos
Pixel distance from top of tracks to top of visible scrolled area.
Definition: ViewInfo.h:221
static std::shared_ptr< EmptyCell > Instance()

References ChannelView::Get(), kTopMargin, and tracks.

Here is the call graph for this function:

Member Data Documentation

◆ mPanel

TrackPanel& anonymous_namespace{TrackPanel.cpp}::Subgroup::mPanel

Definition at line 1584 of file TrackPanel.cpp.


The documentation for this struct was generated from the following file: