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

Public Member Functions

template<typename Callback >
 PopupMenuBuilder (Callback callback)
 
void BeginGroup (const SnapRegistryGroup &item) override
 
void EndGroup (const SnapRegistryGroup &item) override
 
void Visit (const SnapRegistryItem &item) override
 
virtual void BeginGroup (const SnapRegistryGroup &item)=0
 
virtual void EndGroup (const SnapRegistryGroup &item)=0
 
virtual void Visit (const SnapRegistryItem &item)=0
 

Public Attributes

wxMenu menu
 
std::vector< wxMenu * > menuStack
 
std::function< void(const Identifier &id)> snapModeUpdated
 

Detailed Description

Definition at line 54 of file SnappingToolBar.cpp.

Constructor & Destructor Documentation

◆ PopupMenuBuilder()

template<typename Callback >
anonymous_namespace{SnappingToolBar.cpp}::PopupMenuBuilder::PopupMenuBuilder ( Callback  callback)
inline

Definition at line 57 of file SnappingToolBar.cpp.

58 : menuStack { &menu }
59 , snapModeUpdated { std::move(callback) }
60 {
62 }
static void Visit(SnapRegistryVisitor &visitor)
Definition: SnapUtils.cpp:144
std::function< void(const Identifier &id)> snapModeUpdated

References SnapFunctionsRegistry::Visit().

Here is the call graph for this function:

Member Function Documentation

◆ BeginGroup()

void anonymous_namespace{SnappingToolBar.cpp}::PopupMenuBuilder::BeginGroup ( const SnapRegistryGroup item)
inlineoverridevirtual

Implements SnapRegistryVisitor.

Definition at line 64 of file SnappingToolBar.cpp.

65 {
66 if (item.Inlined())
67 return;
68
69 auto menu = safenew wxMenu;
70
71 menuStack.back()->AppendSubMenu(menu, item.Label().Translation());
72 menuStack.push_back(menu);
73 }
#define safenew
Definition: MemoryX.h:10
wxString Translation() const
const TranslatableString & Label() const
Definition: SnapUtils.h:79
bool Inlined() const
Definition: SnapUtils.h:78

References SnapRegistryGroup::Inlined(), SnapRegistryGroup::Label(), safenew, and TranslatableString::Translation().

Here is the call graph for this function:

◆ EndGroup()

void anonymous_namespace{SnappingToolBar.cpp}::PopupMenuBuilder::EndGroup ( const SnapRegistryGroup item)
inlineoverridevirtual

Implements SnapRegistryVisitor.

Definition at line 75 of file SnappingToolBar.cpp.

76 {
77 assert(!menuStack.empty());
78
79 if (item.Inlined())
80 {
81 menuStack.back()->AppendSeparator();
82 return;
83 }
84
85 menuStack.pop_back();
86 }

References SnapRegistryGroup::Inlined().

Here is the call graph for this function:

◆ Visit()

void anonymous_namespace{SnappingToolBar.cpp}::PopupMenuBuilder::Visit ( const SnapRegistryItem item)
inlineoverridevirtual

Implements SnapRegistryVisitor.

Definition at line 88 of file SnappingToolBar.cpp.

89 {
90 auto menuItem = menuStack.back()->AppendCheckItem(wxID_ANY, item.label.Translation());
91
92 if (ReadSnapTo() == item.name)
93 menuItem->Check();
94
95 menuStack.back()->Bind(
96 wxEVT_MENU,
97 [this, id = item.name](wxCommandEvent&) { snapModeUpdated(id); },
98 menuItem->GetId());
99 }
Identifier ReadSnapTo()
Definition: SnapUtils.cpp:124
const Identifier name
Definition: Registry.h:79
const TranslatableString label
Definition: SnapUtils.h:88

References SnapRegistryItem::label, Registry::detail::BaseItem::name, ReadSnapTo(), and TranslatableString::Translation().

Here is the call graph for this function:

Member Data Documentation

◆ menu

wxMenu anonymous_namespace{SnappingToolBar.cpp}::PopupMenuBuilder::menu

Definition at line 101 of file SnappingToolBar.cpp.

◆ menuStack

std::vector<wxMenu*> anonymous_namespace{SnappingToolBar.cpp}::PopupMenuBuilder::menuStack

Definition at line 102 of file SnappingToolBar.cpp.

◆ snapModeUpdated

std::function<void(const Identifier& id)> anonymous_namespace{SnappingToolBar.cpp}::PopupMenuBuilder::snapModeUpdated

Definition at line 103 of file SnappingToolBar.cpp.


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