mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-01 08:29:27 +02:00
87 lines
2.1 KiB
C++
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
|