audacia/src/menus/ToolbarMenus.cpp

70 lines
1.4 KiB
C++

#include "../Menus.h"
#include "../ProjectSettings.h"
#include "../commands/CommandContext.h"
#include "../commands/CommandManager.h"
#include "../toolbars/ToolManager.h"
/// Namespace for functions for View Toolbar menu
namespace ToolbarActions {
// exported helper functions
// none
// Menu handler functions
struct Handler : CommandHandlerObject {
void OnResetToolBars(const CommandContext &context)
{
ToolManager::OnResetToolBars(context);
}
}; // struct Handler
} // namespace
static CommandHandlerObject &findCommandHandler(AudacityProject &) {
// Handler is not stateful. Doesn't need a factory registered with
// AudacityProject.
static ToolbarActions::Handler instance;
return instance;
};
// Menu definitions
#define FN(X) (& ToolbarActions::Handler :: X)
namespace{
using namespace MenuTable;
BaseItemSharedPtr ToolbarsMenu()
{
using Options = CommandManager::Options;
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Section( wxT("Toolbars"),
Menu( wxT("Toolbars"), XXO("&Toolbars"),
Section( "Reset",
/* i18n-hint: (verb)*/
Command( wxT("ResetToolbars"), XXO("Reset Toolb&ars"),
FN(OnResetToolBars), AlwaysEnabledFlag )
),
Section( "Other" )
)
) ) };
return menu;
}
AttachedItem sAttachment1{
Placement{ wxT("View/Other"), { OrderingHint::Begin } },
Shared( ToolbarsMenu() )
};
}
#undef FN