Audacity 3.2.0
Public Member Functions | Public Attributes | List of all members
PrefsPanel::PrefsItem::Visitor Struct Referencefinal
Inheritance diagram for PrefsPanel::PrefsItem::Visitor:
[legend]
Collaboration diagram for PrefsPanel::PrefsItem::Visitor:
[legend]

Public Member Functions

 Visitor (PrefsPanel::Factories &factories_)
 
void BeginGroup (const Registry::GroupItemBase &item, const Path &) override
 
void EndGroup (const Registry::GroupItemBase &item, const Path &) override
 
- Public Member Functions inherited from Registry::Visitor
virtual ~Visitor ()
 
virtual void BeginGroup (const GroupItemBase &item, const Path &path)
 
virtual void EndGroup (const GroupItemBase &item, const Path &path)
 
virtual void Visit (const SingleItem &item, const Path &path)
 

Public Attributes

PrefsPanel::Factoriesfactories
 
std::vector< size_t > childCounts
 
std::vector< size_t > indices
 

Additional Inherited Members

- Public Types inherited from Registry::Visitor
using Path = std::vector< Identifier >
 

Detailed Description

Definition at line 31 of file PrefsPanel.cpp.

Constructor & Destructor Documentation

◆ Visitor()

PrefsPanel::PrefsItem::Visitor::Visitor ( PrefsPanel::Factories factories_)
inline

Definition at line 32 of file PrefsPanel.cpp.

33 : factories{ factories_ }
34 {
35 childCounts.push_back( 0 );
36 }
PrefsPanel::Factories & factories
Definition: PrefsPanel.cpp:58
std::vector< size_t > childCounts
Definition: PrefsPanel.cpp:59

References childCounts.

Member Function Documentation

◆ BeginGroup()

void PrefsPanel::PrefsItem::Visitor::BeginGroup ( const Registry::GroupItemBase item,
const Path  
)
inlineoverridevirtual

Reimplemented from Registry::Visitor.

Definition at line 37 of file PrefsPanel.cpp.

38 {
39 auto pItem = dynamic_cast<const PrefsItem*>( &item );
40 if (!pItem || !pItem->factory)
41 return;
42 indices.push_back( factories.size() );
43 factories.emplace_back( pItem->factory, 0, pItem->expanded );
44 ++childCounts.back();
45 childCounts.push_back( 0 );
46 }
std::vector< size_t > indices
Definition: PrefsPanel.cpp:60
PrefsItem(const wxString &name, const PrefsPanel::Factory &factory, bool expanded)
Definition: PrefsPanel.cpp:23

References childCounts, factories, and indices.

◆ EndGroup()

void PrefsPanel::PrefsItem::Visitor::EndGroup ( const Registry::GroupItemBase item,
const Path  
)
inlineoverridevirtual

Reimplemented from Registry::Visitor.

Definition at line 47 of file PrefsPanel.cpp.

48 {
49 auto pItem = dynamic_cast<const PrefsItem*>( &item );
50 if (!pItem || !pItem->factory)
51 return;
52 auto &factory = factories[ indices.back() ];
53 factory.nChildren = childCounts.back();
54 childCounts.pop_back();
55 indices.pop_back();
56 }
PrefsPanel::Factory factory
Definition: PrefsPanel.h:134

References childCounts, factories, PrefsPanel::PrefsItem::factory, and indices.

Member Data Documentation

◆ childCounts

std::vector<size_t> PrefsPanel::PrefsItem::Visitor::childCounts

Definition at line 59 of file PrefsPanel.cpp.

Referenced by BeginGroup(), EndGroup(), and Visitor().

◆ factories

PrefsPanel::Factories& PrefsPanel::PrefsItem::Visitor::factories

Definition at line 58 of file PrefsPanel.cpp.

Referenced by BeginGroup(), and EndGroup().

◆ indices

std::vector<size_t> PrefsPanel::PrefsItem::Visitor::indices

Definition at line 60 of file PrefsPanel.cpp.

Referenced by BeginGroup(), and EndGroup().


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