1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-22 15:20:15 +02:00

Fix indentations

This commit is contained in:
Paul Licameli 2020-01-30 11:01:07 -05:00
parent a84da3dee1
commit 6b551d10c5
12 changed files with 1000 additions and 1007 deletions

View File

@ -1055,110 +1055,109 @@ MenuTable::BaseItemSharedPtr EditMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("Edit"), XO("&Edit"),
Section( "",
Command( wxT("Undo"), XXO("&Undo"), FN(OnUndo),
AudioIONotBusyFlag() | UndoAvailableFlag(), wxT("Ctrl+Z") ),
Section( "",
Command( wxT("Undo"), XXO("&Undo"), FN(OnUndo),
AudioIONotBusyFlag() | UndoAvailableFlag(), wxT("Ctrl+Z") ),
Command( wxT("Redo"), XXO("&Redo"), FN(OnRedo),
AudioIONotBusyFlag() | RedoAvailableFlag(), redoKey ),
Special( wxT("UndoItemsUpdateStep"),
[](AudacityProject &project, wxMenu&) {
// Change names in the CommandManager as a side-effect
MenuManager::ModifyUndoMenuItems(project);
})
),
Section( "",
// Basic Edit commands
/* i18n-hint: (verb)*/
Command( wxT("Cut"), XXO("Cu&t"), FN(OnCut),
AudioIONotBusyFlag() | CutCopyAvailableFlag() | NoAutoSelect(),
wxT("Ctrl+X") ),
Command( wxT("Delete"), XXO("&Delete"), FN(OnDelete),
AudioIONotBusyFlag() | TracksSelectedFlag() | TimeSelectedFlag() | NoAutoSelect(),
wxT("Ctrl+K") ),
/* i18n-hint: (verb)*/
Command( wxT("Copy"), XXO("&Copy"), FN(OnCopy),
AudioIONotBusyFlag() | CutCopyAvailableFlag(), wxT("Ctrl+C") ),
/* i18n-hint: (verb)*/
Command( wxT("Paste"), XXO("&Paste"), FN(OnPaste),
AudioIONotBusyFlag(), wxT("Ctrl+V") ),
/* i18n-hint: (verb)*/
Command( wxT("Duplicate"), XXO("Duplic&ate"), FN(OnDuplicate),
NotBusyTimeAndTracksFlags, wxT("Ctrl+D") )
),
Section( "",
Menu( wxT("RemoveSpecial"), XO("R&emove Special"),
Section( "",
/* i18n-hint: (verb) Do a special kind of cut*/
Command( wxT("SplitCut"), XXO("Spl&it Cut"), FN(OnSplitCut),
NotBusyTimeAndTracksFlags,
Options{ wxT("Ctrl+Alt+X") }.UseStrictFlags() ),
/* i18n-hint: (verb) Do a special kind of DELETE*/
Command( wxT("SplitDelete"), XXO("Split D&elete"), FN(OnSplitDelete),
NotBusyTimeAndTracksFlags,
Options{ wxT("Ctrl+Alt+K") }.UseStrictFlags() )
),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("Silence"), XXO("Silence Audi&o"), FN(OnSilence),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
wxT("Ctrl+L") ),
/* i18n-hint: (verb)*/
Command( wxT("Trim"), XXO("Tri&m Audio"), FN(OnTrim),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
Options{ wxT("Ctrl+T") }.UseStrictFlags() )
)
)
),
Section( "",
//////////////////////////////////////////////////////////////////////////
Menu( wxT("Clip"), XO("Clip B&oundaries"),
Section( "",
/* i18n-hint: (verb) It's an item on a menu. */
Command( wxT("Split"), XXO("Sp&lit"), FN(OnSplit),
AudioIONotBusyFlag() | WaveTracksSelectedFlag(),
Options{ wxT("Ctrl+I") }.UseStrictFlags() ),
Command( wxT("SplitNew"), XXO("Split Ne&w"), FN(OnSplitNew),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
Options{ wxT("Ctrl+Alt+I") }.UseStrictFlags() )
),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("Join"), XXO("&Join"), FN(OnJoin),
NotBusyTimeAndTracksFlags, wxT("Ctrl+J") ),
Command( wxT("Disjoin"), XXO("Detac&h at Silences"), FN(OnDisjoin),
NotBusyTimeAndTracksFlags, wxT("Ctrl+Alt+J") )
)
Command( wxT("Redo"), XXO("&Redo"), FN(OnRedo),
AudioIONotBusyFlag() | RedoAvailableFlag(), redoKey ),
Special( wxT("UndoItemsUpdateStep"),
[](AudacityProject &project, wxMenu&) {
// Change names in the CommandManager as a side-effect
MenuManager::ModifyUndoMenuItems(project);
})
),
Section( "",
// Basic Edit commands
/* i18n-hint: (verb)*/
Command( wxT("Cut"), XXO("Cu&t"), FN(OnCut),
AudioIONotBusyFlag() | CutCopyAvailableFlag() | NoAutoSelect(),
wxT("Ctrl+X") ),
Command( wxT("Delete"), XXO("&Delete"), FN(OnDelete),
AudioIONotBusyFlag() | TracksSelectedFlag() | TimeSelectedFlag() | NoAutoSelect(),
wxT("Ctrl+K") ),
/* i18n-hint: (verb)*/
Command( wxT("Copy"), XXO("&Copy"), FN(OnCopy),
AudioIONotBusyFlag() | CutCopyAvailableFlag(), wxT("Ctrl+C") ),
/* i18n-hint: (verb)*/
Command( wxT("Paste"), XXO("&Paste"), FN(OnPaste),
AudioIONotBusyFlag(), wxT("Ctrl+V") ),
/* i18n-hint: (verb)*/
Command( wxT("Duplicate"), XXO("Duplic&ate"), FN(OnDuplicate),
NotBusyTimeAndTracksFlags, wxT("Ctrl+D") )
),
Section( "",
Menu( wxT("RemoveSpecial"), XO("R&emove Special"),
Section( "",
/* i18n-hint: (verb) Do a special kind of cut*/
Command( wxT("SplitCut"), XXO("Spl&it Cut"), FN(OnSplitCut),
NotBusyTimeAndTracksFlags,
Options{ wxT("Ctrl+Alt+X") }.UseStrictFlags() ),
/* i18n-hint: (verb) Do a special kind of DELETE*/
Command( wxT("SplitDelete"), XXO("Split D&elete"), FN(OnSplitDelete),
NotBusyTimeAndTracksFlags,
Options{ wxT("Ctrl+Alt+K") }.UseStrictFlags() )
),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("Silence"), XXO("Silence Audi&o"), FN(OnSilence),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
wxT("Ctrl+L") ),
/* i18n-hint: (verb)*/
Command( wxT("Trim"), XXO("Tri&m Audio"), FN(OnTrim),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
Options{ wxT("Ctrl+T") }.UseStrictFlags() )
)
)
),
Section( "",
//////////////////////////////////////////////////////////////////////////
LabelEditMenus(),
Menu( wxT("Clip"), XO("Clip B&oundaries"),
Section( "",
/* i18n-hint: (verb) It's an item on a menu. */
Command( wxT("Split"), XXO("Sp&lit"), FN(OnSplit),
AudioIONotBusyFlag() | WaveTracksSelectedFlag(),
Options{ wxT("Ctrl+I") }.UseStrictFlags() ),
Command( wxT("SplitNew"), XXO("Split Ne&w"), FN(OnSplitNew),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
Options{ wxT("Ctrl+Alt+I") }.UseStrictFlags() )
),
Command( wxT("EditMetaData"), XXO("&Metadata..."), FN(OnEditMetadata),
AudioIONotBusyFlag() )
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("Join"), XXO("&Join"), FN(OnJoin),
NotBusyTimeAndTracksFlags, wxT("Ctrl+J") ),
Command( wxT("Disjoin"), XXO("Detac&h at Silences"), FN(OnDisjoin),
NotBusyTimeAndTracksFlags, wxT("Ctrl+Alt+J") )
)
),
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
LabelEditMenus(),
Command( wxT("EditMetaData"), XXO("&Metadata..."), FN(OnEditMetadata),
AudioIONotBusyFlag() )
//////////////////////////////////////////////////////////////////////////
#ifndef __WXMAC__
),
),
Section( "",
Section( "",
#else
,
,
#endif
Command( wxT("Preferences"), XXO("Pre&ferences..."), FN(OnPreferences),
AudioIONotBusyFlag(), prefKey )
)
Command( wxT("Preferences"), XXO("Pre&ferences..."), FN(OnPreferences),
AudioIONotBusyFlag(), prefKey )
)
) ) };
return menu;

View File

@ -163,28 +163,28 @@ MenuTable::BaseItemSharedPtr ExtraMenu()
// Table of menu factories.
// TODO: devise a registration system instead.
static BaseItemSharedPtr extraItems{ Items( wxEmptyString,
Section( "",
ExtraTransportMenu()
, ExtraToolsMenu()
, ExtraMixerMenu()
, ExtraEditMenu()
, ExtraPlayAtSpeedMenu()
, ExtraSeekMenu()
, ExtraDeviceMenu()
, ExtraSelectionMenu()
),
Section( "",
ExtraTransportMenu()
, ExtraToolsMenu()
, ExtraMixerMenu()
, ExtraEditMenu()
, ExtraPlayAtSpeedMenu()
, ExtraSeekMenu()
, ExtraDeviceMenu()
, ExtraSelectionMenu()
),
Section( "",
ExtraGlobalCommands()
, ExtraFocusMenu()
, ExtraCursorMenu()
, ExtraTrackMenu()
, ExtraScriptablesIMenu()
, ExtraScriptablesIIMenu()
Section( "",
ExtraGlobalCommands()
, ExtraFocusMenu()
, ExtraCursorMenu()
, ExtraTrackMenu()
, ExtraScriptablesIMenu()
, ExtraScriptablesIIMenu()
// Delayed evaluation:
, ExtraMiscItems
)
// Delayed evaluation:
, ExtraMiscItems
)
) };
static const auto pred =

View File

@ -560,147 +560,147 @@ MenuTable::BaseItemSharedPtr FileMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("File"), XO("&File"),
Section( "",
/*i18n-hint: "New" is an action (verb) to create a NEW project*/
Command( wxT("New"), XXO("&New"), FN(OnNew),
AudioIONotBusyFlag(), wxT("Ctrl+N") ),
Section( "",
/*i18n-hint: "New" is an action (verb) to create a NEW project*/
Command( wxT("New"), XXO("&New"), FN(OnNew),
AudioIONotBusyFlag(), wxT("Ctrl+N") ),
/*i18n-hint: (verb)*/
Command( wxT("Open"), XXO("&Open..."), FN(OnOpen),
AudioIONotBusyFlag(), wxT("Ctrl+O") ),
/*i18n-hint: (verb)*/
Command( wxT("Open"), XXO("&Open..."), FN(OnOpen),
AudioIONotBusyFlag(), wxT("Ctrl+O") ),
#ifdef EXPERIMENTAL_RESET
// Empty the current project and forget its name and path. DANGEROUS
// It's just for developers.
// Do not translate this menu item (no XXO).
// It MUST not be shown to regular users.
Command( wxT("Reset"), XXO("&Dangerous Reset..."), FN(OnProjectReset),
AudioIONotBusyFlag() ),
#endif
#ifdef EXPERIMENTAL_RESET
// Empty the current project and forget its name and path. DANGEROUS
// It's just for developers.
// Do not translate this menu item (no XXO).
// It MUST not be shown to regular users.
Command( wxT("Reset"), XXO("&Dangerous Reset..."), FN(OnProjectReset),
AudioIONotBusyFlag() ),
#endif
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
Menu( wxT("Recent"),
#ifdef __WXMAC__
/* i18n-hint: This is the name of the menu item on Mac OS X only */
XO("Open Recent")
#else
/* i18n-hint: This is the name of the menu item on Windows and Linux */
XO("Recent &Files")
#endif
,
Special( wxT("PopulateRecentFilesStep"),
[](AudacityProject &, wxMenu &theMenu){
// Recent Files and Recent Projects menus
auto &history = FileHistory::Global();
history.UseMenu( &theMenu );
history.AddFilesToMenu( &theMenu );
Menu( wxT("Recent"),
#ifdef __WXMAC__
/* i18n-hint: This is the name of the menu item on Mac OS X only */
XO("Open Recent")
#else
/* i18n-hint: This is the name of the menu item on Windows and Linux */
XO("Recent &Files")
#endif
,
Special( wxT("PopulateRecentFilesStep"),
[](AudacityProject &, wxMenu &theMenu){
// Recent Files and Recent Projects menus
auto &history = FileHistory::Global();
history.UseMenu( &theMenu );
history.AddFilesToMenu( &theMenu );
wxWeakRef<wxMenu> recentFilesMenu{ &theMenu };
wxTheApp->CallAfter( [=] {
// Bug 143 workaround.
// The bug is in wxWidgets. For a menu that has scrollers,
// the scrollers have an ID of 0 (not wxID_NONE which is -3).
// Therefore wxWidgets attempts to find a help string. See
// wxFrameBase::ShowMenuHelp(int menuId)
// It finds a bogus automatic help string of "Recent &Files"
// from that submenu.
// So we set the help string for command with Id 0 to empty.
if ( recentFilesMenu )
recentFilesMenu->GetParent()->SetHelpString( 0, "" );
} );
} )
wxWeakRef<wxMenu> recentFilesMenu{ &theMenu };
wxTheApp->CallAfter( [=] {
// Bug 143 workaround.
// The bug is in wxWidgets. For a menu that has scrollers,
// the scrollers have an ID of 0 (not wxID_NONE which is -3).
// Therefore wxWidgets attempts to find a help string. See
// wxFrameBase::ShowMenuHelp(int menuId)
// It finds a bogus automatic help string of "Recent &Files"
// from that submenu.
// So we set the help string for command with Id 0 to empty.
if ( recentFilesMenu )
recentFilesMenu->GetParent()->SetHelpString( 0, "" );
} );
} )
),
/////////////////////////////////////////////////////////////////////////////
Command( wxT("Close"), XXO("&Close"), FN(OnClose),
AudioIONotBusyFlag(), wxT("Ctrl+W") )
),
/////////////////////////////////////////////////////////////////////////////
Command( wxT("Close"), XXO("&Close"), FN(OnClose),
AudioIONotBusyFlag(), wxT("Ctrl+W") )
),
Section( "",
Menu( wxT("Save"), XO("&Save Project"),
Command( wxT("Save"), XXO("&Save Project"), FN(OnSave),
AudioIONotBusyFlag() | UnsavedChangesFlag(), wxT("Ctrl+S") ),
Command( wxT("SaveAs"), XXO("Save Project &As..."), FN(OnSaveAs),
AudioIONotBusyFlag() ),
// TODO: The next two items should be disabled if project is empty
Command( wxT("SaveCopy"), XXO("Save Lossless Copy of Project..."),
FN(OnSaveCopy), AudioIONotBusyFlag() )
#ifdef USE_LIBVORBIS
,
Command( wxT("SaveCompressed"),
XXO("&Save Compressed Copy of Project..."),
FN(OnSaveCompressed), AudioIONotBusyFlag() )
#endif
)
),
Section( "",
Menu( wxT("Export"), XO("&Export"),
// Enable Export audio commands only when there are audio tracks.
Command( wxT("ExportMp3"), XXO("Export as MP&3"), FN(OnExportMp3),
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
Command( wxT("ExportWav"), XXO("Export as &WAV"), FN(OnExportWav),
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
Command( wxT("ExportOgg"), XXO("Export as &OGG"), FN(OnExportOgg),
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
Command( wxT("Export"), XXO("&Export Audio..."), FN(OnExportAudio),
AudioIONotBusyFlag() | WaveTracksExistFlag(), wxT("Ctrl+Shift+E") ),
// Enable Export Selection commands only when there's a selection.
Command( wxT("ExportSel"), XXO("Expo&rt Selected Audio..."),
FN(OnExportSelection),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
Options{}.UseStrictFlags() ),
Command( wxT("ExportLabels"), XXO("Export &Labels..."),
FN(OnExportLabels),
AudioIONotBusyFlag() | LabelTracksExistFlag() ),
// Enable Export audio commands only when there are audio tracks.
Command( wxT("ExportMultiple"), XXO("Export &Multiple..."),
FN(OnExportMultiple),
AudioIONotBusyFlag() | WaveTracksExistFlag(), wxT("Ctrl+Shift+L") )
#if defined(USE_MIDI)
,
Command( wxT("ExportMIDI"), XXO("Export MI&DI..."), FN(OnExportMIDI),
AudioIONotBusyFlag() | NoteTracksExistFlag() )
#endif
Section( "",
Menu( wxT("Save"), XO("&Save Project"),
Command( wxT("Save"), XXO("&Save Project"), FN(OnSave),
AudioIONotBusyFlag() | UnsavedChangesFlag(), wxT("Ctrl+S") ),
Command( wxT("SaveAs"), XXO("Save Project &As..."), FN(OnSaveAs),
AudioIONotBusyFlag() ),
// TODO: The next two items should be disabled if project is empty
Command( wxT("SaveCopy"), XXO("Save Lossless Copy of Project..."),
FN(OnSaveCopy), AudioIONotBusyFlag() )
#ifdef USE_LIBVORBIS
,
Command( wxT("SaveCompressed"),
XXO("&Save Compressed Copy of Project..."),
FN(OnSaveCompressed), AudioIONotBusyFlag() )
#endif
)
),
Menu( wxT("Import"), XO("&Import"),
Command( wxT("ImportAudio"), XXO("&Audio..."), FN(OnImport),
AudioIONotBusyFlag(), wxT("Ctrl+Shift+I") ),
Command( wxT("ImportLabels"), XXO("&Labels..."), FN(OnImportLabels),
AudioIONotBusyFlag() ),
#ifdef USE_MIDI
Command( wxT("ImportMIDI"), XXO("&MIDI..."), FN(OnImportMIDI),
AudioIONotBusyFlag() ),
#endif // USE_MIDI
Command( wxT("ImportRaw"), XXO("&Raw Data..."), FN(OnImportRaw),
AudioIONotBusyFlag() )
Section( "",
Menu( wxT("Export"), XO("&Export"),
// Enable Export audio commands only when there are audio tracks.
Command( wxT("ExportMp3"), XXO("Export as MP&3"), FN(OnExportMp3),
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
Command( wxT("ExportWav"), XXO("Export as &WAV"), FN(OnExportWav),
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
Command( wxT("ExportOgg"), XXO("Export as &OGG"), FN(OnExportOgg),
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
Command( wxT("Export"), XXO("&Export Audio..."), FN(OnExportAudio),
AudioIONotBusyFlag() | WaveTracksExistFlag(), wxT("Ctrl+Shift+E") ),
// Enable Export Selection commands only when there's a selection.
Command( wxT("ExportSel"), XXO("Expo&rt Selected Audio..."),
FN(OnExportSelection),
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
Options{}.UseStrictFlags() ),
Command( wxT("ExportLabels"), XXO("Export &Labels..."),
FN(OnExportLabels),
AudioIONotBusyFlag() | LabelTracksExistFlag() ),
// Enable Export audio commands only when there are audio tracks.
Command( wxT("ExportMultiple"), XXO("Export &Multiple..."),
FN(OnExportMultiple),
AudioIONotBusyFlag() | WaveTracksExistFlag(), wxT("Ctrl+Shift+L") )
#if defined(USE_MIDI)
,
Command( wxT("ExportMIDI"), XXO("Export MI&DI..."), FN(OnExportMIDI),
AudioIONotBusyFlag() | NoteTracksExistFlag() )
#endif
),
Menu( wxT("Import"), XO("&Import"),
Command( wxT("ImportAudio"), XXO("&Audio..."), FN(OnImport),
AudioIONotBusyFlag(), wxT("Ctrl+Shift+I") ),
Command( wxT("ImportLabels"), XXO("&Labels..."), FN(OnImportLabels),
AudioIONotBusyFlag() ),
#ifdef USE_MIDI
Command( wxT("ImportMIDI"), XXO("&MIDI..."), FN(OnImportMIDI),
AudioIONotBusyFlag() ),
#endif // USE_MIDI
Command( wxT("ImportRaw"), XXO("&Raw Data..."), FN(OnImportRaw),
AudioIONotBusyFlag() )
)
),
Section( "",
Command( wxT("PageSetup"), XXO("Pa&ge Setup..."), FN(OnPageSetup),
AudioIONotBusyFlag() | TracksExistFlag() ),
/* i18n-hint: (verb) It's item on a menu. */
Command( wxT("Print"), XXO("&Print..."), FN(OnPrint),
AudioIONotBusyFlag() | TracksExistFlag() )
),
Section( "",
// On the Mac, the Exit item doesn't actually go here...wxMac will
// pull it out
// and put it in the Audacity menu for us based on its ID.
/* i18n-hint: (verb) It's item on a menu. */
Command( wxT("Exit"), XXO("E&xit"), FN(OnExit),
AlwaysEnabledFlag, wxT("Ctrl+Q") )
)
),
Section( "",
Command( wxT("PageSetup"), XXO("Pa&ge Setup..."), FN(OnPageSetup),
AudioIONotBusyFlag() | TracksExistFlag() ),
/* i18n-hint: (verb) It's item on a menu. */
Command( wxT("Print"), XXO("&Print..."), FN(OnPrint),
AudioIONotBusyFlag() | TracksExistFlag() )
),
Section( "",
// On the Mac, the Exit item doesn't actually go here...wxMac will
// pull it out
// and put it in the Audacity menu for us based on its ID.
/* i18n-hint: (verb) It's item on a menu. */
Command( wxT("Exit"), XXO("E&xit"), FN(OnExit),
AlwaysEnabledFlag, wxT("Ctrl+Q") )
)
) ) };
return menu;
}

View File

@ -530,74 +530,74 @@ MenuTable::BaseItemSharedPtr HelpMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("Help"), XO("&Help"),
Section( "",
// QuickFix menu item not in Audacity 2.3.1 whilst we discuss further.
#ifdef EXPERIMENTAL_DA
// DA: Has QuickFix menu item.
Command( wxT("QuickFix"), XXO("&Quick Fix..."), FN(OnQuickFix),
AlwaysEnabledFlag ),
// DA: 'Getting Started' rather than 'Quick Help'.
Command( wxT("QuickHelp"), XXO("&Getting Started"), FN(OnQuickHelp) ),
// DA: Emphasise it is the Audacity Manual (No separate DA manual).
Command( wxT("Manual"), XXO("Audacity &Manual"), FN(OnManual) )
#else
Command( wxT("QuickHelp"), XXO("&Quick Help..."), FN(OnQuickHelp),
AlwaysEnabledFlag ),
Command( wxT("Manual"), XXO("&Manual..."), FN(OnManual),
AlwaysEnabledFlag )
#endif
),
#ifdef __WXMAC__
Items
#else
Section
#endif
( "",
Menu( wxT("Diagnostics"), XO("&Diagnostics"),
Command( wxT("DeviceInfo"), XXO("Au&dio Device Info..."),
FN(OnAudioDeviceInfo),
AudioIONotBusyFlag() ),
#ifdef EXPERIMENTAL_MIDI_OUT
Command( wxT("MidiDeviceInfo"), XXO("&MIDI Device Info..."),
FN(OnMidiDeviceInfo),
AudioIONotBusyFlag() ),
#endif
Command( wxT("Log"), XXO("Show &Log..."), FN(OnShowLog),
Section( "",
// QuickFix menu item not in Audacity 2.3.1 whilst we discuss further.
#ifdef EXPERIMENTAL_DA
// DA: Has QuickFix menu item.
Command( wxT("QuickFix"), XXO("&Quick Fix..."), FN(OnQuickFix),
AlwaysEnabledFlag ),
#if defined(EXPERIMENTAL_CRASH_REPORT)
Command( wxT("CrashReport"), XXO("&Generate Support Data..."),
FN(OnCrashReport), AlwaysEnabledFlag ),
#endif
Command( wxT("CheckDeps"), XXO("Chec&k Dependencies..."),
FN(OnCheckDependencies),
AudioIONotBusyFlag() )
#ifdef IS_ALPHA
,
// Menu explorer. Perhaps this should become a macro command
Command( wxT("MenuTree"), XXO("Menu Tree..."),
FN(OnMenuTree),
// DA: 'Getting Started' rather than 'Quick Help'.
Command( wxT("QuickHelp"), XXO("&Getting Started"), FN(OnQuickHelp) ),
// DA: Emphasise it is the Audacity Manual (No separate DA manual).
Command( wxT("Manual"), XXO("Audacity &Manual"), FN(OnManual) )
#else
Command( wxT("QuickHelp"), XXO("&Quick Help..."), FN(OnQuickHelp),
AlwaysEnabledFlag ),
Command( wxT("Manual"), XXO("&Manual..."), FN(OnManual),
AlwaysEnabledFlag )
#endif
)
#ifndef __WXMAC__
),
#endif
),
Section( "",
#ifdef __WXMAC__
Items
#else
Section
#endif
( "",
Menu( wxT("Diagnostics"), XO("&Diagnostics"),
Command( wxT("DeviceInfo"), XXO("Au&dio Device Info..."),
FN(OnAudioDeviceInfo),
AudioIONotBusyFlag() ),
#ifdef EXPERIMENTAL_MIDI_OUT
Command( wxT("MidiDeviceInfo"), XXO("&MIDI Device Info..."),
FN(OnMidiDeviceInfo),
AudioIONotBusyFlag() ),
#endif
Command( wxT("Log"), XXO("Show &Log..."), FN(OnShowLog),
AlwaysEnabledFlag ),
#if defined(EXPERIMENTAL_CRASH_REPORT)
Command( wxT("CrashReport"), XXO("&Generate Support Data..."),
FN(OnCrashReport), AlwaysEnabledFlag ),
#endif
Command( wxT("CheckDeps"), XXO("Chec&k Dependencies..."),
FN(OnCheckDependencies),
AudioIONotBusyFlag() )
#ifdef IS_ALPHA
,
// Menu explorer. Perhaps this should become a macro command
Command( wxT("MenuTree"), XXO("Menu Tree..."),
FN(OnMenuTree),
AlwaysEnabledFlag )
#endif
)
#ifndef __WXMAC__
),
Section( "",
#else
,
,
#endif
// DA: Does not fully support update checking.
#ifndef EXPERIMENTAL_DA
Command( wxT("Updates"), XXO("&Check for Updates..."),
FN(OnCheckForUpdates),
AlwaysEnabledFlag ),
#endif
Command( wxT("About"), XXO("&About Audacity..."), FN(OnAbout),
AlwaysEnabledFlag )
)
// DA: Does not fully support update checking.
#ifndef EXPERIMENTAL_DA
Command( wxT("Updates"), XXO("&Check for Updates..."),
FN(OnCheckForUpdates),
AlwaysEnabledFlag ),
#endif
Command( wxT("About"), XXO("&About Audacity..."), FN(OnAbout),
AlwaysEnabledFlag )
)
) ) };
return menu;
}

View File

@ -604,88 +604,83 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
Items( wxEmptyString,
Menu( wxT("Labels"), XO("&Labels"),
Section( "",
Command( wxT("EditLabels"), XXO("&Edit Labels..."), FN(OnEditLabels),
AudioIONotBusyFlag() )
),
Section( "",
Command( wxT("AddLabel"), XXO("Add Label at &Selection"),
FN(OnAddLabel), AlwaysEnabledFlag, wxT("Ctrl+B") ),
Command( wxT("AddLabelPlaying"),
XXO("Add Label at &Playback Position"),
FN(OnAddLabelPlaying), AudioIOBusyFlag(),
#ifdef __WXMAC__
wxT("Ctrl+.")
#else
wxT("Ctrl+M")
#endif
Section( "",
Command( wxT("EditLabels"), XXO("&Edit Labels..."), FN(OnEditLabels),
AudioIONotBusyFlag() )
),
Command( wxT("PasteNewLabel"), XXO("Paste Te&xt to New Label"),
FN(OnPasteNewLabel),
AudioIONotBusyFlag(), wxT("Ctrl+Alt+V") )
),
Section( "",
Command( wxT("AddLabel"), XXO("Add Label at &Selection"),
FN(OnAddLabel), AlwaysEnabledFlag, wxT("Ctrl+B") ),
Command( wxT("AddLabelPlaying"),
XXO("Add Label at &Playback Position"),
FN(OnAddLabelPlaying), AudioIOBusyFlag(),
#ifdef __WXMAC__
wxT("Ctrl+.")
#else
wxT("Ctrl+M")
#endif
),
Command( wxT("PasteNewLabel"), XXO("Paste Te&xt to New Label"),
FN(OnPasteNewLabel),
AudioIONotBusyFlag(), wxT("Ctrl+Alt+V") )
),
Section( "",
Command( wxT("TypeToCreateLabel"),
XXO("&Type to Create a Label (on/off)"),
FN(OnToggleTypeToCreateLabel), AlwaysEnabledFlag, checkOff )
)
Section( "",
Command( wxT("TypeToCreateLabel"),
XXO("&Type to Create a Label (on/off)"),
FN(OnToggleTypeToCreateLabel), AlwaysEnabledFlag, checkOff )
)
), // first menu
/////////////////////////////////////////////////////////////////////////////
Menu( wxT("Labeled"), XO("La&beled Audio"),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels),
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
TimeSelectedFlag() | IsNotSyncLockedFlag(),
Options{ wxT("Alt+X"), XO("Label Cut") } ),
Command( wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels),
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
TimeSelectedFlag() | IsNotSyncLockedFlag(),
Options{ wxT("Alt+K"), XO("Label Delete") } )
),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels),
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
TimeSelectedFlag() | IsNotSyncLockedFlag(),
Options{ wxT("Alt+X"), XO("Label Cut") } ),
Command( wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels),
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
TimeSelectedFlag() | IsNotSyncLockedFlag(),
Options{ wxT("Alt+K"), XO("Label Delete") } )
),
Section( "",
Section( "",
/* i18n-hint: (verb) A special way to cut out a piece of audio*/
Command( wxT("SplitCutLabels"), XXO("&Split Cut"),
FN(OnSplitCutLabels), NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+Shift+X"), XO("Label Split Cut") } ),
Command( wxT("SplitDeleteLabels"), XXO("Sp&lit Delete"),
FN(OnSplitDeleteLabels), NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+Shift+K"), XO("Label Split Delete") } )
),
/* i18n-hint: (verb) A special way to cut out a piece of audio*/
Command( wxT("SplitCutLabels"), XXO("&Split Cut"),
FN(OnSplitCutLabels), NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+Shift+X"), XO("Label Split Cut") } ),
Command( wxT("SplitDeleteLabels"), XXO("Sp&lit Delete"),
FN(OnSplitDeleteLabels), NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+Shift+K"), XO("Label Split Delete") } )
Section( "",
Command( wxT("SilenceLabels"), XXO("Silence &Audio"),
FN(OnSilenceLabels), NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+L"), XO("Label Silence") } ),
/* i18n-hint: (verb)*/
Command( wxT("CopyLabels"), XXO("Co&py"), FN(OnCopyLabels),
NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+Shift+C"), XO("Label Copy") } )
),
),
Section( "",
Command( wxT("SilenceLabels"), XXO("Silence &Audio"),
FN(OnSilenceLabels), NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+L"), XO("Label Silence") } ),
/* i18n-hint: (verb)*/
Command( wxT("CopyLabels"), XXO("Co&py"), FN(OnCopyLabels),
NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+Shift+C"), XO("Label Copy") } )
),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels),
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag(),
Options{ wxT("Alt+I"), XO("Label Split") } ),
/* i18n-hint: (verb)*/
Command( wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels),
NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+J"), XO("Label Join") } ),
Command( wxT("DisjoinLabels"), XXO("Detac&h at Silences"),
FN(OnDisjoinLabels), NotBusyLabelsAndWaveFlags,
wxT("Alt+Shift+J") )
)
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels),
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag(),
Options{ wxT("Alt+I"), XO("Label Split") } ),
/* i18n-hint: (verb)*/
Command( wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels),
NotBusyLabelsAndWaveFlags,
Options{ wxT("Alt+J"), XO("Label Join") } ),
Command( wxT("DisjoinLabels"), XXO("Detac&h at Silences"),
FN(OnDisjoinLabels), NotBusyLabelsAndWaveFlags,
wxT("Alt+Shift+J") )
)
) // second menu
) ) }; // two menus

View File

@ -758,21 +758,21 @@ MenuTable::BaseItemSharedPtr GenerateMenu()
( FinderScope{ findCommandHandler },
Menu( wxT("Generate"), XO("&Generate"),
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
Section( "",
Command( wxT("ManageGenerators"), XXO("Add / Remove Plug-ins..."),
FN(OnManageGenerators), AudioIONotBusyFlag() )
),
Section( "",
Command( wxT("ManageGenerators"), XXO("Add / Remove Plug-ins..."),
FN(OnManageGenerators), AudioIONotBusyFlag() )
),
#endif
Section( "",
// Delayed evaluation:
[](AudacityProject &)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeGenerate,
AudioIONotBusyFlag(),
AudioIONotBusyFlag())
); }
)
Section( "",
// Delayed evaluation:
[](AudacityProject &)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeGenerate,
AudioIONotBusyFlag(),
AudioIONotBusyFlag())
); }
)
) ) };
return menu;
}
@ -795,42 +795,41 @@ MenuTable::BaseItemSharedPtr EffectMenu()
( FinderScope{ findCommandHandler },
Menu( wxT("Effect"), XO("Effe&ct"),
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
Section( "",
Command( wxT("ManageEffects"), XXO("Add / Remove Plug-ins..."),
FN(OnManageEffects), AudioIONotBusyFlag() )
),
Section( "",
Command( wxT("ManageEffects"), XXO("Add / Remove Plug-ins..."),
FN(OnManageEffects), AudioIONotBusyFlag() )
),
#endif
Section( "",
// Delayed evaluation:
[](AudacityProject &project)
{
const auto &lastEffect = MenuManager::Get(project).mLastEffect;
TranslatableString buildMenuLabel;
if (!lastEffect.empty())
buildMenuLabel = XO("Repeat %s")
.Format( EffectManager::Get().GetCommandName(lastEffect) );
else
buildMenuLabel = XO("Repeat Last Effect");
Section( "",
// Delayed evaluation:
[](AudacityProject &project)
{
const auto &lastEffect = MenuManager::Get(project).mLastEffect;
TranslatableString buildMenuLabel;
if (!lastEffect.empty())
buildMenuLabel = XO("Repeat %s")
.Format( EffectManager::Get().GetCommandName(lastEffect) );
else
buildMenuLabel = XO("Repeat Last Effect");
return Command( wxT("RepeatLastEffect"), buildMenuLabel,
FN(OnRepeatLastEffect),
AudioIONotBusyFlag() | TimeSelectedFlag() |
WaveTracksSelectedFlag() | HasLastEffectFlag(),
wxT("Ctrl+R"), findCommandHandler );
}
),
return Command( wxT("RepeatLastEffect"), buildMenuLabel,
FN(OnRepeatLastEffect),
AudioIONotBusyFlag() | TimeSelectedFlag() |
WaveTracksSelectedFlag() | HasLastEffectFlag(),
wxT("Ctrl+R"), findCommandHandler );
}
),
Section( "",
// Delayed evaluation:
[](AudacityProject &)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeProcess,
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
IsRealtimeNotActiveFlag() )
); }
)
Section( "",
// Delayed evaluation:
[](AudacityProject &)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeProcess,
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
IsRealtimeNotActiveFlag() )
); }
)
) ) };
return menu;
}
@ -846,27 +845,27 @@ MenuTable::BaseItemSharedPtr AnalyzeMenu()
( FinderScope{ findCommandHandler },
Menu( wxT("Analyze"), XO("&Analyze"),
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
Section( "",
Command( wxT("ManageAnalyzers"), XXO("Add / Remove Plug-ins..."),
FN(OnManageAnalyzers), AudioIONotBusyFlag() )
),
Section( "",
Command( wxT("ManageAnalyzers"), XXO("Add / Remove Plug-ins..."),
FN(OnManageAnalyzers), AudioIONotBusyFlag() )
),
#endif
Section( "",
Command( wxT("ContrastAnalyser"), XXO("Contrast..."), FN(OnContrast),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() | TimeSelectedFlag(),
wxT("Ctrl+Shift+T") ),
Command( wxT("PlotSpectrum"), XXO("Plot Spectrum..."), FN(OnPlotSpectrum),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() | TimeSelectedFlag() ),
Section( "",
Command( wxT("ContrastAnalyser"), XXO("Contrast..."), FN(OnContrast),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() | TimeSelectedFlag(),
wxT("Ctrl+Shift+T") ),
Command( wxT("PlotSpectrum"), XXO("Plot Spectrum..."), FN(OnPlotSpectrum),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() | TimeSelectedFlag() ),
// Delayed evaluation:
[](AudacityProject&)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeAnalyze,
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
IsRealtimeNotActiveFlag() )
); }
)
// Delayed evaluation:
[](AudacityProject&)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeAnalyze,
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
IsRealtimeNotActiveFlag() )
); }
)
) ) };
return menu;
}
@ -880,76 +879,76 @@ MenuTable::BaseItemSharedPtr ToolsMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("Tools"), XO("T&ools"),
Section( "",
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
Command( wxT("ManageTools"), XXO("Add / Remove Plug-ins..."),
FN(OnManageTools), AudioIONotBusyFlag() ),
Section( "",
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
Command( wxT("ManageTools"), XXO("Add / Remove Plug-ins..."),
FN(OnManageTools), AudioIONotBusyFlag() ),
//Separator(),
//Separator(),
#endif
#endif
Command( wxT("ManageMacros"), XXO("&Macros..."),
FN(OnManageMacros), AudioIONotBusyFlag() ),
Command( wxT("ManageMacros"), XXO("&Macros..."),
FN(OnManageMacros), AudioIONotBusyFlag() ),
Menu( wxT("Macros"), XO("&Apply Macro"),
// Palette has no access key to ensure first letter navigation of
// sub menu
Section( "",
Command( wxT("ApplyMacrosPalette"), XXO("Palette..."),
FN(OnApplyMacrosPalette), AudioIONotBusyFlag() )
),
Menu( wxT("Macros"), XO("&Apply Macro"),
// Palette has no access key to ensure first letter navigation of
// sub menu
Section( "",
Command( wxT("ApplyMacrosPalette"), XXO("Palette..."),
FN(OnApplyMacrosPalette), AudioIONotBusyFlag() )
),
Section( "",
Section( "",
// Delayed evaluation:
[](AudacityProject&)
{ return Items( wxEmptyString, PopulateMacrosMenu( AudioIONotBusyFlag() ) ); }
)
)
),
Section( "",
Command( wxT("FancyScreenshot"), XXO("&Screenshot..."),
FN(OnScreenshot), AudioIONotBusyFlag() ),
// PRL: team consensus for 2.2.0 was, we let end users have this diagnostic,
// as they used to in 1.3.x
//#ifdef IS_ALPHA
// TODO: What should we do here? Make benchmark a plug-in?
// Easy enough to do. We'd call it mod-self-test.
Command( wxT("Benchmark"), XXO("&Run Benchmark..."),
FN(OnBenchmark), AudioIONotBusyFlag() )
//#endif
),
Section( "",
// Delayed evaluation:
[](AudacityProject&)
{ return Items( wxEmptyString, PopulateMacrosMenu( AudioIONotBusyFlag() ) ); }
)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeTool,
AudioIONotBusyFlag(),
AudioIONotBusyFlag() )
); }
)
),
Section( "",
Command( wxT("FancyScreenshot"), XXO("&Screenshot..."),
FN(OnScreenshot), AudioIONotBusyFlag() ),
// PRL: team consensus for 2.2.0 was, we let end users have this diagnostic,
// as they used to in 1.3.x
//#ifdef IS_ALPHA
// TODO: What should we do here? Make benchmark a plug-in?
// Easy enough to do. We'd call it mod-self-test.
Command( wxT("Benchmark"), XXO("&Run Benchmark..."),
FN(OnBenchmark), AudioIONotBusyFlag() )
//#endif
),
Section( "",
// Delayed evaluation:
[](AudacityProject&)
{ return Items( wxEmptyString, PopulateEffectsMenu(
EffectTypeTool,
AudioIONotBusyFlag(),
AudioIONotBusyFlag() )
); }
)
#ifdef IS_ALPHA
,
Section( "",
Command( wxT("SimulateRecordingErrors"),
XXO("Simulate Recording Errors"),
FN(OnSimulateRecordingErrors),
AudioIONotBusyFlag(),
Options{}.CheckTest(
[](AudacityProject&){
return AudioIO::Get()->mSimulateRecordingErrors; } ) ),
Command( wxT("DetectUpstreamDropouts"),
XXO("Detect Upstream Dropouts"),
FN(OnDetectUpstreamDropouts),
AudioIONotBusyFlag(),
Options{}.CheckTest(
[](AudacityProject&){
return AudioIO::Get()->mDetectUpstreamDropouts; } ) )
)
,
Section( "",
Command( wxT("SimulateRecordingErrors"),
XXO("Simulate Recording Errors"),
FN(OnSimulateRecordingErrors),
AudioIONotBusyFlag(),
Options{}.CheckTest(
[](AudacityProject&){
return AudioIO::Get()->mSimulateRecordingErrors; } ) ),
Command( wxT("DetectUpstreamDropouts"),
XXO("Detect Upstream Dropouts"),
FN(OnDetectUpstreamDropouts),
AudioIONotBusyFlag(),
Options{}.CheckTest(
[](AudacityProject&){
return AudioIO::Get()->mDetectUpstreamDropouts; } ) )
)
#endif
) ) };
return menu;

View File

@ -1039,107 +1039,107 @@ MenuTable::BaseItemSharedPtr SelectMenu()
( FinderScope{ findCommandHandler },
/* i18n-hint: (verb) It's an item on a menu. */
Menu( wxT("Select"), XO("&Select"),
Section( "",
Command( wxT("SelectAll"), XXO("&All"), FN(OnSelectAll),
TracksExistFlag(),
Options{ wxT("Ctrl+A"), XO("Select All") } ),
Command( wxT("SelectNone"), XXO("&None"), FN(OnSelectNone),
TracksExistFlag(),
Options{ wxT("Ctrl+Shift+A"), XO("Select None") } ),
//////////////////////////////////////////////////////////////////////////
Menu( wxT("Tracks"), XO("&Tracks"),
Command( wxT("SelAllTracks"), XXO("In All &Tracks"),
FN(OnSelectAllTracks),
Section( "",
Command( wxT("SelectAll"), XXO("&All"), FN(OnSelectAll),
TracksExistFlag(),
wxT("Ctrl+Shift+K") )
Options{ wxT("Ctrl+A"), XO("Select All") } ),
Command( wxT("SelectNone"), XXO("&None"), FN(OnSelectNone),
TracksExistFlag(),
Options{ wxT("Ctrl+Shift+A"), XO("Select None") } ),
#ifdef EXPERIMENTAL_SYNC_LOCK
,
Command( wxT("SelSyncLockTracks"), XXO("In All &Sync-Locked Tracks"),
FN(OnSelectSyncLockSel),
TracksSelectedFlag() | IsSyncLockedFlag(),
Options{ wxT("Ctrl+Shift+Y"), XO("Select Sync-Locked") } )
#endif
//////////////////////////////////////////////////////////////////////////
Menu( wxT("Tracks"), XO("&Tracks"),
Command( wxT("SelAllTracks"), XXO("In All &Tracks"),
FN(OnSelectAllTracks),
TracksExistFlag(),
wxT("Ctrl+Shift+K") )
#ifdef EXPERIMENTAL_SYNC_LOCK
,
Command( wxT("SelSyncLockTracks"), XXO("In All &Sync-Locked Tracks"),
FN(OnSelectSyncLockSel),
TracksSelectedFlag() | IsSyncLockedFlag(),
Options{ wxT("Ctrl+Shift+Y"), XO("Select Sync-Locked") } )
#endif
),
//////////////////////////////////////////////////////////////////////////
Menu( wxT("Region"), XO("R&egion"),
Section( "",
Command( wxT("SetLeftSelection"), XXO("&Left at Playback Position"),
FN(OnSetLeftSelection), TracksExistFlag(),
Options{ wxT("["), XO("Set Selection Left at Play Position") } ),
Command( wxT("SetRightSelection"), XXO("&Right at Playback Position"),
FN(OnSetRightSelection), TracksExistFlag(),
Options{ wxT("]"), XO("Set Selection Right at Play Position") } ),
Command( wxT("SelTrackStartToCursor"), XXO("Track &Start to Cursor"),
FN(OnSelectStartCursor), AlwaysEnabledFlag,
Options{ wxT("Shift+J"), XO("Select Track Start to Cursor") } ),
Command( wxT("SelCursorToTrackEnd"), XXO("Cursor to Track &End"),
FN(OnSelectCursorEnd), AlwaysEnabledFlag,
Options{ wxT("Shift+K"), XO("Select Cursor to Track End") } ),
Command( wxT("SelTrackStartToEnd"), XXO("Track Start to En&d"),
FN(OnSelectTrackStartToEnd), AlwaysEnabledFlag,
Options{}.LongName( XO("Select Track Start to End") ) )
),
Section( "",
// GA: Audacity had 'Store Re&gion' here previously. There is no
// one-step way to restore the 'Saved Cursor Position' in Select Menu,
// so arguably using the word 'Selection' to do duty for both saving
// the region or the cursor is better. But it does not belong in a
// 'Region' submenu.
Command( wxT("SelSave"), XXO("S&tore Selection"), FN(OnSelectionSave),
WaveTracksSelectedFlag() ),
// Audacity had 'Retrieve Regio&n' here previously.
Command( wxT("SelRestore"), XXO("Retrieve Selectio&n"),
FN(OnSelectionRestore), TracksExistFlag() )
)
),
//////////////////////////////////////////////////////////////////////////
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
Menu( wxT("Spectral"), XO("S&pectral"),
Command( wxT("ToggleSpectralSelection"),
XXO("To&ggle Spectral Selection"), FN(OnToggleSpectralSelection),
TracksExistFlag(), wxT("Q") ),
Command( wxT("NextHigherPeakFrequency"),
XXO("Next &Higher Peak Frequency"), FN(OnNextHigherPeakFrequency),
TracksExistFlag() ),
Command( wxT("NextLowerPeakFrequency"),
XXO("Next &Lower Peak Frequency"), FN(OnNextLowerPeakFrequency),
TracksExistFlag() )
),
#endif
//////////////////////////////////////////////////////////////////////////
ClipSelectMenu()
//////////////////////////////////////////////////////////////////////////
),
//////////////////////////////////////////////////////////////////////////
Section( "",
Command( wxT("SelCursorStoredCursor"),
XXO("Cursor to Stored &Cursor Position"),
FN(OnSelectCursorStoredCursor), TracksExistFlag(),
Options{}.LongName( XO("Select Cursor to Stored") ) ),
Menu( wxT("Region"), XO("R&egion"),
Section( "",
Command( wxT("SetLeftSelection"), XXO("&Left at Playback Position"),
FN(OnSetLeftSelection), TracksExistFlag(),
Options{ wxT("["), XO("Set Selection Left at Play Position") } ),
Command( wxT("SetRightSelection"), XXO("&Right at Playback Position"),
FN(OnSetRightSelection), TracksExistFlag(),
Options{ wxT("]"), XO("Set Selection Right at Play Position") } ),
Command( wxT("SelTrackStartToCursor"), XXO("Track &Start to Cursor"),
FN(OnSelectStartCursor), AlwaysEnabledFlag,
Options{ wxT("Shift+J"), XO("Select Track Start to Cursor") } ),
Command( wxT("SelCursorToTrackEnd"), XXO("Cursor to Track &End"),
FN(OnSelectCursorEnd), AlwaysEnabledFlag,
Options{ wxT("Shift+K"), XO("Select Cursor to Track End") } ),
Command( wxT("SelTrackStartToEnd"), XXO("Track Start to En&d"),
FN(OnSelectTrackStartToEnd), AlwaysEnabledFlag,
Options{}.LongName( XO("Select Track Start to End") ) )
),
Section( "",
// GA: Audacity had 'Store Re&gion' here previously. There is no
// one-step way to restore the 'Saved Cursor Position' in Select Menu,
// so arguably using the word 'Selection' to do duty for both saving
// the region or the cursor is better. But it does not belong in a
// 'Region' submenu.
Command( wxT("SelSave"), XXO("S&tore Selection"), FN(OnSelectionSave),
WaveTracksSelectedFlag() ),
// Audacity had 'Retrieve Regio&n' here previously.
Command( wxT("SelRestore"), XXO("Retrieve Selectio&n"),
FN(OnSelectionRestore), TracksExistFlag() )
)
Command( wxT("StoreCursorPosition"), XXO("Store Cursor Pos&ition"),
FN(OnCursorPositionStore),
WaveTracksExistFlag() )
// Save cursor position is used in some selections.
// Maybe there should be a restore for it?
),
//////////////////////////////////////////////////////////////////////////
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
Menu( wxT("Spectral"), XO("S&pectral"),
Command( wxT("ToggleSpectralSelection"),
XXO("To&ggle Spectral Selection"), FN(OnToggleSpectralSelection),
TracksExistFlag(), wxT("Q") ),
Command( wxT("NextHigherPeakFrequency"),
XXO("Next &Higher Peak Frequency"), FN(OnNextHigherPeakFrequency),
TracksExistFlag() ),
Command( wxT("NextLowerPeakFrequency"),
XXO("Next &Lower Peak Frequency"), FN(OnNextLowerPeakFrequency),
TracksExistFlag() )
),
#endif
//////////////////////////////////////////////////////////////////////////
ClipSelectMenu()
//////////////////////////////////////////////////////////////////////////
),
Section( "",
Command( wxT("SelCursorStoredCursor"),
XXO("Cursor to Stored &Cursor Position"),
FN(OnSelectCursorStoredCursor), TracksExistFlag(),
Options{}.LongName( XO("Select Cursor to Stored") ) ),
Command( wxT("StoreCursorPosition"), XXO("Store Cursor Pos&ition"),
FN(OnCursorPositionStore),
WaveTracksExistFlag() )
// Save cursor position is used in some selections.
// Maybe there should be a restore for it?
),
Section( "",
Command( wxT("ZeroCross"), XXO("At &Zero Crossings"),
FN(OnZeroCrossing), TracksSelectedFlag(),
Options{ wxT("Z"), XO("Select Zero Crossing") } )
)
Section( "",
Command( wxT("ZeroCross"), XXO("At &Zero Crossings"),
FN(OnZeroCrossing), TracksSelectedFlag(),
Options{ wxT("Z"), XO("Select Zero Crossing") } )
)
) ) };
return menu;
}

View File

@ -264,76 +264,76 @@ MenuTable::BaseItemSharedPtr ToolbarsMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("Toolbars"), XO("&Toolbars"),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("ResetToolbars"), XXO("Reset Toolb&ars"),
FN(OnResetToolBars), AlwaysEnabledFlag )
),
Section( "",
/* i18n-hint: (verb)*/
Command( wxT("ResetToolbars"), XXO("Reset Toolb&ars"),
FN(OnResetToolBars), AlwaysEnabledFlag )
),
Section( "",
/* i18n-hint: Clicking this menu item shows the toolbar
with the big buttons on it (play record etc)*/
Command( wxT("ShowTransportTB"), XXO("&Transport Toolbar"),
FN(OnShowTransportToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows a toolbar
that has some tools in it*/
Command( wxT("ShowToolsTB"), XXO("T&ools Toolbar"),
FN(OnShowToolsToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
with the recording level meters*/
Command( wxT("ShowRecordMeterTB"), XXO("&Recording Meter Toolbar"),
FN(OnShowRecordMeterToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
with the playback level meter*/
Command( wxT("ShowPlayMeterTB"), XXO("&Playback Meter Toolbar"),
FN(OnShowPlayMeterToolBar), AlwaysEnabledFlag, checkOff )
Section( "",
/* i18n-hint: Clicking this menu item shows the toolbar
with the big buttons on it (play record etc)*/
Command( wxT("ShowTransportTB"), XXO("&Transport Toolbar"),
FN(OnShowTransportToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows a toolbar
that has some tools in it*/
Command( wxT("ShowToolsTB"), XXO("T&ools Toolbar"),
FN(OnShowToolsToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
with the recording level meters*/
Command( wxT("ShowRecordMeterTB"), XXO("&Recording Meter Toolbar"),
FN(OnShowRecordMeterToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
with the playback level meter*/
Command( wxT("ShowPlayMeterTB"), XXO("&Playback Meter Toolbar"),
FN(OnShowPlayMeterToolBar), AlwaysEnabledFlag, checkOff )
/* --i18nhint: Clicking this menu item shows the toolbar
which has sound level meters*/
//Command( wxT("ShowMeterTB"), XXO("Co&mbined Meter Toolbar"),
// FN(OnShowMeterToolBar), AlwaysEnabledFlag, checkOff ),
/* --i18nhint: Clicking this menu item shows the toolbar
which has sound level meters*/
//Command( wxT("ShowMeterTB"), XXO("Co&mbined Meter Toolbar"),
// FN(OnShowMeterToolBar), AlwaysEnabledFlag, checkOff ),
,
/* i18n-hint: Clicking this menu item shows the toolbar
with the mixer*/
Command( wxT("ShowMixerTB"), XXO("Mi&xer Toolbar"),
FN(OnShowMixerToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar for editing*/
Command( wxT("ShowEditTB"), XXO("&Edit Toolbar"),
FN(OnShowEditToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
for transcription (currently just vary play speed)*/
Command( wxT("ShowTranscriptionTB"), XXO("Pla&y-at-Speed Toolbar"),
FN(OnShowTranscriptionToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
that enables Scrub or Seek playback and Scrub Ruler*/
Command( wxT("ShowScrubbingTB"), XXO("Scru&b Toolbar"),
FN(OnShowScrubbingToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
that manages devices*/
Command( wxT("ShowDeviceTB"), XXO("&Device Toolbar"),
FN(OnShowDeviceToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
for selecting a time range of audio*/
Command( wxT("ShowSelectionTB"), XXO("&Selection Toolbar"),
FN(OnShowSelectionToolBar), AlwaysEnabledFlag, checkOff )
#ifdef EXPERIMENTAL_TIMER_TOOLBAR
,
/* i18n-hint: Clicking this menu item shows the toolbar
with the mixer*/
Command( wxT("ShowMixerTB"), XXO("Mi&xer Toolbar"),
FN(OnShowMixerToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar for editing*/
Command( wxT("ShowEditTB"), XXO("&Edit Toolbar"),
FN(OnShowEditToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
for transcription (currently just vary play speed)*/
Command( wxT("ShowTranscriptionTB"), XXO("Pla&y-at-Speed Toolbar"),
FN(OnShowTranscriptionToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
that enables Scrub or Seek playback and Scrub Ruler*/
Command( wxT("ShowScrubbingTB"), XXO("Scru&b Toolbar"),
FN(OnShowScrubbingToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
that manages devices*/
Command( wxT("ShowDeviceTB"), XXO("&Device Toolbar"),
FN(OnShowDeviceToolBar), AlwaysEnabledFlag, checkOff ),
/* i18n-hint: Clicking this menu item shows the toolbar
for selecting a time range of audio*/
Command( wxT("ShowSelectionTB"), XXO("&Selection Toolbar"),
FN(OnShowSelectionToolBar), AlwaysEnabledFlag, checkOff )
#ifdef EXPERIMENTAL_TIMER_TOOLBAR
,
/* i18n-hint: Clicking this menu item shows the toolbar
for viewing actual time of the cursor*/
Command( wxT("ShowTimerToolBarTB"), XXO("&Timer Toolbar"),
FN(OnShowTimerToolBar), AlwaysEnabledFlag, checkOff )
#endif
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
,
Command( wxT("ShowSpectralSelectionTB"),
/* i18n-hint: Clicking this menu item shows the toolbar
for selecting a frequency range of audio*/
XXO("Spe&ctral Selection Toolbar"),
FN(OnShowSpectralSelectionToolBar), AlwaysEnabledFlag, checkOff )
#endif
)
/* i18n-hint: Clicking this menu item shows the toolbar
for viewing actual time of the cursor*/
Command( wxT("ShowTimerToolBarTB"), XXO("&Timer Toolbar"),
FN(OnShowTimerToolBar), AlwaysEnabledFlag, checkOff )
#endif
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
,
Command( wxT("ShowSpectralSelectionTB"),
/* i18n-hint: Clicking this menu item shows the toolbar
for selecting a frequency range of audio*/
XXO("Spe&ctral Selection Toolbar"),
FN(OnShowSpectralSelectionToolBar), AlwaysEnabledFlag, checkOff )
#endif
)
) ) };
return menu;
}

View File

@ -1287,149 +1287,149 @@ MenuTable::BaseItemSharedPtr TracksMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("Tracks"), XO("&Tracks"),
Section( "",
Menu( wxT("Add"), XO("Add &New"),
Command( wxT("NewMonoTrack"), XXO("&Mono Track"), FN(OnNewWaveTrack),
AudioIONotBusyFlag(), wxT("Ctrl+Shift+N") ),
Command( wxT("NewStereoTrack"), XXO("&Stereo Track"),
FN(OnNewStereoTrack), AudioIONotBusyFlag() ),
Command( wxT("NewLabelTrack"), XXO("&Label Track"),
FN(OnNewLabelTrack), AudioIONotBusyFlag() ),
Command( wxT("NewTimeTrack"), XXO("&Time Track"),
FN(OnNewTimeTrack), AudioIONotBusyFlag() )
)
),
Section( "",
Menu( wxT("Add"), XO("Add &New"),
Command( wxT("NewMonoTrack"), XXO("&Mono Track"), FN(OnNewWaveTrack),
AudioIONotBusyFlag(), wxT("Ctrl+Shift+N") ),
Command( wxT("NewStereoTrack"), XXO("&Stereo Track"),
FN(OnNewStereoTrack), AudioIONotBusyFlag() ),
Command( wxT("NewLabelTrack"), XXO("&Label Track"),
FN(OnNewLabelTrack), AudioIONotBusyFlag() ),
Command( wxT("NewTimeTrack"), XXO("&Time Track"),
FN(OnNewTimeTrack), AudioIONotBusyFlag() )
)
),
//////////////////////////////////////////////////////////////////////////
Section( "",
Menu( wxT("Mix"), XO("Mi&x"),
// Delayed evaluation
// Stereo to Mono is an oddball command that is also subject to control
// by the plug-in manager, as if an effect. Decide whether to show or
// hide it.
[](AudacityProject&) -> BaseItemPtr {
const PluginID ID =
EffectManager::Get().GetEffectByIdentifier(wxT("StereoToMono"));
const PluginDescriptor *plug = PluginManager::Get().GetPlugin(ID);
if (plug && plug->IsEnabled())
return Command( wxT("Stereo to Mono"),
XXO("Mix Stereo Down to &Mono"), FN(OnStereoToMono),
AudioIONotBusyFlag() | StereoRequiredFlag() |
WaveTracksSelectedFlag(), Options{}, findCommandHandler );
else
return {};
},
Command( wxT("MixAndRender"), XXO("Mi&x and Render"),
FN(OnMixAndRender),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() ),
Command( wxT("MixAndRenderToNewTrack"),
XXO("Mix and Render to Ne&w Track"),
FN(OnMixAndRenderToNewTrack),
AudioIONotBusyFlag() | WaveTracksSelectedFlag(), wxT("Ctrl+Shift+M") )
),
Command( wxT("Resample"), XXO("&Resample..."), FN(OnResample),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() )
),
Section( "",
Command( wxT("RemoveTracks"), XXO("Remo&ve Tracks"), FN(OnRemoveTracks),
AudioIONotBusyFlag() | AnyTracksSelectedFlag() )
),
Section( "",
Menu( wxT("Mute"), XO("M&ute/Unmute"),
Command( wxT("MuteAllTracks"), XXO("&Mute All Tracks"),
FN(OnMuteAllTracks), AudioIONotBusyFlag(), wxT("Ctrl+U") ),
Command( wxT("UnmuteAllTracks"), XXO("&Unmute All Tracks"),
FN(OnUnmuteAllTracks), AudioIONotBusyFlag(), wxT("Ctrl+Shift+U") )
),
Menu( wxT("Pan"), XO("&Pan"),
// As Pan changes are not saved on Undo stack,
// pan settings for all tracks
// in the project could very easily be lost unless we
// require the tracks to be selected.
Command( wxT("PanLeft"), XXO("&Left"), FN(OnPanLeft),
TracksSelectedFlag(),
Options{}.LongName( XO("Pan Left") ) ),
Command( wxT("PanRight"), XXO("&Right"), FN(OnPanRight),
TracksSelectedFlag(),
Options{}.LongName( XO("Pan Right") ) ),
Command( wxT("PanCenter"), XXO("&Center"), FN(OnPanCenter),
TracksSelectedFlag(),
Options{}.LongName( XO("Pan Center") ) )
)
),
Section( "",
Menu( wxT("Align"), XO("&Align Tracks"), // XO("Just Move Tracks"),
Section( "",
// Mutual alignment of tracks independent of selection or zero
CommandGroup(wxT("Align"),
{
{ wxT("EndToEnd"), XO("&Align End to End") },
{ wxT("Together"), XO("Align &Together") },
Section( "",
Menu( wxT("Mix"), XO("Mi&x"),
// Delayed evaluation
// Stereo to Mono is an oddball command that is also subject to control
// by the plug-in manager, as if an effect. Decide whether to show or
// hide it.
[](AudacityProject&) -> BaseItemPtr {
const PluginID ID =
EffectManager::Get().GetEffectByIdentifier(wxT("StereoToMono"));
const PluginDescriptor *plug = PluginManager::Get().GetPlugin(ID);
if (plug && plug->IsEnabled())
return Command( wxT("Stereo to Mono"),
XXO("Mix Stereo Down to &Mono"), FN(OnStereoToMono),
AudioIONotBusyFlag() | StereoRequiredFlag() |
WaveTracksSelectedFlag(), Options{}, findCommandHandler );
else
return {};
},
FN(OnAlignNoSync), AudioIONotBusyFlag() | TracksSelectedFlag())
),
Command( wxT("MixAndRender"), XXO("Mi&x and Render"),
FN(OnMixAndRender),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() ),
Command( wxT("MixAndRenderToNewTrack"),
XXO("Mix and Render to Ne&w Track"),
FN(OnMixAndRenderToNewTrack),
AudioIONotBusyFlag() | WaveTracksSelectedFlag(), wxT("Ctrl+Shift+M") )
),
Section( "",
// Alignment commands using selection or zero
CommandGroup(wxT("Align"),
alignLabels(),
FN(OnAlign), AudioIONotBusyFlag() | TracksSelectedFlag())
),
Section( "",
Command( wxT("MoveSelectionWithTracks"),
XXO("&Move Selection with Tracks (on/off)"),
FN(OnMoveSelectionWithTracks),
AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/MoveSelectionWithTracks"), false ) )
)
Command( wxT("Resample"), XXO("&Resample..."), FN(OnResample),
AudioIONotBusyFlag() | WaveTracksSelectedFlag() )
),
#if 0
// TODO: Can these labels be made clearer?
// Do we need this sub-menu at all?
Menu( wxT("MoveSelectionAndTracks"), XO("Move Sele&ction and Tracks"), {
CommandGroup(wxT("AlignMove"), alignLabels(),
FN(OnAlignMoveSel), AudioIONotBusyFlag() | TracksSelectedFlag()),
} ),
#endif
Section( "",
Command( wxT("RemoveTracks"), XXO("Remo&ve Tracks"), FN(OnRemoveTracks),
AudioIONotBusyFlag() | AnyTracksSelectedFlag() )
),
//////////////////////////////////////////////////////////////////////////
Section( "",
Menu( wxT("Mute"), XO("M&ute/Unmute"),
Command( wxT("MuteAllTracks"), XXO("&Mute All Tracks"),
FN(OnMuteAllTracks), AudioIONotBusyFlag(), wxT("Ctrl+U") ),
Command( wxT("UnmuteAllTracks"), XXO("&Unmute All Tracks"),
FN(OnUnmuteAllTracks), AudioIONotBusyFlag(), wxT("Ctrl+Shift+U") )
),
#ifdef EXPERIMENTAL_SCOREALIGN
Command( wxT("ScoreAlign"), XXO("Synchronize MIDI with Audio"),
FN(OnScoreAlign),
AudioIONotBusyFlag() | NoteTracksSelectedFlag() | WaveTracksSelectedFlag() ),
#endif // EXPERIMENTAL_SCOREALIGN
Menu( wxT("Pan"), XO("&Pan"),
// As Pan changes are not saved on Undo stack,
// pan settings for all tracks
// in the project could very easily be lost unless we
// require the tracks to be selected.
Command( wxT("PanLeft"), XXO("&Left"), FN(OnPanLeft),
TracksSelectedFlag(),
Options{}.LongName( XO("Pan Left") ) ),
Command( wxT("PanRight"), XXO("&Right"), FN(OnPanRight),
TracksSelectedFlag(),
Options{}.LongName( XO("Pan Right") ) ),
Command( wxT("PanCenter"), XXO("&Center"), FN(OnPanCenter),
TracksSelectedFlag(),
Options{}.LongName( XO("Pan Center") ) )
)
),
//////////////////////////////////////////////////////////////////////////
Section( "",
Menu( wxT("Align"), XO("&Align Tracks"), // XO("Just Move Tracks"),
Section( "",
// Mutual alignment of tracks independent of selection or zero
CommandGroup(wxT("Align"),
{
{ wxT("EndToEnd"), XO("&Align End to End") },
{ wxT("Together"), XO("Align &Together") },
},
FN(OnAlignNoSync), AudioIONotBusyFlag() | TracksSelectedFlag())
),
Menu( wxT("Sort"), XO("S&ort Tracks"),
Command( wxT("SortByTime"), XXO("By &Start Time"), FN(OnSortTime),
TracksExistFlag(),
Options{}.LongName( XO("Sort by Time") ) ),
Command( wxT("SortByName"), XXO("By &Name"), FN(OnSortName),
TracksExistFlag(),
Options{}.LongName( XO("Sort by Name") ) )
Section( "",
// Alignment commands using selection or zero
CommandGroup(wxT("Align"),
alignLabels(),
FN(OnAlign), AudioIONotBusyFlag() | TracksSelectedFlag())
),
Section( "",
Command( wxT("MoveSelectionWithTracks"),
XXO("&Move Selection with Tracks (on/off)"),
FN(OnMoveSelectionWithTracks),
AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/MoveSelectionWithTracks"), false ) )
)
),
#if 0
// TODO: Can these labels be made clearer?
// Do we need this sub-menu at all?
Menu( wxT("MoveSelectionAndTracks"), XO("Move Sele&ction and Tracks"), {
CommandGroup(wxT("AlignMove"), alignLabels(),
FN(OnAlignMoveSel), AudioIONotBusyFlag() | TracksSelectedFlag()),
} ),
#endif
//////////////////////////////////////////////////////////////////////////
#ifdef EXPERIMENTAL_SCOREALIGN
Command( wxT("ScoreAlign"), XXO("Synchronize MIDI with Audio"),
FN(OnScoreAlign),
AudioIONotBusyFlag() | NoteTracksSelectedFlag() | WaveTracksSelectedFlag() ),
#endif // EXPERIMENTAL_SCOREALIGN
//////////////////////////////////////////////////////////////////////////
Menu( wxT("Sort"), XO("S&ort Tracks"),
Command( wxT("SortByTime"), XXO("By &Start Time"), FN(OnSortTime),
TracksExistFlag(),
Options{}.LongName( XO("Sort by Time") ) ),
Command( wxT("SortByName"), XXO("By &Name"), FN(OnSortName),
TracksExistFlag(),
Options{}.LongName( XO("Sort by Name") ) )
)
//////////////////////////////////////////////////////////////////////////
)
//////////////////////////////////////////////////////////////////////////
)
#ifdef EXPERIMENTAL_SYNC_LOCK
,
,
Section( "",
Command( wxT("SyncLock"), XXO("Sync-&Lock Tracks (on/off)"),
FN(OnSyncLock), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/SyncLockTracks"), false ) )
)
Section( "",
Command( wxT("SyncLock"), XXO("Sync-&Lock Tracks (on/off)"),
FN(OnSyncLock), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/SyncLockTracks"), false ) )
)
#endif

View File

@ -986,114 +986,114 @@ MenuTable::BaseItemSharedPtr TransportMenu()
/* i18n-hint: 'Transport' is the name given to the set of controls that
play, record, pause etc. */
Menu( wxT("Transport"), XO("Tra&nsport"),
Section( "",
Menu( wxT("Play"), XO("Pl&aying"),
/* i18n-hint: (verb) Start or Stop audio playback*/
Command( wxT("PlayStop"), XXO("Pl&ay/Stop"), FN(OnPlayStop),
CanStopAudioStreamFlag(), wxT("Space") ),
Command( wxT("PlayStopSelect"), XXO("Play/Stop and &Set Cursor"),
FN(OnPlayStopSelect), CanStopAudioStreamFlag(), wxT("X") ),
Command( wxT("PlayLooped"), XXO("&Loop Play"), FN(OnPlayLooped),
CanStopAudioStreamFlag(), wxT("Shift+Space") ),
Command( wxT("Pause"), XXO("&Pause"), FN(OnPause),
CanStopAudioStreamFlag(), wxT("P") )
Section( "",
Menu( wxT("Play"), XO("Pl&aying"),
/* i18n-hint: (verb) Start or Stop audio playback*/
Command( wxT("PlayStop"), XXO("Pl&ay/Stop"), FN(OnPlayStop),
CanStopAudioStreamFlag(), wxT("Space") ),
Command( wxT("PlayStopSelect"), XXO("Play/Stop and &Set Cursor"),
FN(OnPlayStopSelect), CanStopAudioStreamFlag(), wxT("X") ),
Command( wxT("PlayLooped"), XXO("&Loop Play"), FN(OnPlayLooped),
CanStopAudioStreamFlag(), wxT("Shift+Space") ),
Command( wxT("Pause"), XXO("&Pause"), FN(OnPause),
CanStopAudioStreamFlag(), wxT("P") )
),
Menu( wxT("Record"), XO("&Recording"),
/* i18n-hint: (verb)*/
Command( wxT("Record1stChoice"), XXO("&Record"), FN(OnRecord),
CanStopFlags, wxT("R") ),
// The OnRecord2ndChoice function is: if normal record records beside,
// it records below, if normal record records below, it records beside.
// TODO: Do 'the right thing' with other options like TimerRecord.
// Delayed evaluation in case gPrefs is not yet defined
[](const AudacityProject&)
{ return Command( wxT("Record2ndChoice"),
// Our first choice is bound to R (by default)
// and gets the prime position.
// We supply the name for the 'other one' here.
// It should be bound to Shift+R
(gPrefs->ReadBool("/GUI/PreferNewTrackRecord", false)
? XO("&Append Record") : XO("Record &New Track")),
FN(OnRecord2ndChoice), CanStopFlags,
wxT("Shift+R"),
findCommandHandler
); },
Command( wxT("TimerRecord"), XXO("&Timer Record..."),
FN(OnTimerRecord), CanStopFlags, wxT("Shift+T") ),
#ifdef EXPERIMENTAL_PUNCH_AND_ROLL
Command( wxT("PunchAndRoll"), XXO("Punch and Rol&l Record"),
FN(OnPunchAndRoll),
WaveTracksExistFlag() | AudioIONotBusyFlag(), wxT("Shift+D") ),
#endif
// JKC: I decided to duplicate this between play and record,
// rather than put it at the top level.
// CommandManger::AddItem can now cope with simple duplicated items.
// PRL: caution, this is a duplicated command name!
Command( wxT("Pause"), XXO("&Pause"), FN(OnPause),
CanStopAudioStreamFlag(), wxT("P") )
),
// Scrubbing sub-menu
Scrubber::Menu(),
CursorMenu()
),
Menu( wxT("Record"), XO("&Recording"),
/* i18n-hint: (verb)*/
Command( wxT("Record1stChoice"), XXO("&Record"), FN(OnRecord),
CanStopFlags, wxT("R") ),
// The OnRecord2ndChoice function is: if normal record records beside,
// it records below, if normal record records below, it records beside.
// TODO: Do 'the right thing' with other options like TimerRecord.
// Delayed evaluation in case gPrefs is not yet defined
[](const AudacityProject&)
{ return Command( wxT("Record2ndChoice"),
// Our first choice is bound to R (by default)
// and gets the prime position.
// We supply the name for the 'other one' here.
// It should be bound to Shift+R
(gPrefs->ReadBool("/GUI/PreferNewTrackRecord", false)
? XO("&Append Record") : XO("Record &New Track")),
FN(OnRecord2ndChoice), CanStopFlags,
wxT("Shift+R"),
findCommandHandler
); },
Command( wxT("TimerRecord"), XXO("&Timer Record..."),
FN(OnTimerRecord), CanStopFlags, wxT("Shift+T") ),
#ifdef EXPERIMENTAL_PUNCH_AND_ROLL
Command( wxT("PunchAndRoll"), XXO("Punch and Rol&l Record"),
FN(OnPunchAndRoll),
WaveTracksExistFlag() | AudioIONotBusyFlag(), wxT("Shift+D") ),
#endif
// JKC: I decided to duplicate this between play and record,
// rather than put it at the top level.
// CommandManger::AddItem can now cope with simple duplicated items.
// PRL: caution, this is a duplicated command name!
Command( wxT("Pause"), XXO("&Pause"), FN(OnPause),
CanStopAudioStreamFlag(), wxT("P") )
Section( "",
Menu( wxT("PlayRegion"), XO("Pla&y Region"),
Command( wxT("LockPlayRegion"), XXO("&Lock"), FN(OnLockPlayRegion),
PlayRegionNotLockedFlag() ),
Command( wxT("UnlockPlayRegion"), XXO("&Unlock"),
FN(OnUnlockPlayRegion), PlayRegionLockedFlag() )
)
),
// Scrubbing sub-menu
Scrubber::Menu(),
Section( "",
Command( wxT("RescanDevices"), XXO("R&escan Audio Devices"),
FN(OnRescanDevices), AudioIONotBusyFlag() | CanStopAudioStreamFlag() ),
CursorMenu()
),
Menu( wxT("Options"), XO("Transport &Options"),
Section( "",
// Sound Activated recording options
Command( wxT("SoundActivationLevel"),
XXO("Sound Activation Le&vel..."), FN(OnSoundActivated),
AudioIONotBusyFlag() | CanStopAudioStreamFlag() ),
Command( wxT("SoundActivation"),
XXO("Sound A&ctivated Recording (on/off)"),
FN(OnToggleSoundActivated),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
),
Section( "",
Menu( wxT("PlayRegion"), XO("Pla&y Region"),
Command( wxT("LockPlayRegion"), XXO("&Lock"), FN(OnLockPlayRegion),
PlayRegionNotLockedFlag() ),
Command( wxT("UnlockPlayRegion"), XXO("&Unlock"),
FN(OnUnlockPlayRegion), PlayRegionLockedFlag() )
Section( "",
Command( wxT("PinnedHead"), XXO("Pinned Play/Record &Head (on/off)"),
FN(OnTogglePinnedHead),
// Switching of scrolling on and off is permitted
// even during transport
AlwaysEnabledFlag, checkOff ),
Command( wxT("Overdub"), XXO("&Overdub (on/off)"),
FN(OnTogglePlayRecording),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOn ),
Command( wxT("SWPlaythrough"), XXO("So&ftware Playthrough (on/off)"),
FN(OnToggleSWPlaythrough),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
#ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
,
Command( wxT("AutomatedInputLevelAdjustmentOnOff"),
XXO("A&utomated Recording Level Adjustment (on/off)"),
FN(OnToggleAutomatedInputLevelAdjustment),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
#endif
)
)
)
),
Section( "",
Command( wxT("RescanDevices"), XXO("R&escan Audio Devices"),
FN(OnRescanDevices), AudioIONotBusyFlag() | CanStopAudioStreamFlag() ),
Menu( wxT("Options"), XO("Transport &Options"),
Section( "",
// Sound Activated recording options
Command( wxT("SoundActivationLevel"),
XXO("Sound Activation Le&vel..."), FN(OnSoundActivated),
AudioIONotBusyFlag() | CanStopAudioStreamFlag() ),
Command( wxT("SoundActivation"),
XXO("Sound A&ctivated Recording (on/off)"),
FN(OnToggleSoundActivated),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
),
Section( "",
Command( wxT("PinnedHead"), XXO("Pinned Play/Record &Head (on/off)"),
FN(OnTogglePinnedHead),
// Switching of scrolling on and off is permitted
// even during transport
AlwaysEnabledFlag, checkOff ),
Command( wxT("Overdub"), XXO("&Overdub (on/off)"),
FN(OnTogglePlayRecording),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOn ),
Command( wxT("SWPlaythrough"), XXO("So&ftware Playthrough (on/off)"),
FN(OnToggleSWPlaythrough),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
#ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
,
Command( wxT("AutomatedInputLevelAdjustmentOnOff"),
XXO("A&utomated Recording Level Adjustment (on/off)"),
FN(OnToggleAutomatedInputLevelAdjustment),
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
#endif
)
)
)
) ) };
return menu;
}

View File

@ -445,115 +445,115 @@ MenuTable::BaseItemSharedPtr ViewMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("View"), XO("&View"),
Section( "",
Menu( wxT("Zoom"), XO("&Zoom"),
Section( "",
Command( wxT("ZoomIn"), XXO("Zoom &In"), FN(OnZoomIn),
ZoomInAvailableFlag(), wxT("Ctrl+1") ),
Command( wxT("ZoomNormal"), XXO("Zoom &Normal"), FN(OnZoomNormal),
TracksExistFlag(), wxT("Ctrl+2") ),
Command( wxT("ZoomOut"), XXO("Zoom &Out"), FN(OnZoomOut),
ZoomOutAvailableFlag(), wxT("Ctrl+3") ),
Command( wxT("ZoomSel"), XXO("&Zoom to Selection"), FN(OnZoomSel),
TimeSelectedFlag(), wxT("Ctrl+E") ),
Command( wxT("ZoomToggle"), XXO("Zoom &Toggle"), FN(OnZoomToggle),
TracksExistFlag(), wxT("Shift+Z") )
),
Section( "",
Command( wxT("AdvancedVZoom"), XXO("Advanced &Vertical Zooming"),
FN(OnAdvancedVZoom), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/VerticalZooming"), false ) )
)
Section( "",
Menu( wxT("Zoom"), XO("&Zoom"),
Section( "",
Command( wxT("ZoomIn"), XXO("Zoom &In"), FN(OnZoomIn),
ZoomInAvailableFlag(), wxT("Ctrl+1") ),
Command( wxT("ZoomNormal"), XXO("Zoom &Normal"), FN(OnZoomNormal),
TracksExistFlag(), wxT("Ctrl+2") ),
Command( wxT("ZoomOut"), XXO("Zoom &Out"), FN(OnZoomOut),
ZoomOutAvailableFlag(), wxT("Ctrl+3") ),
Command( wxT("ZoomSel"), XXO("&Zoom to Selection"), FN(OnZoomSel),
TimeSelectedFlag(), wxT("Ctrl+E") ),
Command( wxT("ZoomToggle"), XXO("Zoom &Toggle"), FN(OnZoomToggle),
TracksExistFlag(), wxT("Shift+Z") )
),
Section( "",
Command( wxT("AdvancedVZoom"), XXO("Advanced &Vertical Zooming"),
FN(OnAdvancedVZoom), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/VerticalZooming"), false ) )
)
),
Menu( wxT("TrackSize"), XO("T&rack Size"),
Command( wxT("FitInWindow"), XXO("&Fit to Width"), FN(OnZoomFit),
TracksExistFlag(), wxT("Ctrl+F") ),
Command( wxT("FitV"), XXO("Fit to &Height"), FN(OnZoomFitV),
TracksExistFlag(), wxT("Ctrl+Shift+F") ),
Command( wxT("CollapseAllTracks"), XXO("&Collapse All Tracks"),
FN(OnCollapseAllTracks), TracksExistFlag(), wxT("Ctrl+Shift+C") ),
Command( wxT("ExpandAllTracks"), XXO("E&xpand Collapsed Tracks"),
FN(OnExpandAllTracks), TracksExistFlag(), wxT("Ctrl+Shift+X") )
),
Menu( wxT("SkipTo"), XO("Sk&ip to"),
Command( wxT("SkipSelStart"), XXO("Selection Sta&rt"),
FN(OnGoSelStart), TimeSelectedFlag(),
Options{ wxT("Ctrl+["), XO("Skip to Selection Start") } ),
Command( wxT("SkipSelEnd"), XXO("Selection En&d"), FN(OnGoSelEnd),
TimeSelectedFlag(),
Options{ wxT("Ctrl+]"), XO("Skip to Selection End") } )
)
),
Menu( wxT("TrackSize"), XO("T&rack Size"),
Command( wxT("FitInWindow"), XXO("&Fit to Width"), FN(OnZoomFit),
TracksExistFlag(), wxT("Ctrl+F") ),
Command( wxT("FitV"), XXO("Fit to &Height"), FN(OnZoomFitV),
TracksExistFlag(), wxT("Ctrl+Shift+F") ),
Command( wxT("CollapseAllTracks"), XXO("&Collapse All Tracks"),
FN(OnCollapseAllTracks), TracksExistFlag(), wxT("Ctrl+Shift+C") ),
Command( wxT("ExpandAllTracks"), XXO("E&xpand Collapsed Tracks"),
FN(OnExpandAllTracks), TracksExistFlag(), wxT("Ctrl+Shift+X") )
Section( "",
// History window should be available either for UndoAvailableFlag
// or RedoAvailableFlag,
// but we can't make the AddItem flags and mask have both,
// because they'd both have to be true for the
// command to be enabled.
// If user has Undone the entire stack, RedoAvailableFlag is on
// but UndoAvailableFlag is off.
// If user has done things but not Undone anything,
// RedoAvailableFlag is off but UndoAvailableFlag is on.
// So in either of those cases,
// (AudioIONotBusyFlag | UndoAvailableFlag | RedoAvailableFlag) mask
// would fail.
// The only way to fix this in the current architecture
// is to hack in special cases for RedoAvailableFlag
// in AudacityProject::UpdateMenus() (ugly)
// and CommandManager::HandleCommandEntry() (*really* ugly --
// shouldn't know about particular command names and flags).
// Here's the hack that would be necessary in
// AudacityProject::UpdateMenus(), if somebody decides to do it:
// // Because EnableUsingFlags requires all the flag bits match the
// // corresponding mask bits,
// // "UndoHistory" specifies only
// // AudioIONotBusyFlag | UndoAvailableFlag, because that
// // covers the majority of cases where it should be enabled.
// // If history is not empty but we've Undone the whole stack,
// // we also want to enable,
// // to show the Redo's on stack.
// // "UndoHistory" might already be enabled,
// // but add this check for RedoAvailableFlag.
// if (flags & RedoAvailableFlag)
// GetCommandManager()->Enable(wxT("UndoHistory"), true);
// So for now, enable the command regardless of stack.
// It will just show empty sometimes.
// FOR REDESIGN,
// clearly there are some limitations with the flags/mask bitmaps.
/* i18n-hint: Clicking this menu item shows the various editing steps
that have been taken.*/
Command( wxT("UndoHistory"), XXO("&History..."), FN(OnHistory),
AudioIONotBusyFlag() ),
Command( wxT("Karaoke"), XXO("&Karaoke..."), FN(OnKaraoke),
LabelTracksExistFlag() ),
Command( wxT("MixerBoard"), XXO("&Mixer Board..."), FN(OnMixerBoard),
PlayableTracksExistFlag() )
),
Menu( wxT("SkipTo"), XO("Sk&ip to"),
Command( wxT("SkipSelStart"), XXO("Selection Sta&rt"),
FN(OnGoSelStart), TimeSelectedFlag(),
Options{ wxT("Ctrl+["), XO("Skip to Selection Start") } ),
Command( wxT("SkipSelEnd"), XXO("Selection En&d"), FN(OnGoSelEnd),
TimeSelectedFlag(),
Options{ wxT("Ctrl+]"), XO("Skip to Selection End") } )
Section( "",
//////////////////////////////////////////////////////////////////////////
ToolbarsMenu()
),
Section( "",
Command( wxT("ShowExtraMenus"), XXO("&Extra Menus (on/off)"),
FN(OnShowExtraMenus), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/ShowExtraMenus"), false ) ),
Command( wxT("ShowClipping"), XXO("&Show Clipping (on/off)"),
FN(OnShowClipping), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/ShowClipping"), false ) )
#if defined(EXPERIMENTAL_EFFECTS_RACK)
,
Command( wxT("ShowEffectsRack"), XXO("Show Effects Rack"),
FN(OnShowEffectsRack), AlwaysEnabledFlag, checkOff )
#endif
)
),
Section( "",
// History window should be available either for UndoAvailableFlag
// or RedoAvailableFlag,
// but we can't make the AddItem flags and mask have both,
// because they'd both have to be true for the
// command to be enabled.
// If user has Undone the entire stack, RedoAvailableFlag is on
// but UndoAvailableFlag is off.
// If user has done things but not Undone anything,
// RedoAvailableFlag is off but UndoAvailableFlag is on.
// So in either of those cases,
// (AudioIONotBusyFlag | UndoAvailableFlag | RedoAvailableFlag) mask
// would fail.
// The only way to fix this in the current architecture
// is to hack in special cases for RedoAvailableFlag
// in AudacityProject::UpdateMenus() (ugly)
// and CommandManager::HandleCommandEntry() (*really* ugly --
// shouldn't know about particular command names and flags).
// Here's the hack that would be necessary in
// AudacityProject::UpdateMenus(), if somebody decides to do it:
// // Because EnableUsingFlags requires all the flag bits match the
// // corresponding mask bits,
// // "UndoHistory" specifies only
// // AudioIONotBusyFlag | UndoAvailableFlag, because that
// // covers the majority of cases where it should be enabled.
// // If history is not empty but we've Undone the whole stack,
// // we also want to enable,
// // to show the Redo's on stack.
// // "UndoHistory" might already be enabled,
// // but add this check for RedoAvailableFlag.
// if (flags & RedoAvailableFlag)
// GetCommandManager()->Enable(wxT("UndoHistory"), true);
// So for now, enable the command regardless of stack.
// It will just show empty sometimes.
// FOR REDESIGN,
// clearly there are some limitations with the flags/mask bitmaps.
/* i18n-hint: Clicking this menu item shows the various editing steps
that have been taken.*/
Command( wxT("UndoHistory"), XXO("&History..."), FN(OnHistory),
AudioIONotBusyFlag() ),
Command( wxT("Karaoke"), XXO("&Karaoke..."), FN(OnKaraoke),
LabelTracksExistFlag() ),
Command( wxT("MixerBoard"), XXO("&Mixer Board..."), FN(OnMixerBoard),
PlayableTracksExistFlag() )
),
Section( "",
//////////////////////////////////////////////////////////////////////////
ToolbarsMenu()
),
Section( "",
Command( wxT("ShowExtraMenus"), XXO("&Extra Menus (on/off)"),
FN(OnShowExtraMenus), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/ShowExtraMenus"), false ) ),
Command( wxT("ShowClipping"), XXO("&Show Clipping (on/off)"),
FN(OnShowClipping), AlwaysEnabledFlag,
Options{}.CheckTest( wxT("/GUI/ShowClipping"), false ) )
#if defined(EXPERIMENTAL_EFFECTS_RACK)
,
Command( wxT("ShowEffectsRack"), XXO("Show Effects Rack"),
FN(OnShowEffectsRack), AlwaysEnabledFlag, checkOff )
#endif
)
) ) };
return menu;

View File

@ -128,23 +128,23 @@ MenuTable::BaseItemSharedPtr WindowMenu()
static BaseItemSharedPtr menu{
( FinderScope{ findCommandHandler },
Menu( wxT("Window"), XO("&Window"),
Section( "",
/* i18n-hint: Standard Macintosh Window menu item: Make (the current
* window) shrink to an icon on the dock */
Command( wxT("MacMinimize"), XXO("&Minimize"), FN(OnMacMinimize),
NotMinimizedFlag(), wxT("Ctrl+M") ),
/* i18n-hint: Standard Macintosh Window menu item: Make (the current
* window) full sized */
Command( wxT("MacZoom"), XXO("&Zoom"),
FN(OnMacZoom), NotMinimizedFlag() )
),
Section( "",
/* i18n-hint: Standard Macintosh Window menu item: Make (the current
* window) shrink to an icon on the dock */
Command( wxT("MacMinimize"), XXO("&Minimize"), FN(OnMacMinimize),
NotMinimizedFlag(), wxT("Ctrl+M") ),
/* i18n-hint: Standard Macintosh Window menu item: Make (the current
* window) full sized */
Command( wxT("MacZoom"), XXO("&Zoom"),
FN(OnMacZoom), NotMinimizedFlag() )
),
Section( "",
/* i18n-hint: Standard Macintosh Window menu item: Make all project
* windows un-hidden */
Command( wxT("MacBringAllToFront"), XXO("&Bring All to Front"),
FN(OnMacBringAllToFront), AlwaysEnabledFlag )
)
Section( "",
/* i18n-hint: Standard Macintosh Window menu item: Make all project
* windows un-hidden */
Command( wxT("MacBringAllToFront"), XXO("&Bring All to Front"),
FN(OnMacBringAllToFront), AlwaysEnabledFlag )
)
) ) };
return menu;
}