Audacity 3.2.0
Namespaces | Classes | Typedefs | Functions
MenuTable Namespace Reference

Namespaces

namespace  detail
 

Classes

struct  CommandGroupItem
 
struct  CommandItem
 
struct  ConditionalGroupItem
 
class  FinderScope
 
struct  ItemRegistry
 
struct  MenuItem
 
struct  MenuItemData
 
struct  MenuItemProperties
 A mix-in discovered by dynamic_cast; independent of the Traits. More...
 
struct  MenuItems
 
struct  MenuPart
 
struct  SpecialItem
 
struct  Traits
 
struct  Visitor
 

Typedefs

using Condition = std::function< bool()>
 
using AttachedItem = RegisteredItem< ItemRegistry >
 

Functions

template<typename RegistryTraits >
static bool IsSection (const GroupItem< RegistryTraits > &item)
 

Variables

Factories

The following, and Registry::Indirect(), are the functions to use directly to specify elements of menu groupings.

constexpr auto Items = Callable::UniqueMaker<MenuItems>()
 
constexpr auto Section = Callable::UniqueMaker<MenuPart>()
 
constexpr auto Menu = Callable::UniqueMaker<MenuItem>()
 Items will appear in a main toolbar menu or in a sub-menu. More...
 
constexpr auto ConditionalItems = Callable::UniqueMaker<ConditionalGroupItem>()
 
constexpr auto Command = Callable::UniqueMaker<CommandItem>()
 
constexpr auto CommandGroup
 
constexpr auto Special = Callable::UniqueMaker<SpecialItem>()
 

Typedef Documentation

◆ AttachedItem

Definition at line 749 of file CommandManager.h.

◆ Condition

using MenuTable::Condition = typedef std::function<bool()>

Definition at line 509 of file CommandManager.h.

Function Documentation

◆ IsSection()

template<typename RegistryTraits >
static bool MenuTable::IsSection ( const GroupItem< RegistryTraits > &  item)
inlinestatic

Definition at line 485 of file CommandManager.h.

485 {
486 auto pProperties = dynamic_cast<const MenuItemProperties *>(&item);
487 return pProperties && pProperties->GetProperties() ==
489 };
constexpr auto Section
A mix-in discovered by dynamic_cast; independent of the Traits.
virtual Properties GetProperties() const =0

References MenuTable::MenuItemProperties::GetProperties(), and MenuTable::MenuItemProperties::Section.

Referenced by anonymous_namespace{Menus.cpp}::MenuItemVisitor::MenuItemVisitor().

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

Variable Documentation

◆ Command

constexpr auto MenuTable::Command = Callable::UniqueMaker<CommandItem>()
constexpr

Definition at line 733 of file CommandManager.h.

Referenced by anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), anonymous_namespace{PluginMenus.cpp}::AnalyzeMenu(), ScreenshotCommand::CapturePreferences(), anonymous_namespace{ClipMenus.cpp}::ClipCursorItems(), anonymous_namespace{ClipMenus.cpp}::ClipSelectMenu(), anonymous_namespace{SelectMenus.cpp}::CursorMenu(), BuiltinCommandsModule::DiscoverPluginsAtPath(), anonymous_namespace{EditMenus.cpp}::EditMenu(), anonymous_namespace{PluginMenus.cpp}::EffectMenu(), anonymous_namespace{SelectMenus.cpp}::ExtraCursorMenu(), anonymous_namespace{DeviceToolBar.cpp}::ExtraDeviceMenu(), anonymous_namespace{EditMenus.cpp}::ExtraEditMenu(), anonymous_namespace{FileMenus.cpp}::ExtraExportMenu(), anonymous_namespace{NavigationMenus.cpp}::ExtraFocusMenu(), anonymous_namespace{NavigationMenus.cpp}::ExtraGlobalCommands(), anonymous_namespace{ExtraMenus.cpp}::ExtraMiscItems(), anonymous_namespace{MeterToolBar.cpp}::ExtraMixerMenu(), anonymous_namespace{TranscriptionToolBar.cpp}::ExtraPlayAtSpeedItems(), anonymous_namespace{SelectMenus.cpp}::ExtraSeekMenu(), anonymous_namespace{TransportMenus.cpp}::ExtraSelectionItems(), anonymous_namespace{SelectMenus.cpp}::ExtraSelectionMenu(), anonymous_namespace{TimelineMenus.cpp}::ExtraSelectionMenu(), anonymous_namespace{ClipMenus.cpp}::ExtraTimeShiftItems(), anonymous_namespace{ToolsToolBar.cpp}::ExtraToolsMenu(), anonymous_namespace{TrackMenus.cpp}::ExtraTrackMenu(), anonymous_namespace{TransportMenus.cpp}::ExtraTransportMenu(), anonymous_namespace{FileMenus.cpp}::FileMenu(), anonymous_namespace{PluginMenus.cpp}::GenerateMenu(), anonymous_namespace{HelpMenus.cpp}::HelpMenu(), anonymous_namespace{FileMenus.cpp}::HiddenFileMenu(), anonymous_namespace{LabelMenus.cpp}::LabelEditMenus(), TrackMenuTable::OnSetName(), PluginMenuItems(), anonymous_namespace{BatchProcessDialog.cpp}::PopulateMacrosMenu(), anonymous_namespace{Printing.cpp}::PrintingItems(), DEFINE_VERSION_CHECK::RegisterMenuItems(), anonymous_namespace{NyqBench.cpp}::RegisterMenuItems(), anonymous_namespace{SelectMenus.cpp}::SelectMenu(), MacroCommandDialog::SetCommandAndParams(), WaveTrackAffordanceControls::StartEditClipName(), anonymous_namespace{ToolbarMenus.cpp}::ToolbarsMenu(), anonymous_namespace{PluginMenus.cpp}::ToolsMenu(), anonymous_namespace{TrackMenus.cpp}::TracksMenu(), anonymous_namespace{TransportMenus.cpp}::TransportMenu(), and anonymous_namespace{ViewMenus.cpp}::ViewMenu().

◆ CommandGroup

constexpr auto MenuTable::CommandGroup
constexpr
Initial value:
const Identifier &, std::vector<ComponentInterfaceSymbol>>()
An explicitly nonlocalized string, not meant for the user to see.
Definition: Identifier.h:22
constexpr auto UniqueMaker()
Generate variadic factory functions.
Definition: Callable.h:122

Definition at line 735 of file CommandManager.h.

Referenced by anonymous_namespace{TrackMenus.cpp}::TracksMenu().

◆ ConditionalItems

constexpr auto MenuTable::ConditionalItems = Callable::UniqueMaker<ConditionalGroupItem>()
constexpr

These items register in the CommandManager but are not shown in menus if the condition evaluates false.

The name is untranslated. Try to keep the name stable across Audacity versions. Name for conditional group must be non-empty.

Definition at line 731 of file CommandManager.h.

Referenced by anonymous_namespace{ExtraMenus.cpp}::ExtraMenu(), and anonymous_namespace{FileMenus.cpp}::HiddenFileMenu().

◆ Items

constexpr auto MenuTable::Items = Callable::UniqueMaker<MenuItems>()
constexpr

◆ Menu

constexpr auto MenuTable::Menu = Callable::UniqueMaker<MenuItem>()
constexpr

Items will appear in a main toolbar menu or in a sub-menu.

The name is untranslated. Try to keep the name stable across Audacity versions. If the name of a menu is empty, then subordinate items cannot be located by path.

Definition at line 722 of file CommandManager.h.

Referenced by anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), anonymous_namespace{MenuHelper.cpp}::AddGroupedEffectMenuItems(), anonymous_namespace{PluginMenus.cpp}::AnalyzeMenu(), anonymous_namespace{ClipMenus.cpp}::ClipSelectMenu(), anonymous_namespace{SelectMenus.cpp}::CursorMenu(), anonymous_namespace{EditMenus.cpp}::EditMenu(), anonymous_namespace{PluginMenus.cpp}::EffectMenu(), anonymous_namespace{SelectMenus.cpp}::ExtraCursorMenu(), anonymous_namespace{DeviceToolBar.cpp}::ExtraDeviceMenu(), anonymous_namespace{EditMenus.cpp}::ExtraEditMenu(), anonymous_namespace{FileMenus.cpp}::ExtraExportMenu(), anonymous_namespace{NavigationMenus.cpp}::ExtraFocusMenu(), anonymous_namespace{ExtraMenus.cpp}::ExtraMenu(), anonymous_namespace{MeterToolBar.cpp}::ExtraMixerMenu(), anonymous_namespace{TranscriptionToolBar.cpp}::ExtraPlayAtSpeedMenu(), ExtraScriptablesIIMenu(), ExtraScriptablesIMenu(), anonymous_namespace{SelectMenus.cpp}::ExtraSeekMenu(), anonymous_namespace{SelectMenus.cpp}::ExtraSelectionMenu(), anonymous_namespace{TimelineMenus.cpp}::ExtraSelectionMenu(), anonymous_namespace{ToolsToolBar.cpp}::ExtraToolsMenu(), anonymous_namespace{TrackMenus.cpp}::ExtraTrackMenu(), anonymous_namespace{TransportMenus.cpp}::ExtraTransportMenu(), anonymous_namespace{FileMenus.cpp}::FileMenu(), anonymous_namespace{PluginMenus.cpp}::GenerateMenu(), anonymous_namespace{HelpMenus.cpp}::HelpMenu(), anonymous_namespace{FileMenus.cpp}::HiddenFileMenu(), anonymous_namespace{LabelMenus.cpp}::LabelEditMenus(), anonymous_namespace{MenuHelper.cpp}::MakeAddGroupItems(), KeyConfigPrefs::OnDefaults(), PluginMenuItems(), anonymous_namespace{SelectMenus.cpp}::SelectMenu(), anonymous_namespace{ToolbarMenus.cpp}::ToolbarsMenu(), anonymous_namespace{PluginMenus.cpp}::ToolsMenu(), anonymous_namespace{TrackMenus.cpp}::TracksMenu(), anonymous_namespace{TransportMenus.cpp}::TransportMenu(), RealtimeEffectListWindow::UpdateEffectMenuItems(), and anonymous_namespace{ViewMenus.cpp}::ViewMenu().

◆ Section

constexpr auto MenuTable::Section = Callable::UniqueMaker<MenuPart>()
constexpr

◆ Special

constexpr auto MenuTable::Special = Callable::UniqueMaker<SpecialItem>()
constexpr