1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 08:29:27 +02:00
audacity/src/menus/ToolbarMenus.cpp
abb128 298ccd94d3 Fix whitespace inconsistencies
Signed-off-by: abb128 <alexx128p@gmail.com>
2021-07-15 21:06:27 +03:00

87 lines
2.1 KiB
C++

#include "../Menus.h"
#include "../ProjectSettings.h"
#include "../commands/CommandContext.h"
#include "../commands/CommandManager.h"
#include "../toolbars/ToolManager.h"
#include "../CommonCommandFlags.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);
}
void OnEditMode(const CommandContext &context)
{
auto &project = context.project;
auto &commandManager = CommandManager::Get( project );
bool checked = !gPrefs->Read(wxT("/GUI/Toolbars/EditMode"), true);
gPrefs->Write(wxT("/GUI/Toolbars/EditMode"), checked);
gPrefs->Flush();
commandManager.Check(wxT("EditMode"), checked);
wxTheApp->AddPendingEvent(wxCommandEvent{ EVT_PREFS_UPDATE });
}
}; // 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( "Manage",
/* i18n-hint: (verb)*/
Command( wxT("EditMode"), XXO("&Edit Mode (on/off)"),
FN(OnEditMode), AudioIONotBusyFlag(),
Options{}.CheckTest( wxT("/GUI/Toolbars/EditMode"), true ) ),
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