mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-30 07:39:42 +02:00
Fix other problems since commit f6e5696...
... Problem with static initialization order of ReservedCommandFlags, caused wrong enablement of menu items (at least on Mac), such as Plot Spectrum or Contrast enabled when there was no selection
This commit is contained in:
parent
3c9cd7925a
commit
9093364b8c
@ -164,12 +164,12 @@ int ModuleDispatch(ModuleDispatchTypes type)
|
||||
_T("A New Command"), // internal name
|
||||
XO("1st Experimental Command..."), //displayed name
|
||||
ident, ModNullFN( OnFuncFirst ),
|
||||
AudioIONotBusyFlag );
|
||||
AudioIONotBusyFlag() );
|
||||
c->AddItem( *p,
|
||||
_T("Another New Command"),
|
||||
XO("2nd Experimental Command"),
|
||||
ident, ModNullFN( OnFuncSecond ),
|
||||
AudioIONotBusyFlag );
|
||||
AudioIONotBusyFlag() );
|
||||
c->ClearCurrentMenu();
|
||||
}
|
||||
break;
|
||||
|
@ -199,7 +199,7 @@ extern "C"
|
||||
XO("&Nyquist Workbench..."),
|
||||
findme,
|
||||
static_cast<CommandFunctorPointer>(&NyqBench::ShowNyqBench),
|
||||
AudioIONotBusyFlag);
|
||||
AudioIONotBusyFlag());
|
||||
|
||||
c->ClearCurrentMenu();
|
||||
}
|
||||
|
@ -117,7 +117,6 @@ const CommandFlagOptions noiseReductionOptions{
|
||||
};
|
||||
|
||||
|
||||
const ReservedCommandFlag
|
||||
// The sequence of these definitions has a minor significance in determining
|
||||
// which user error message has precedence if more than one might apply, so
|
||||
// they should be kept in this sequence in one .cpp file if it is important
|
||||
@ -125,7 +124,8 @@ const ReservedCommandFlag
|
||||
// then the precedence will be unspecified.
|
||||
// The ordering of the flags that only disable the default message is not
|
||||
// significant.
|
||||
AudioIONotBusyFlag{
|
||||
const ReservedCommandFlag&
|
||||
AudioIONotBusyFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project ){
|
||||
return !AudioIOBusyPred( project );
|
||||
},
|
||||
@ -135,8 +135,9 @@ const ReservedCommandFlag
|
||||
} ,"FAQ:Errors:Audio Must Be Stopped"}
|
||||
.QuickTest()
|
||||
.Priority( 1 )
|
||||
}, //lll
|
||||
StereoRequiredFlag{
|
||||
}; return flag; }//lll
|
||||
const ReservedCommandFlag&
|
||||
StereoRequiredFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
// True iff at least one stereo track is selected, i.e., at least
|
||||
// one right channel is selected.
|
||||
@ -149,44 +150,51 @@ const ReservedCommandFlag
|
||||
// This reason will not be shown, because the stereo-to-mono is greyed out if not allowed.
|
||||
XO("You must first select some stereo audio to perform this\naction. (You cannot use this with mono.)");
|
||||
} ,"Audacity_Selection"}
|
||||
}, //lda
|
||||
NoiseReductionTimeSelectedFlag{
|
||||
}; return flag; } //lda
|
||||
const ReservedCommandFlag&
|
||||
NoiseReductionTimeSelectedFlag() { static ReservedCommandFlag flag{
|
||||
TimeSelectedPred,
|
||||
noiseReductionOptions
|
||||
},
|
||||
TimeSelectedFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
TimeSelectedFlag() { static ReservedCommandFlag flag{
|
||||
TimeSelectedPred,
|
||||
cutCopyOptions()
|
||||
},
|
||||
WaveTracksSelectedFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
WaveTracksSelectedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Selected<const WaveTrack>().empty();
|
||||
},
|
||||
{ []( const TranslatableString& ) { return
|
||||
XO("You must first select some audio to perform this action.\n(Selecting other kinds of track won't work.)");
|
||||
} ,"Audacity_Selection"}
|
||||
},
|
||||
TracksExistFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
TracksExistFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Any().empty();
|
||||
},
|
||||
CommandFlagOptions{}.DisableDefaultMessage()
|
||||
},
|
||||
TracksSelectedFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
TracksSelectedFlag() { static ReservedCommandFlag flag{
|
||||
TracksSelectedPred, // exclude TimeTracks
|
||||
{ []( const TranslatableString &Name ){ return
|
||||
// i18n-hint: %s will be replaced by the name of an action, such as "Remove Tracks".
|
||||
XO("\"%s\" requires one or more tracks to be selected.").Format( Name );
|
||||
},"Audacity_Selection" }
|
||||
},
|
||||
AnyTracksSelectedFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
AnyTracksSelectedFlag() { static ReservedCommandFlag flag{
|
||||
AnyTracksSelectedPred, // Allow TimeTracks
|
||||
{ []( const TranslatableString &Name ){ return
|
||||
// i18n-hint: %s will be replaced by the name of an action, such as "Remove Tracks".
|
||||
XO("\"%s\" requires one or more tracks to be selected.").Format( Name );
|
||||
},"Audacity_Selection" }
|
||||
},
|
||||
TrackPanelHasFocus{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
TrackPanelHasFocus() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
for (auto w = wxWindow::FindFocus(); w; w = w->GetParent()) {
|
||||
if (dynamic_cast<const NonKeystrokeInterceptingWindow*>(w))
|
||||
@ -195,14 +203,15 @@ const ReservedCommandFlag
|
||||
return false;
|
||||
},
|
||||
CommandFlagOptions{}.DisableDefaultMessage()
|
||||
}; //lll
|
||||
}; return flag; }; //lll
|
||||
|
||||
const ReservedCommandFlag
|
||||
AudioIOBusyFlag{
|
||||
const ReservedCommandFlag&
|
||||
AudioIOBusyFlag() { static ReservedCommandFlag flag{
|
||||
AudioIOBusyPred,
|
||||
CommandFlagOptions{}.QuickTest()
|
||||
}, //lll
|
||||
CaptureNotBusyFlag{
|
||||
}; return flag; } //lll
|
||||
const ReservedCommandFlag&
|
||||
CaptureNotBusyFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &){
|
||||
auto gAudioIO = AudioIO::Get();
|
||||
return !(
|
||||
@ -210,15 +219,16 @@ const ReservedCommandFlag
|
||||
gAudioIO->GetNumCaptureChannels() > 0
|
||||
);
|
||||
}
|
||||
};
|
||||
}; return flag; };
|
||||
|
||||
const ReservedCommandFlag
|
||||
LabelTracksExistFlag{
|
||||
const ReservedCommandFlag&
|
||||
LabelTracksExistFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Any<const LabelTrack>().empty();
|
||||
}
|
||||
},
|
||||
UnsavedChangesFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
UnsavedChangesFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
auto &undoManager = UndoManager::Get( project );
|
||||
return
|
||||
@ -227,23 +237,27 @@ const ReservedCommandFlag
|
||||
!ProjectFileIO::Get( project ).IsProjectSaved()
|
||||
;
|
||||
}
|
||||
},
|
||||
HasLastEffectFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
HasLastEffectFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !MenuManager::Get( project ).mLastEffect.empty();
|
||||
}
|
||||
},
|
||||
UndoAvailableFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
UndoAvailableFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return ProjectHistory::Get( project ).UndoAvailable();
|
||||
}
|
||||
},
|
||||
RedoAvailableFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
RedoAvailableFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return ProjectHistory::Get( project ).RedoAvailable();
|
||||
}
|
||||
},
|
||||
ZoomInAvailableFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
ZoomInAvailableFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return
|
||||
ViewInfo::Get( project ).ZoomInAvailable()
|
||||
@ -251,8 +265,9 @@ const ReservedCommandFlag
|
||||
!TrackList::Get( project ).Any().empty()
|
||||
;
|
||||
}
|
||||
},
|
||||
ZoomOutAvailableFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
ZoomOutAvailableFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return
|
||||
ViewInfo::Get( project ).ZoomOutAvailable()
|
||||
@ -260,8 +275,9 @@ const ReservedCommandFlag
|
||||
!TrackList::Get( project ).Any().empty()
|
||||
;
|
||||
}
|
||||
},
|
||||
LabelsSelectedFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
LabelsSelectedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
// At least one label track selected, having at least one label
|
||||
// completely within the time selection.
|
||||
@ -282,46 +298,54 @@ const ReservedCommandFlag
|
||||
+ test;
|
||||
return !range.empty();
|
||||
}
|
||||
},
|
||||
PlayRegionLockedFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
PlayRegionLockedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return ViewInfo::Get(project).playRegion.Locked();
|
||||
}
|
||||
}, //msmeyer
|
||||
PlayRegionNotLockedFlag{
|
||||
}; return flag; } //msmeyer
|
||||
const ReservedCommandFlag&
|
||||
PlayRegionNotLockedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
const auto &playRegion = ViewInfo::Get(project).playRegion;
|
||||
return !playRegion.Locked() && !playRegion.Empty();
|
||||
}
|
||||
}, //msmeyer
|
||||
WaveTracksExistFlag{
|
||||
}; return flag; } //msmeyer
|
||||
const ReservedCommandFlag&
|
||||
WaveTracksExistFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Any<const WaveTrack>().empty();
|
||||
}
|
||||
},
|
||||
}; return flag; }
|
||||
#ifdef USE_MIDI
|
||||
NoteTracksExistFlag{
|
||||
const ReservedCommandFlag&
|
||||
NoteTracksExistFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Any<const NoteTrack>().empty();
|
||||
}
|
||||
}, //gsw
|
||||
NoteTracksSelectedFlag{
|
||||
}; return flag; } //gsw
|
||||
const ReservedCommandFlag&
|
||||
NoteTracksSelectedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Selected<const NoteTrack>().empty();
|
||||
}
|
||||
}, //gsw
|
||||
}; return flag; } //gsw
|
||||
#endif
|
||||
IsNotSyncLockedFlag{
|
||||
const ReservedCommandFlag&
|
||||
IsNotSyncLockedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return !ProjectSettings::Get( project ).IsSyncLocked();
|
||||
}
|
||||
}, //awd
|
||||
IsSyncLockedFlag{
|
||||
}; return flag; } //awd
|
||||
const ReservedCommandFlag&
|
||||
IsSyncLockedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
return ProjectSettings::Get( project ).IsSyncLocked();
|
||||
}
|
||||
}, //awd
|
||||
NotMinimizedFlag{
|
||||
}; return flag; } //awd
|
||||
const ReservedCommandFlag&
|
||||
NotMinimizedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
const wxWindow *focus = FindProjectFrame( &project );
|
||||
if (focus) {
|
||||
@ -333,14 +357,16 @@ const ReservedCommandFlag
|
||||
);
|
||||
},
|
||||
CommandFlagOptions{}.QuickTest()
|
||||
}, // prl
|
||||
PausedFlag{
|
||||
}; return flag; } // prl
|
||||
const ReservedCommandFlag&
|
||||
PausedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject&){
|
||||
return AudioIOBase::Get()->IsPaused();
|
||||
},
|
||||
CommandFlagOptions{}.QuickTest()
|
||||
},
|
||||
PlayableTracksExistFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
PlayableTracksExistFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
auto &tracks = TrackList::Get( project );
|
||||
return
|
||||
@ -351,8 +377,9 @@ const ReservedCommandFlag
|
||||
!tracks.Any<const WaveTrack>().empty()
|
||||
;
|
||||
}
|
||||
},
|
||||
AudioTracksSelectedFlag{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
AudioTracksSelectedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
auto &tracks = TrackList::Get( project );
|
||||
return
|
||||
@ -364,8 +391,10 @@ const ReservedCommandFlag
|
||||
!tracks.Selected<const WaveTrack>().empty()
|
||||
;
|
||||
}
|
||||
},
|
||||
NoAutoSelect{
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
NoAutoSelect() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &){ return true; }
|
||||
} // jkc
|
||||
}; return flag; } // jkc
|
||||
;
|
||||
|
||||
|
@ -21,41 +21,41 @@ bool TimeSelectedPred( const AudacityProject &project );
|
||||
extern const CommandFlagOptions &cutCopyOptions();
|
||||
|
||||
extern AUDACITY_DLL_API const ReservedCommandFlag
|
||||
AudioIONotBusyFlag,
|
||||
StereoRequiredFlag, //lda
|
||||
NoiseReductionTimeSelectedFlag,
|
||||
TimeSelectedFlag, // This is equivalent to check if there is a valid selection, so it's used for Zoom to Selection too
|
||||
WaveTracksSelectedFlag,
|
||||
TracksExistFlag,
|
||||
TracksSelectedFlag,
|
||||
AnyTracksSelectedFlag,
|
||||
TrackPanelHasFocus; //lll
|
||||
&AudioIONotBusyFlag(),
|
||||
&StereoRequiredFlag(), //lda
|
||||
&NoiseReductionTimeSelectedFlag(),
|
||||
&TimeSelectedFlag(), // This is equivalent to check if there is a valid selection, so it's used for Zoom to Selection too
|
||||
&WaveTracksSelectedFlag(),
|
||||
&TracksExistFlag(),
|
||||
&TracksSelectedFlag(),
|
||||
&AnyTracksSelectedFlag(),
|
||||
&TrackPanelHasFocus(); //lll
|
||||
|
||||
extern AUDACITY_DLL_API const ReservedCommandFlag
|
||||
AudioIOBusyFlag, // lll
|
||||
CaptureNotBusyFlag;
|
||||
&AudioIOBusyFlag(), // lll
|
||||
&CaptureNotBusyFlag();
|
||||
|
||||
extern AUDACITY_DLL_API const ReservedCommandFlag
|
||||
LabelTracksExistFlag,
|
||||
UnsavedChangesFlag,
|
||||
HasLastEffectFlag,
|
||||
UndoAvailableFlag,
|
||||
RedoAvailableFlag,
|
||||
ZoomInAvailableFlag,
|
||||
ZoomOutAvailableFlag,
|
||||
LabelsSelectedFlag,
|
||||
PlayRegionLockedFlag, //msmeyer
|
||||
PlayRegionNotLockedFlag, //msmeyer
|
||||
WaveTracksExistFlag,
|
||||
NoteTracksExistFlag, //gsw
|
||||
NoteTracksSelectedFlag, //gsw
|
||||
IsNotSyncLockedFlag, //awd
|
||||
IsSyncLockedFlag, //awd
|
||||
NotMinimizedFlag, // prl
|
||||
PausedFlag, // jkc
|
||||
PlayableTracksExistFlag,
|
||||
AudioTracksSelectedFlag,
|
||||
NoAutoSelect // jkc
|
||||
&LabelTracksExistFlag(),
|
||||
&UnsavedChangesFlag(),
|
||||
&HasLastEffectFlag(),
|
||||
&UndoAvailableFlag(),
|
||||
&RedoAvailableFlag(),
|
||||
&ZoomInAvailableFlag(),
|
||||
&ZoomOutAvailableFlag(),
|
||||
&LabelsSelectedFlag(),
|
||||
&PlayRegionLockedFlag(), //msmeyer
|
||||
&PlayRegionNotLockedFlag(), //msmeyer
|
||||
&WaveTracksExistFlag(),
|
||||
&NoteTracksExistFlag(), //gsw
|
||||
&NoteTracksSelectedFlag(), //gsw
|
||||
&IsNotSyncLockedFlag(), //awd
|
||||
&IsSyncLockedFlag(), //awd
|
||||
&NotMinimizedFlag(), // prl
|
||||
&PausedFlag(), // jkc
|
||||
&PlayableTracksExistFlag(),
|
||||
&AudioTracksSelectedFlag(),
|
||||
&NoAutoSelect() // jkc
|
||||
;
|
||||
|
||||
#endif
|
||||
|
@ -538,7 +538,7 @@ bool ProjectAudioManager::DoRecord(AudacityProject &project,
|
||||
// NB: The call may have the side effect of changing flags.
|
||||
bool allowed = MenuManager::Get(project).TryToMakeActionAllowed(
|
||||
flags,
|
||||
AudioIONotBusyFlag | CanStopAudioStreamFlag);
|
||||
AudioIONotBusyFlag() | CanStopAudioStreamFlag());
|
||||
|
||||
if (!allowed)
|
||||
return false;
|
||||
@ -939,14 +939,14 @@ bool ProjectAudioManager::CanStopAudioStream() const
|
||||
gAudioIO->GetOwningProject() == &mProject );
|
||||
}
|
||||
|
||||
const ReservedCommandFlag
|
||||
CanStopAudioStreamFlag{
|
||||
const ReservedCommandFlag&
|
||||
CanStopAudioStreamFlag(){ static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
auto &projectAudioManager = ProjectAudioManager::Get( project );
|
||||
bool canStop = projectAudioManager.CanStopAudioStream();
|
||||
return canStop;
|
||||
}
|
||||
};
|
||||
}; return flag; }
|
||||
|
||||
AudioIOStartStreamOptions
|
||||
DefaultPlayOptions( AudacityProject &project )
|
||||
@ -1091,8 +1091,8 @@ void ProjectAudioManager::DoPlayStopSelect()
|
||||
#include "CommonCommandFlags.h"
|
||||
|
||||
static RegisteredMenuItemEnabler stopIfPaused{{
|
||||
[]{ return PausedFlag; },
|
||||
[]{ return AudioIONotBusyFlag; },
|
||||
[]{ return PausedFlag(); },
|
||||
[]{ return AudioIONotBusyFlag(); },
|
||||
[]( const AudacityProject &project ){
|
||||
return MenuManager::Get( project ).mStopIfWasPaused; },
|
||||
[]( AudacityProject &project, CommandFlag ){
|
||||
|
@ -164,6 +164,6 @@ AudioIOStartStreamOptions DefaultSpeedPlayOptions( AudacityProject &project );
|
||||
#include "commands/CommandFlag.h"
|
||||
|
||||
extern const ReservedCommandFlag
|
||||
CanStopAudioStreamFlag;
|
||||
&CanStopAudioStreamFlag();
|
||||
|
||||
#endif
|
||||
|
@ -85,7 +85,7 @@ void SelectAllIfNone( AudacityProject &project )
|
||||
{
|
||||
auto &viewInfo = ViewInfo::Get( project );
|
||||
auto flags = MenuManager::Get( project ).GetUpdateFlags();
|
||||
if((flags & TracksSelectedFlag).none() ||
|
||||
if((flags & TracksSelectedFlag()).none() ||
|
||||
viewInfo.selectedRegion.isPoint())
|
||||
DoSelectAllAudio( project );
|
||||
}
|
||||
|
@ -1155,7 +1155,7 @@ void EffectUIHost::OnApply(wxCommandEvent & evt)
|
||||
MenuManager::Get( project ).ReportIfActionNotAllowed(
|
||||
mEffect->GetName(),
|
||||
flags,
|
||||
WaveTracksSelectedFlag | TimeSelectedFlag);
|
||||
WaveTracksSelectedFlag() | TimeSelectedFlag());
|
||||
if (!allowed)
|
||||
return;
|
||||
}
|
||||
|
@ -835,16 +835,16 @@ MenuTable::BaseItemSharedPtr ClipSelectMenu()
|
||||
Command( wxT("SelPrevClipBoundaryToCursor"),
|
||||
XXO("Pre&vious Clip Boundary to Cursor"),
|
||||
FN(OnSelectPrevClipBoundaryToCursor),
|
||||
WaveTracksExistFlag ),
|
||||
WaveTracksExistFlag() ),
|
||||
Command( wxT("SelCursorToNextClipBoundary"),
|
||||
XXO("Cursor to Ne&xt Clip Boundary"),
|
||||
FN(OnSelectCursorToNextClipBoundary),
|
||||
WaveTracksExistFlag ),
|
||||
WaveTracksExistFlag() ),
|
||||
Command( wxT("SelPrevClip"), XXO("Previo&us Clip"),
|
||||
FN(OnSelectPrevClip), WaveTracksExistFlag,
|
||||
FN(OnSelectPrevClip), WaveTracksExistFlag(),
|
||||
Options{ wxT("Alt+,"), XO("Select Previous Clip") } ),
|
||||
Command( wxT("SelNextClip"), XXO("N&ext Clip"), FN(OnSelectNextClip),
|
||||
WaveTracksExistFlag,
|
||||
WaveTracksExistFlag(),
|
||||
Options{ wxT("Alt+."), XO("Select Next Clip") } )
|
||||
) ) };
|
||||
return menu;
|
||||
@ -861,11 +861,11 @@ MenuTable::BaseItemSharedPtr ClipCursorItems()
|
||||
Items( wxT("Clip"),
|
||||
Command( wxT("CursPrevClipBoundary"), XXO("Pre&vious Clip Boundary"),
|
||||
FN(OnCursorPrevClipBoundary),
|
||||
WaveTracksExistFlag,
|
||||
WaveTracksExistFlag(),
|
||||
Options{}.LongName( XO("Cursor to Prev Clip Boundary") ) ),
|
||||
Command( wxT("CursNextClipBoundary"), XXO("Ne&xt Clip Boundary"),
|
||||
FN(OnCursorNextClipBoundary),
|
||||
WaveTracksExistFlag,
|
||||
WaveTracksExistFlag(),
|
||||
Options{}.LongName( XO("Cursor to Next Clip Boundary") ) )
|
||||
) ) };
|
||||
return items;
|
||||
@ -880,9 +880,9 @@ MenuTable::BaseItemSharedPtr ExtraClipCursorItems()
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
Items( wxT("Clip"),
|
||||
Command( wxT("ClipLeft"), XXO("Clip L&eft"), FN(OnClipLeft),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT("\twantKeyup") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT("\twantKeyup") ),
|
||||
Command( wxT("ClipRight"), XXO("Clip Rig&ht"), FN(OnClipRight),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT("\twantKeyup") )
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT("\twantKeyup") )
|
||||
) ) };
|
||||
return items;
|
||||
}
|
||||
|
@ -1000,7 +1000,7 @@ static CommandHandlerObject &findCommandHandler(AudacityProject &) {
|
||||
MenuTable::BaseItemSharedPtr LabelEditMenus();
|
||||
|
||||
const ReservedCommandFlag
|
||||
CutCopyAvailableFlag{
|
||||
CutCopyAvailableFlag {
|
||||
[](const AudacityProject &project){
|
||||
auto range = TrackList::Get( project ).Any<const LabelTrack>()
|
||||
+ [&](const LabelTrack *pTrack){
|
||||
@ -1031,7 +1031,7 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
using Options = CommandManager::Options;
|
||||
|
||||
static const auto NotBusyTimeAndTracksFlags =
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | TracksSelectedFlag;
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | TracksSelectedFlag();
|
||||
|
||||
// The default shortcut key for Redo is different on different platforms.
|
||||
static constexpr auto redoKey =
|
||||
@ -1056,10 +1056,10 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
Menu( wxT("Edit"), XO("&Edit"),
|
||||
Command( wxT("Undo"), XXO("&Undo"), FN(OnUndo),
|
||||
AudioIONotBusyFlag | UndoAvailableFlag, wxT("Ctrl+Z") ),
|
||||
AudioIONotBusyFlag() | UndoAvailableFlag(), wxT("Ctrl+Z") ),
|
||||
|
||||
Command( wxT("Redo"), XXO("&Redo"), FN(OnRedo),
|
||||
AudioIONotBusyFlag | RedoAvailableFlag, redoKey ),
|
||||
AudioIONotBusyFlag() | RedoAvailableFlag(), redoKey ),
|
||||
|
||||
Special( wxT("UndoItemsUpdateStep"),
|
||||
[](AudacityProject &project, wxMenu&) {
|
||||
@ -1072,17 +1072,17 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
// Basic Edit commands
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Cut"), XXO("Cu&t"), FN(OnCut),
|
||||
AudioIONotBusyFlag | CutCopyAvailableFlag | NoAutoSelect,
|
||||
AudioIONotBusyFlag() | CutCopyAvailableFlag | NoAutoSelect(),
|
||||
wxT("Ctrl+X") ),
|
||||
Command( wxT("Delete"), XXO("&Delete"), FN(OnDelete),
|
||||
AudioIONotBusyFlag | TracksSelectedFlag | TimeSelectedFlag | NoAutoSelect,
|
||||
AudioIONotBusyFlag() | TracksSelectedFlag() | TimeSelectedFlag() | NoAutoSelect(),
|
||||
wxT("Ctrl+K") ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Copy"), XXO("&Copy"), FN(OnCopy),
|
||||
AudioIONotBusyFlag | CutCopyAvailableFlag, wxT("Ctrl+C") ),
|
||||
AudioIONotBusyFlag() | CutCopyAvailableFlag, wxT("Ctrl+C") ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Paste"), XXO("&Paste"), FN(OnPaste),
|
||||
AudioIONotBusyFlag, wxT("Ctrl+V") ),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+V") ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Duplicate"), XXO("Duplic&ate"), FN(OnDuplicate),
|
||||
NotBusyTimeAndTracksFlags, wxT("Ctrl+D") ),
|
||||
@ -1103,11 +1103,11 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Silence"), XXO("Silence Audi&o"), FN(OnSilence),
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
wxT("Ctrl+L") ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Trim"), XXO("Tri&m Audio"), FN(OnTrim),
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
Options{ wxT("Ctrl+T") }.UseStrictFlags() )
|
||||
),
|
||||
|
||||
@ -1118,10 +1118,10 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
Menu( wxT("Clip"), XO("Clip B&oundaries"),
|
||||
/* i18n-hint: (verb) It's an item on a menu. */
|
||||
Command( wxT("Split"), XXO("Sp&lit"), FN(OnSplit),
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag() | WaveTracksSelectedFlag(),
|
||||
Options{ wxT("Ctrl+I") }.UseStrictFlags() ),
|
||||
Command( wxT("SplitNew"), XXO("Split Ne&w"), FN(OnSplitNew),
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
Options{ wxT("Ctrl+Alt+I") }.UseStrictFlags() ),
|
||||
|
||||
Separator(),
|
||||
@ -1138,7 +1138,7 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
LabelEditMenus(),
|
||||
|
||||
Command( wxT("EditMetaData"), XXO("&Metadata..."), FN(OnEditMetadata),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -1147,7 +1147,7 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
#endif
|
||||
|
||||
Command( wxT("Preferences"), XXO("Pre&ferences..."), FN(OnPreferences),
|
||||
AudioIONotBusyFlag, prefKey )
|
||||
AudioIONotBusyFlag(), prefKey )
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
@ -1158,15 +1158,15 @@ MenuTable::BaseItemSharedPtr ExtraEditMenu()
|
||||
using namespace MenuTable;
|
||||
using Options = CommandManager::Options;
|
||||
static const auto flags =
|
||||
AudioIONotBusyFlag | TracksSelectedFlag | TimeSelectedFlag;
|
||||
AudioIONotBusyFlag() | TracksSelectedFlag() | TimeSelectedFlag();
|
||||
static BaseItemSharedPtr menu{
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
Menu( wxT("Edit"), XO("&Edit"),
|
||||
Command( wxT("DeleteKey"), XXO("&Delete Key"), FN(OnDelete),
|
||||
(flags | NoAutoSelect),
|
||||
(flags | NoAutoSelect()),
|
||||
wxT("Backspace") ),
|
||||
Command( wxT("DeleteKey2"), XXO("Delete Key&2"), FN(OnDelete),
|
||||
(flags | NoAutoSelect),
|
||||
(flags | NoAutoSelect()),
|
||||
wxT("Delete") )
|
||||
) ) };
|
||||
return menu;
|
||||
@ -1176,36 +1176,36 @@ auto canSelectAll = [](const AudacityProject &project){
|
||||
return MenuManager::Get( project ).mWhatIfNoSelection != 0; };
|
||||
auto selectAll = []( AudacityProject &project, CommandFlag flagsRqd ){
|
||||
if ( MenuManager::Get( project ).mWhatIfNoSelection == 1 &&
|
||||
(flagsRqd & NoAutoSelect).none() )
|
||||
(flagsRqd & NoAutoSelect()).none() )
|
||||
SelectUtilities::DoSelectAllAudio(project);
|
||||
};
|
||||
|
||||
RegisteredMenuItemEnabler selectTracks{{
|
||||
[]{ return TracksExistFlag; },
|
||||
[]{ return TracksSelectedFlag; },
|
||||
[]{ return TracksExistFlag(); },
|
||||
[]{ return TracksSelectedFlag(); },
|
||||
canSelectAll,
|
||||
selectAll
|
||||
}};
|
||||
|
||||
// Including time tracks.
|
||||
RegisteredMenuItemEnabler selectAnyTracks{{
|
||||
[]{ return TracksExistFlag; },
|
||||
[]{ return AnyTracksSelectedFlag; },
|
||||
[]{ return TracksExistFlag(); },
|
||||
[]{ return AnyTracksSelectedFlag(); },
|
||||
canSelectAll,
|
||||
selectAll
|
||||
}};
|
||||
|
||||
RegisteredMenuItemEnabler selectWaveTracks{{
|
||||
[]{ return WaveTracksExistFlag; },
|
||||
[]{ return TimeSelectedFlag | WaveTracksSelectedFlag | CutCopyAvailableFlag; },
|
||||
[]{ return WaveTracksExistFlag(); },
|
||||
[]{ return TimeSelectedFlag() | WaveTracksSelectedFlag() | CutCopyAvailableFlag; },
|
||||
canSelectAll,
|
||||
selectAll
|
||||
}};
|
||||
|
||||
// Also enable select for the noise reduction case.
|
||||
RegisteredMenuItemEnabler selectWaveTracks2{{
|
||||
[]{ return WaveTracksExistFlag; },
|
||||
[]{ return NoiseReductionTimeSelectedFlag | WaveTracksSelectedFlag | CutCopyAvailableFlag; },
|
||||
[]{ return WaveTracksExistFlag(); },
|
||||
[]{ return NoiseReductionTimeSelectedFlag() | WaveTracksSelectedFlag() | CutCopyAvailableFlag; },
|
||||
canSelectAll,
|
||||
selectAll
|
||||
}};
|
||||
|
@ -226,15 +226,15 @@ MenuTable::BaseItemSharedPtr ExtraDeviceMenu()
|
||||
Menu( wxT("Device"), XO("De&vice"),
|
||||
Command( wxT("InputDevice"), XXO("Change &Recording Device..."),
|
||||
FN(OnInputDevice),
|
||||
AudioIONotBusyFlag, wxT("Shift+I") ),
|
||||
AudioIONotBusyFlag(), wxT("Shift+I") ),
|
||||
Command( wxT("OutputDevice"), XXO("Change &Playback Device..."),
|
||||
FN(OnOutputDevice),
|
||||
AudioIONotBusyFlag, wxT("Shift+O") ),
|
||||
AudioIONotBusyFlag(), wxT("Shift+O") ),
|
||||
Command( wxT("AudioHost"), XXO("Change Audio &Host..."), FN(OnAudioHost),
|
||||
AudioIONotBusyFlag, wxT("Shift+H") ),
|
||||
AudioIONotBusyFlag(), wxT("Shift+H") ),
|
||||
Command( wxT("InputChannels"), XXO("Change Recording Cha&nnels..."),
|
||||
FN(OnInputChannels),
|
||||
AudioIONotBusyFlag, wxT("Shift+N") )
|
||||
AudioIONotBusyFlag(), wxT("Shift+N") )
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
|
@ -562,11 +562,11 @@ MenuTable::BaseItemSharedPtr FileMenu()
|
||||
Menu( wxT("File"), XO("&File"),
|
||||
/*i18n-hint: "New" is an action (verb) to create a NEW project*/
|
||||
Command( wxT("New"), XXO("&New"), FN(OnNew),
|
||||
AudioIONotBusyFlag, wxT("Ctrl+N") ),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+N") ),
|
||||
|
||||
/*i18n-hint: (verb)*/
|
||||
Command( wxT("Open"), XXO("&Open..."), FN(OnOpen),
|
||||
AudioIONotBusyFlag, wxT("Ctrl+O") ),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+O") ),
|
||||
|
||||
#ifdef EXPERIMENTAL_RESET
|
||||
// Empty the current project and forget its name and path. DANGEROUS
|
||||
@ -574,7 +574,7 @@ MenuTable::BaseItemSharedPtr FileMenu()
|
||||
// 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 ),
|
||||
AudioIONotBusyFlag() ),
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@ -614,23 +614,23 @@ MenuTable::BaseItemSharedPtr FileMenu()
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Command( wxT("Close"), XXO("&Close"), FN(OnClose),
|
||||
AudioIONotBusyFlag, wxT("Ctrl+W") ),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+W") ),
|
||||
|
||||
Separator(),
|
||||
|
||||
Menu( wxT("Save"), XO("&Save Project"),
|
||||
Command( wxT("Save"), XXO("&Save Project"), FN(OnSave),
|
||||
AudioIONotBusyFlag | UnsavedChangesFlag, wxT("Ctrl+S") ),
|
||||
AudioIONotBusyFlag() | UnsavedChangesFlag(), wxT("Ctrl+S") ),
|
||||
Command( wxT("SaveAs"), XXO("Save Project &As..."), FN(OnSaveAs),
|
||||
AudioIONotBusyFlag ),
|
||||
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 )
|
||||
FN(OnSaveCopy), AudioIONotBusyFlag() )
|
||||
#ifdef USE_LIBVORBIS
|
||||
,
|
||||
Command( wxT("SaveCompressed"),
|
||||
XXO("&Save Compressed Copy of Project..."),
|
||||
FN(OnSaveCompressed), AudioIONotBusyFlag )
|
||||
FN(OnSaveCompressed), AudioIONotBusyFlag() )
|
||||
#endif
|
||||
),
|
||||
|
||||
@ -639,48 +639,48 @@ MenuTable::BaseItemSharedPtr FileMenu()
|
||||
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 ),
|
||||
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
|
||||
|
||||
Command( wxT("ExportWav"), XXO("Export as &WAV"), FN(OnExportWav),
|
||||
AudioIONotBusyFlag | WaveTracksExistFlag ),
|
||||
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
|
||||
|
||||
Command( wxT("ExportOgg"), XXO("Export as &OGG"), FN(OnExportOgg),
|
||||
AudioIONotBusyFlag | WaveTracksExistFlag ),
|
||||
AudioIONotBusyFlag() | WaveTracksExistFlag() ),
|
||||
|
||||
Command( wxT("Export"), XXO("&Export Audio..."), FN(OnExportAudio),
|
||||
AudioIONotBusyFlag | WaveTracksExistFlag, wxT("Ctrl+Shift+E") ),
|
||||
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,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
Options{}.UseStrictFlags() ),
|
||||
|
||||
Command( wxT("ExportLabels"), XXO("Export &Labels..."),
|
||||
FN(OnExportLabels),
|
||||
AudioIONotBusyFlag | LabelTracksExistFlag ),
|
||||
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") )
|
||||
AudioIONotBusyFlag() | WaveTracksExistFlag(), wxT("Ctrl+Shift+L") )
|
||||
#if defined(USE_MIDI)
|
||||
,
|
||||
Command( wxT("ExportMIDI"), XXO("Export MI&DI..."), FN(OnExportMIDI),
|
||||
AudioIONotBusyFlag | NoteTracksExistFlag )
|
||||
AudioIONotBusyFlag() | NoteTracksExistFlag() )
|
||||
#endif
|
||||
),
|
||||
|
||||
Menu( wxT("Import"), XO("&Import"),
|
||||
Command( wxT("ImportAudio"), XXO("&Audio..."), FN(OnImport),
|
||||
AudioIONotBusyFlag, wxT("Ctrl+Shift+I") ),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+Shift+I") ),
|
||||
Command( wxT("ImportLabels"), XXO("&Labels..."), FN(OnImportLabels),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
#ifdef USE_MIDI
|
||||
Command( wxT("ImportMIDI"), XXO("&MIDI..."), FN(OnImportMIDI),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
#endif // USE_MIDI
|
||||
Command( wxT("ImportRaw"), XXO("&Raw Data..."), FN(OnImportRaw),
|
||||
AudioIONotBusyFlag )
|
||||
AudioIONotBusyFlag() )
|
||||
),
|
||||
|
||||
Separator(),
|
||||
@ -688,10 +688,10 @@ MenuTable::BaseItemSharedPtr FileMenu()
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Command( wxT("PageSetup"), XXO("Pa&ge Setup..."), FN(OnPageSetup),
|
||||
AudioIONotBusyFlag | TracksExistFlag ),
|
||||
AudioIONotBusyFlag() | TracksExistFlag() ),
|
||||
/* i18n-hint: (verb) It's item on a menu. */
|
||||
Command( wxT("Print"), XXO("&Print..."), FN(OnPrint),
|
||||
AudioIONotBusyFlag | TracksExistFlag ),
|
||||
AudioIONotBusyFlag() | TracksExistFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
|
@ -509,11 +509,11 @@ MenuTable::BaseItemSharedPtr HelpMenu()
|
||||
Menu( wxT("Diagnostics"), XO("&Diagnostics"),
|
||||
Command( wxT("DeviceInfo"), XXO("Au&dio Device Info..."),
|
||||
FN(OnAudioDeviceInfo),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
#ifdef EXPERIMENTAL_MIDI_OUT
|
||||
Command( wxT("MidiDeviceInfo"), XXO("&MIDI Device Info..."),
|
||||
FN(OnMidiDeviceInfo),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
#endif
|
||||
Command( wxT("Log"), XXO("Show &Log..."), FN(OnShowLog),
|
||||
AlwaysEnabledFlag ),
|
||||
@ -523,7 +523,7 @@ MenuTable::BaseItemSharedPtr HelpMenu()
|
||||
#endif
|
||||
Command( wxT("CheckDeps"), XXO("Chec&k Dependencies..."),
|
||||
FN(OnCheckDependencies),
|
||||
AudioIONotBusyFlag )
|
||||
AudioIONotBusyFlag() )
|
||||
|
||||
#ifdef IS_ALPHA
|
||||
,
|
||||
|
@ -570,8 +570,8 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
static const auto checkOff = Options{}.CheckState( false );
|
||||
|
||||
static const auto NotBusyLabelsAndWaveFlags =
|
||||
AudioIONotBusyFlag |
|
||||
LabelsSelectedFlag | WaveTracksExistFlag | TimeSelectedFlag;
|
||||
AudioIONotBusyFlag() |
|
||||
LabelsSelectedFlag() | WaveTracksExistFlag() | TimeSelectedFlag();
|
||||
|
||||
// Returns TWO menus.
|
||||
|
||||
@ -581,7 +581,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
|
||||
Menu( wxT("Labels"), XO("&Labels"),
|
||||
Command( wxT("EditLabels"), XXO("&Edit Labels..."), FN(OnEditLabels),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
@ -589,7 +589,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
FN(OnAddLabel), AlwaysEnabledFlag, wxT("Ctrl+B") ),
|
||||
Command( wxT("AddLabelPlaying"),
|
||||
XXO("Add Label at &Playback Position"),
|
||||
FN(OnAddLabelPlaying), AudioIOBusyFlag,
|
||||
FN(OnAddLabelPlaying), AudioIOBusyFlag(),
|
||||
#ifdef __WXMAC__
|
||||
wxT("Ctrl+.")
|
||||
#else
|
||||
@ -598,7 +598,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
),
|
||||
Command( wxT("PasteNewLabel"), XXO("Paste Te&xt to New Label"),
|
||||
FN(OnPasteNewLabel),
|
||||
AudioIONotBusyFlag, wxT("Ctrl+Alt+V") ),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+Alt+V") ),
|
||||
|
||||
Separator(),
|
||||
|
||||
@ -612,12 +612,12 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
Menu( wxT("Labeled"), XO("La&beled Audio"),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels),
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag |
|
||||
TimeSelectedFlag | IsNotSyncLockedFlag,
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
|
||||
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
||||
Options{ wxT("Alt+X"), XO("Label Cut") } ),
|
||||
Command( wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels),
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag |
|
||||
TimeSelectedFlag | IsNotSyncLockedFlag,
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
|
||||
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
||||
Options{ wxT("Alt+K"), XO("Label Delete") } ),
|
||||
|
||||
Separator(),
|
||||
@ -644,7 +644,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels),
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag,
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag(),
|
||||
Options{ wxT("Alt+I"), XO("Label Split") } ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels),
|
||||
|
@ -579,7 +579,7 @@ MenuTable::BaseItemSharedPtr ExtraGlobalCommands()
|
||||
MenuTable::BaseItemSharedPtr ExtraFocusMenu()
|
||||
{
|
||||
using namespace MenuTable;
|
||||
static const auto FocusedTracksFlags = TracksExistFlag | TrackPanelHasFocus;
|
||||
static const auto FocusedTracksFlags = TracksExistFlag() | TrackPanelHasFocus();
|
||||
|
||||
static BaseItemSharedPtr menu{
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
|
@ -210,7 +210,7 @@ void AddEffectMenuItems(
|
||||
const auto getBatchFlags = [&]( const PluginDescriptor *plug ){
|
||||
if ( plug->GetSymbol().Msgid() == XO( "Noise Reduction" ) )
|
||||
return
|
||||
( batchflags | NoiseReductionTimeSelectedFlag ) & ~TimeSelectedFlag;
|
||||
( batchflags | NoiseReductionTimeSelectedFlag() ) & ~TimeSelectedFlag();
|
||||
return batchflags;
|
||||
};
|
||||
|
||||
@ -753,7 +753,7 @@ MenuTable::BaseItemSharedPtr GenerateMenu()
|
||||
Menu( wxT("Generate"), XO("&Generate"),
|
||||
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
|
||||
Command( wxT("ManageGenerators"), XXO("Add / Remove Plug-ins..."),
|
||||
FN(OnManageGenerators), AudioIONotBusyFlag ),
|
||||
FN(OnManageGenerators), AudioIONotBusyFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
@ -763,8 +763,8 @@ MenuTable::BaseItemSharedPtr GenerateMenu()
|
||||
[](AudacityProject &)
|
||||
{ return Items( wxEmptyString, PopulateEffectsMenu(
|
||||
EffectTypeGenerate,
|
||||
AudioIONotBusyFlag,
|
||||
AudioIONotBusyFlag)
|
||||
AudioIONotBusyFlag(),
|
||||
AudioIONotBusyFlag())
|
||||
); }
|
||||
) ) };
|
||||
return menu;
|
||||
@ -789,7 +789,7 @@ MenuTable::BaseItemSharedPtr EffectMenu()
|
||||
Menu( wxT("Effect"), XO("Effe&ct"),
|
||||
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
|
||||
Command( wxT("ManageEffects"), XXO("Add / Remove Plug-ins..."),
|
||||
FN(OnManageEffects), AudioIONotBusyFlag ),
|
||||
FN(OnManageEffects), AudioIONotBusyFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
@ -808,8 +808,8 @@ MenuTable::BaseItemSharedPtr EffectMenu()
|
||||
|
||||
return Command( wxT("RepeatLastEffect"), buildMenuLabel,
|
||||
FN(OnRepeatLastEffect),
|
||||
AudioIONotBusyFlag | TimeSelectedFlag |
|
||||
WaveTracksSelectedFlag | HasLastEffectFlag,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() |
|
||||
WaveTracksSelectedFlag() | HasLastEffectFlag(),
|
||||
wxT("Ctrl+R"), findCommandHandler );
|
||||
},
|
||||
|
||||
@ -819,7 +819,7 @@ MenuTable::BaseItemSharedPtr EffectMenu()
|
||||
[](AudacityProject &)
|
||||
{ return Items( wxEmptyString, PopulateEffectsMenu(
|
||||
EffectTypeProcess,
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
IsRealtimeNotActiveFlag )
|
||||
); }
|
||||
|
||||
@ -839,23 +839,23 @@ MenuTable::BaseItemSharedPtr AnalyzeMenu()
|
||||
Menu( wxT("Analyze"), XO("&Analyze"),
|
||||
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
|
||||
Command( wxT("ManageAnalyzers"), XXO("Add / Remove Plug-ins..."),
|
||||
FN(OnManageAnalyzers), AudioIONotBusyFlag ),
|
||||
FN(OnManageAnalyzers), AudioIONotBusyFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
#endif
|
||||
|
||||
Command( wxT("ContrastAnalyser"), XXO("Contrast..."), FN(OnContrast),
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag | TimeSelectedFlag,
|
||||
AudioIONotBusyFlag() | WaveTracksSelectedFlag() | TimeSelectedFlag(),
|
||||
wxT("Ctrl+Shift+T") ),
|
||||
Command( wxT("PlotSpectrum"), XXO("Plot Spectrum..."), FN(OnPlotSpectrum),
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag | TimeSelectedFlag ),
|
||||
AudioIONotBusyFlag() | WaveTracksSelectedFlag() | TimeSelectedFlag() ),
|
||||
|
||||
// Delayed evaluation:
|
||||
[](AudacityProject&)
|
||||
{ return Items( wxEmptyString, PopulateEffectsMenu(
|
||||
EffectTypeAnalyze,
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
IsRealtimeNotActiveFlag )
|
||||
); }
|
||||
) ) };
|
||||
@ -874,32 +874,32 @@ MenuTable::BaseItemSharedPtr ToolsMenu()
|
||||
|
||||
#ifdef EXPERIMENTAL_EFFECT_MANAGEMENT
|
||||
Command( wxT("ManageTools"), XXO("Add / Remove Plug-ins..."),
|
||||
FN(OnManageTools), AudioIONotBusyFlag ),
|
||||
FN(OnManageTools), AudioIONotBusyFlag() ),
|
||||
|
||||
//Separator(),
|
||||
|
||||
#endif
|
||||
|
||||
Command( wxT("ManageMacros"), XXO("&Macros..."),
|
||||
FN(OnManageMacros), AudioIONotBusyFlag ),
|
||||
FN(OnManageMacros), AudioIONotBusyFlag() ),
|
||||
|
||||
Menu( wxT("Macros"), XO("&Apply Macro"),
|
||||
// Palette has no access key to ensure first letter navigation of
|
||||
// sub menu
|
||||
Command( wxT("ApplyMacrosPalette"), XXO("Palette..."),
|
||||
FN(OnApplyMacrosPalette), AudioIONotBusyFlag ),
|
||||
FN(OnApplyMacrosPalette), AudioIONotBusyFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
// Delayed evaluation:
|
||||
[](AudacityProject&)
|
||||
{ return Items( wxEmptyString, PopulateMacrosMenu( AudioIONotBusyFlag ) ); }
|
||||
{ return Items( wxEmptyString, PopulateMacrosMenu( AudioIONotBusyFlag() ) ); }
|
||||
),
|
||||
|
||||
Separator(),
|
||||
|
||||
Command( wxT("FancyScreenshot"), XXO("&Screenshot..."),
|
||||
FN(OnScreenshot), AudioIONotBusyFlag ),
|
||||
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
|
||||
@ -907,7 +907,7 @@ MenuTable::BaseItemSharedPtr ToolsMenu()
|
||||
// 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 ),
|
||||
FN(OnBenchmark), AudioIONotBusyFlag() ),
|
||||
//#endif
|
||||
|
||||
Separator(),
|
||||
@ -916,8 +916,8 @@ MenuTable::BaseItemSharedPtr ToolsMenu()
|
||||
[](AudacityProject&)
|
||||
{ return Items( wxEmptyString, PopulateEffectsMenu(
|
||||
EffectTypeTool,
|
||||
AudioIONotBusyFlag,
|
||||
AudioIONotBusyFlag )
|
||||
AudioIONotBusyFlag(),
|
||||
AudioIONotBusyFlag() )
|
||||
); }
|
||||
|
||||
#ifdef IS_ALPHA
|
||||
@ -928,14 +928,14 @@ MenuTable::BaseItemSharedPtr ToolsMenu()
|
||||
Command( wxT("SimulateRecordingErrors"),
|
||||
XXO("Simulate Recording Errors"),
|
||||
FN(OnSimulateRecordingErrors),
|
||||
AudioIONotBusyFlag,
|
||||
AudioIONotBusyFlag(),
|
||||
Options{}.CheckTest(
|
||||
[](AudacityProject&){
|
||||
return AudioIO::Get()->mSimulateRecordingErrors; } ) ),
|
||||
Command( wxT("DetectUpstreamDropouts"),
|
||||
XXO("Detect Upstream Dropouts"),
|
||||
FN(OnDetectUpstreamDropouts),
|
||||
AudioIONotBusyFlag,
|
||||
AudioIONotBusyFlag(),
|
||||
Options{}.CheckTest(
|
||||
[](AudacityProject&){
|
||||
return AudioIO::Get()->mDetectUpstreamDropouts; } ) )
|
||||
@ -959,37 +959,37 @@ MenuTable::BaseItemSharedPtr ExtraScriptablesIMenu()
|
||||
// (So if you did write "CompareAudio" for the PLUGIN_SYMBOL name, then
|
||||
// you would have to use "Compareaudio" here.)
|
||||
Command( wxT("SelectTime"), XXO("Select Time..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SelectFrequencies"), XXO("Select Frequencies..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SelectTracks"), XXO("Select Tracks..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetTrackStatus"), XXO("Set Track Status..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetTrackAudio"), XXO("Set Track Audio..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetTrackVisuals"), XXO("Set Track Visuals..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("GetPreference"), XXO("Get Preference..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetPreference"), XXO("Set Preference..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetClip"), XXO("Set Clip..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetEnvelope"), XXO("Set Envelope..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetLabel"), XXO("Set Label..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetProject"), XXO("Set Project..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag )
|
||||
AudioIONotBusyFlag() )
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
@ -1004,34 +1004,34 @@ MenuTable::BaseItemSharedPtr ExtraScriptablesIIMenu()
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
Menu( wxT("Scriptables2"), XO("Scripta&bles II"),
|
||||
Command( wxT("Select"), XXO("Select..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SetTrack"), XXO("Set Track..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("GetInfo"), XXO("Get Info..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("Message"), XXO("Message..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("Help"), XXO("Help..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("Import2"), XXO("Import..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("Export2"), XXO("Export..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("OpenProject2"), XXO("Open Project..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("SaveProject2"), XXO("Save Project..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("Drag"), XXO("Move Mouse..."), FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
Command( wxT("CompareAudio"), XXO("Compare Audio..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
// i18n-hint: Screenshot in the help menu has a much bigger dialog.
|
||||
Command( wxT("Screenshot"), XXO("Screenshot (short format)..."),
|
||||
FN(OnAudacityCommand),
|
||||
AudioIONotBusyFlag )
|
||||
AudioIONotBusyFlag() )
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
|
@ -1040,10 +1040,10 @@ MenuTable::BaseItemSharedPtr SelectMenu()
|
||||
/* i18n-hint: (verb) It's an item on a menu. */
|
||||
Menu( wxT("Select"), XO("&Select"),
|
||||
Command( wxT("SelectAll"), XXO("&All"), FN(OnSelectAll),
|
||||
TracksExistFlag,
|
||||
TracksExistFlag(),
|
||||
Options{ wxT("Ctrl+A"), XO("Select All") } ),
|
||||
Command( wxT("SelectNone"), XXO("&None"), FN(OnSelectNone),
|
||||
TracksExistFlag,
|
||||
TracksExistFlag(),
|
||||
Options{ wxT("Ctrl+Shift+A"), XO("Select None") } ),
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@ -1051,14 +1051,14 @@ MenuTable::BaseItemSharedPtr SelectMenu()
|
||||
Menu( wxT("Tracks"), XO("&Tracks"),
|
||||
Command( wxT("SelAllTracks"), XXO("In All &Tracks"),
|
||||
FN(OnSelectAllTracks),
|
||||
TracksExistFlag,
|
||||
TracksExistFlag(),
|
||||
wxT("Ctrl+Shift+K") )
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
,
|
||||
Command( wxT("SelSyncLockTracks"), XXO("In All &Sync-Locked Tracks"),
|
||||
FN(OnSelectSyncLockSel),
|
||||
TracksSelectedFlag | IsSyncLockedFlag,
|
||||
TracksSelectedFlag() | IsSyncLockedFlag(),
|
||||
Options{ wxT("Ctrl+Shift+Y"), XO("Select Sync-Locked") } )
|
||||
#endif
|
||||
),
|
||||
@ -1067,10 +1067,10 @@ MenuTable::BaseItemSharedPtr SelectMenu()
|
||||
|
||||
Menu( wxT("Region"), XO("R&egion"),
|
||||
Command( wxT("SetLeftSelection"), XXO("&Left at Playback Position"),
|
||||
FN(OnSetLeftSelection), TracksExistFlag,
|
||||
FN(OnSetLeftSelection), TracksExistFlag(),
|
||||
Options{ wxT("["), XO("Set Selection Left at Play Position") } ),
|
||||
Command( wxT("SetRightSelection"), XXO("&Right at Playback Position"),
|
||||
FN(OnSetRightSelection), TracksExistFlag,
|
||||
FN(OnSetRightSelection), TracksExistFlag(),
|
||||
Options{ wxT("]"), XO("Set Selection Right at Play Position") } ),
|
||||
Command( wxT("SelTrackStartToCursor"), XXO("Track &Start to Cursor"),
|
||||
FN(OnSelectStartCursor), AlwaysEnabledFlag,
|
||||
@ -1090,10 +1090,10 @@ MenuTable::BaseItemSharedPtr SelectMenu()
|
||||
// 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 ),
|
||||
WaveTracksSelectedFlag() ),
|
||||
// Audacity had 'Retrieve Regio&n' here previously.
|
||||
Command( wxT("SelRestore"), XXO("Retrieve Selectio&n"),
|
||||
FN(OnSelectionRestore), TracksExistFlag )
|
||||
FN(OnSelectionRestore), TracksExistFlag() )
|
||||
),
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@ -1102,13 +1102,13 @@ MenuTable::BaseItemSharedPtr SelectMenu()
|
||||
Menu( wxT("Spectral"), XO("S&pectral"),
|
||||
Command( wxT("ToggleSpectralSelection"),
|
||||
XXO("To&ggle Spectral Selection"), FN(OnToggleSpectralSelection),
|
||||
TracksExistFlag, wxT("Q") ),
|
||||
TracksExistFlag(), wxT("Q") ),
|
||||
Command( wxT("NextHigherPeakFrequency"),
|
||||
XXO("Next &Higher Peak Frequency"), FN(OnNextHigherPeakFrequency),
|
||||
TracksExistFlag ),
|
||||
TracksExistFlag() ),
|
||||
Command( wxT("NextLowerPeakFrequency"),
|
||||
XXO("Next &Lower Peak Frequency"), FN(OnNextLowerPeakFrequency),
|
||||
TracksExistFlag )
|
||||
TracksExistFlag() )
|
||||
),
|
||||
#endif
|
||||
|
||||
@ -1122,19 +1122,19 @@ MenuTable::BaseItemSharedPtr SelectMenu()
|
||||
|
||||
Command( wxT("SelCursorStoredCursor"),
|
||||
XXO("Cursor to Stored &Cursor Position"),
|
||||
FN(OnSelectCursorStoredCursor), TracksExistFlag,
|
||||
FN(OnSelectCursorStoredCursor), TracksExistFlag(),
|
||||
Options{}.LongName( XO("Select Cursor to Stored") ) ),
|
||||
|
||||
Command( wxT("StoreCursorPosition"), XXO("Store Cursor Pos&ition"),
|
||||
FN(OnCursorPositionStore),
|
||||
WaveTracksExistFlag ),
|
||||
WaveTracksExistFlag() ),
|
||||
// Save cursor position is used in some selections.
|
||||
// Maybe there should be a restore for it?
|
||||
|
||||
Separator(),
|
||||
|
||||
Command( wxT("ZeroCross"), XXO("At &Zero Crossings"),
|
||||
FN(OnZeroCrossing), TracksSelectedFlag,
|
||||
FN(OnZeroCrossing), TracksSelectedFlag(),
|
||||
Options{ wxT("Z"), XO("Select Zero Crossing") } )
|
||||
) ) };
|
||||
return menu;
|
||||
@ -1159,25 +1159,25 @@ MenuTable::BaseItemSharedPtr ExtraSelectionMenu()
|
||||
AlwaysEnabledFlag, wxT("Shift+End") ),
|
||||
Command( wxT("SelExtLeft"), XXO("Selection Extend &Left"),
|
||||
FN(OnSelExtendLeft),
|
||||
TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag() | TrackPanelHasFocus(),
|
||||
wxT("Shift+Left\twantKeyup\tallowDup") ),
|
||||
Command( wxT("SelExtRight"), XXO("Selection Extend &Right"),
|
||||
FN(OnSelExtendRight),
|
||||
TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag() | TrackPanelHasFocus(),
|
||||
wxT("Shift+Right\twantKeyup\tallowDup") ),
|
||||
Command( wxT("SelSetExtLeft"), XXO("Set (or Extend) Le&ft Selection"),
|
||||
FN(OnSelSetExtendLeft),
|
||||
TracksExistFlag | TrackPanelHasFocus ),
|
||||
TracksExistFlag() | TrackPanelHasFocus() ),
|
||||
Command( wxT("SelSetExtRight"), XXO("Set (or Extend) Rig&ht Selection"),
|
||||
FN(OnSelSetExtendRight),
|
||||
TracksExistFlag | TrackPanelHasFocus ),
|
||||
TracksExistFlag() | TrackPanelHasFocus() ),
|
||||
Command( wxT("SelCntrLeft"), XXO("Selection Contract L&eft"),
|
||||
FN(OnSelContractLeft),
|
||||
TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag() | TrackPanelHasFocus(),
|
||||
wxT("Ctrl+Shift+Right\twantKeyup") ),
|
||||
Command( wxT("SelCntrRight"), XXO("Selection Contract R&ight"),
|
||||
FN(OnSelContractRight),
|
||||
TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag() | TrackPanelHasFocus(),
|
||||
wxT("Ctrl+Shift+Left\twantKeyup") )
|
||||
) ) };
|
||||
return menu;
|
||||
@ -1190,7 +1190,7 @@ MenuTable::BaseItemSharedPtr CursorMenu()
|
||||
{
|
||||
using namespace MenuTable;
|
||||
using Options = CommandManager::Options;
|
||||
static const auto CanStopFlags = AudioIONotBusyFlag | CanStopAudioStreamFlag;
|
||||
static const auto CanStopFlags = AudioIONotBusyFlag() | CanStopAudioStreamFlag();
|
||||
|
||||
// JKC: ANSWER-ME: How is 'cursor to' different to 'Skip To' and how is it
|
||||
// useful?
|
||||
@ -1202,20 +1202,20 @@ MenuTable::BaseItemSharedPtr CursorMenu()
|
||||
Menu( wxT("Cursor"), XO("&Cursor to"),
|
||||
Command( wxT("CursSelStart"), XXO("Selection Star&t"),
|
||||
FN(OnCursorSelStart),
|
||||
TimeSelectedFlag,
|
||||
TimeSelectedFlag(),
|
||||
Options{}.LongName( XO("Cursor to Selection Start") ) ),
|
||||
Command( wxT("CursSelEnd"), XXO("Selection En&d"),
|
||||
FN(OnCursorSelEnd),
|
||||
TimeSelectedFlag,
|
||||
TimeSelectedFlag(),
|
||||
Options{}.LongName( XO("Cursor to Selection End") ) ),
|
||||
|
||||
Command( wxT("CursTrackStart"), XXO("Track &Start"),
|
||||
FN(OnCursorTrackStart),
|
||||
TracksSelectedFlag,
|
||||
TracksSelectedFlag(),
|
||||
Options{ wxT("J"), XO("Cursor to Track Start") } ),
|
||||
Command( wxT("CursTrackEnd"), XXO("Track &End"),
|
||||
FN(OnCursorTrackEnd),
|
||||
TracksSelectedFlag,
|
||||
TracksSelectedFlag(),
|
||||
Options{ wxT("K"), XO("Cursor to Track End") } ),
|
||||
|
||||
ClipCursorItems(),
|
||||
@ -1242,23 +1242,23 @@ MenuTable::BaseItemSharedPtr ExtraCursorMenu()
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
Menu( wxT("Cursor"), XO("&Cursor"),
|
||||
Command( wxT("CursorLeft"), XXO("Cursor &Left"), FN(OnCursorLeft),
|
||||
TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag() | TrackPanelHasFocus(),
|
||||
wxT("Left\twantKeyup\tallowDup") ),
|
||||
Command( wxT("CursorRight"), XXO("Cursor &Right"), FN(OnCursorRight),
|
||||
TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag() | TrackPanelHasFocus(),
|
||||
wxT("Right\twantKeyup\tallowDup") ),
|
||||
Command( wxT("CursorShortJumpLeft"), XXO("Cursor Sh&ort Jump Left"),
|
||||
FN(OnCursorShortJumpLeft),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT(",") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT(",") ),
|
||||
Command( wxT("CursorShortJumpRight"), XXO("Cursor Shor&t Jump Right"),
|
||||
FN(OnCursorShortJumpRight),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT(".") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT(".") ),
|
||||
Command( wxT("CursorLongJumpLeft"), XXO("Cursor Long J&ump Left"),
|
||||
FN(OnCursorLongJumpLeft),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT("Shift+,") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT("Shift+,") ),
|
||||
Command( wxT("CursorLongJumpRight"), XXO("Cursor Long Ju&mp Right"),
|
||||
FN(OnCursorLongJumpRight),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT("Shift+.") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT("Shift+.") ),
|
||||
|
||||
ExtraClipCursorItems()
|
||||
) ) };
|
||||
@ -1273,14 +1273,14 @@ MenuTable::BaseItemSharedPtr ExtraSeekMenu()
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
Menu( wxT("Seek"), XO("See&k"),
|
||||
Command( wxT("SeekLeftShort"), XXO("Short Seek &Left During Playback"),
|
||||
FN(OnSeekLeftShort), AudioIOBusyFlag, wxT("Left\tallowDup") ),
|
||||
FN(OnSeekLeftShort), AudioIOBusyFlag(), wxT("Left\tallowDup") ),
|
||||
Command( wxT("SeekRightShort"),
|
||||
XXO("Short Seek &Right During Playback"), FN(OnSeekRightShort),
|
||||
AudioIOBusyFlag, wxT("Right\tallowDup") ),
|
||||
AudioIOBusyFlag(), wxT("Right\tallowDup") ),
|
||||
Command( wxT("SeekLeftLong"), XXO("Long Seek Le&ft During Playback"),
|
||||
FN(OnSeekLeftLong), AudioIOBusyFlag, wxT("Shift+Left\tallowDup") ),
|
||||
FN(OnSeekLeftLong), AudioIOBusyFlag(), wxT("Shift+Left\tallowDup") ),
|
||||
Command( wxT("SeekRightLong"), XXO("Long Seek Rig&ht During Playback"),
|
||||
FN(OnSeekRightLong), AudioIOBusyFlag, wxT("Shift+Right\tallowDup") )
|
||||
FN(OnSeekRightLong), AudioIOBusyFlag(), wxT("Shift+Right\tallowDup") )
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
|
@ -1289,13 +1289,13 @@ MenuTable::BaseItemSharedPtr TracksMenu()
|
||||
Menu( wxT("Tracks"), XO("&Tracks"),
|
||||
Menu( wxT("Add"), XO("Add &New"),
|
||||
Command( wxT("NewMonoTrack"), XXO("&Mono Track"), FN(OnNewWaveTrack),
|
||||
AudioIONotBusyFlag, wxT("Ctrl+Shift+N") ),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+Shift+N") ),
|
||||
Command( wxT("NewStereoTrack"), XXO("&Stereo Track"),
|
||||
FN(OnNewStereoTrack), AudioIONotBusyFlag ),
|
||||
FN(OnNewStereoTrack), AudioIONotBusyFlag() ),
|
||||
Command( wxT("NewLabelTrack"), XXO("&Label Track"),
|
||||
FN(OnNewLabelTrack), AudioIONotBusyFlag ),
|
||||
FN(OnNewLabelTrack), AudioIONotBusyFlag() ),
|
||||
Command( wxT("NewTimeTrack"), XXO("&Time Track"),
|
||||
FN(OnNewTimeTrack), AudioIONotBusyFlag )
|
||||
FN(OnNewTimeTrack), AudioIONotBusyFlag() )
|
||||
),
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@ -1314,35 +1314,35 @@ MenuTable::BaseItemSharedPtr TracksMenu()
|
||||
if (plug && plug->IsEnabled())
|
||||
return Command( wxT("Stereo to Mono"),
|
||||
XXO("Mix Stereo Down to &Mono"), FN(OnStereoToMono),
|
||||
AudioIONotBusyFlag | StereoRequiredFlag |
|
||||
WaveTracksSelectedFlag, Options{}, findCommandHandler );
|
||||
AudioIONotBusyFlag() | StereoRequiredFlag() |
|
||||
WaveTracksSelectedFlag(), Options{}, findCommandHandler );
|
||||
else
|
||||
return {};
|
||||
},
|
||||
Command( wxT("MixAndRender"), XXO("Mi&x and Render"),
|
||||
FN(OnMixAndRender),
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag ),
|
||||
AudioIONotBusyFlag() | WaveTracksSelectedFlag() ),
|
||||
Command( wxT("MixAndRenderToNewTrack"),
|
||||
XXO("Mix and Render to Ne&w Track"),
|
||||
FN(OnMixAndRenderToNewTrack),
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag, wxT("Ctrl+Shift+M") )
|
||||
AudioIONotBusyFlag() | WaveTracksSelectedFlag(), wxT("Ctrl+Shift+M") )
|
||||
),
|
||||
|
||||
Command( wxT("Resample"), XXO("&Resample..."), FN(OnResample),
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag ),
|
||||
AudioIONotBusyFlag() | WaveTracksSelectedFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
Command( wxT("RemoveTracks"), XXO("Remo&ve Tracks"), FN(OnRemoveTracks),
|
||||
AudioIONotBusyFlag | AnyTracksSelectedFlag ),
|
||||
AudioIONotBusyFlag() | AnyTracksSelectedFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
Menu( wxT("Mute"), XO("M&ute/Unmute"),
|
||||
Command( wxT("MuteAllTracks"), XXO("&Mute All Tracks"),
|
||||
FN(OnMuteAllTracks), AudioIONotBusyFlag, wxT("Ctrl+U") ),
|
||||
FN(OnMuteAllTracks), AudioIONotBusyFlag(), wxT("Ctrl+U") ),
|
||||
Command( wxT("UnmuteAllTracks"), XXO("&Unmute All Tracks"),
|
||||
FN(OnUnmuteAllTracks), AudioIONotBusyFlag, wxT("Ctrl+Shift+U") )
|
||||
FN(OnUnmuteAllTracks), AudioIONotBusyFlag(), wxT("Ctrl+Shift+U") )
|
||||
),
|
||||
|
||||
Menu( wxT("Pan"), XO("&Pan"),
|
||||
@ -1351,13 +1351,13 @@ MenuTable::BaseItemSharedPtr TracksMenu()
|
||||
// in the project could very easily be lost unless we
|
||||
// require the tracks to be selected.
|
||||
Command( wxT("PanLeft"), XXO("&Left"), FN(OnPanLeft),
|
||||
TracksSelectedFlag,
|
||||
TracksSelectedFlag(),
|
||||
Options{}.LongName( XO("Pan Left") ) ),
|
||||
Command( wxT("PanRight"), XXO("&Right"), FN(OnPanRight),
|
||||
TracksSelectedFlag,
|
||||
TracksSelectedFlag(),
|
||||
Options{}.LongName( XO("Pan Right") ) ),
|
||||
Command( wxT("PanCenter"), XXO("&Center"), FN(OnPanCenter),
|
||||
TracksSelectedFlag,
|
||||
TracksSelectedFlag(),
|
||||
Options{}.LongName( XO("Pan Center") ) )
|
||||
),
|
||||
|
||||
@ -1372,14 +1372,14 @@ MenuTable::BaseItemSharedPtr TracksMenu()
|
||||
{ wxT("EndToEnd"), XO("&Align End to End") },
|
||||
{ wxT("Together"), XO("Align &Together") },
|
||||
},
|
||||
FN(OnAlignNoSync), AudioIONotBusyFlag | TracksSelectedFlag),
|
||||
FN(OnAlignNoSync), AudioIONotBusyFlag() | TracksSelectedFlag()),
|
||||
|
||||
Separator(),
|
||||
|
||||
// Alignment commands using selection or zero
|
||||
CommandGroup(wxT("Align"),
|
||||
alignLabels(),
|
||||
FN(OnAlign), AudioIONotBusyFlag | TracksSelectedFlag),
|
||||
FN(OnAlign), AudioIONotBusyFlag() | TracksSelectedFlag()),
|
||||
|
||||
Separator(),
|
||||
|
||||
@ -1395,7 +1395,7 @@ MenuTable::BaseItemSharedPtr TracksMenu()
|
||||
// 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),
|
||||
FN(OnAlignMoveSel), AudioIONotBusyFlag() | TracksSelectedFlag()),
|
||||
} ),
|
||||
#endif
|
||||
|
||||
@ -1404,17 +1404,17 @@ MenuTable::BaseItemSharedPtr TracksMenu()
|
||||
#ifdef EXPERIMENTAL_SCOREALIGN
|
||||
Command( wxT("ScoreAlign"), XXO("Synchronize MIDI with Audio"),
|
||||
FN(OnScoreAlign),
|
||||
AudioIONotBusyFlag | NoteTracksSelectedFlag | WaveTracksSelectedFlag ),
|
||||
AudioIONotBusyFlag() | NoteTracksSelectedFlag() | WaveTracksSelectedFlag() ),
|
||||
#endif // EXPERIMENTAL_SCOREALIGN
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Menu( wxT("Sort"), XO("S&ort Tracks"),
|
||||
Command( wxT("SortByTime"), XXO("By &Start Time"), FN(OnSortTime),
|
||||
TracksExistFlag,
|
||||
TracksExistFlag(),
|
||||
Options{}.LongName( XO("Sort by Time") ) ),
|
||||
Command( wxT("SortByName"), XXO("By &Name"), FN(OnSortName),
|
||||
TracksExistFlag,
|
||||
TracksExistFlag(),
|
||||
Options{}.LongName( XO("Sort by Name") ) )
|
||||
)
|
||||
|
||||
@ -1443,47 +1443,47 @@ MenuTable::BaseItemSharedPtr ExtraTrackMenu()
|
||||
Menu( wxT("Track"), XO("&Track"),
|
||||
Command( wxT("TrackPan"), XXO("Change P&an on Focused Track..."),
|
||||
FN(OnTrackPan),
|
||||
TrackPanelHasFocus | TracksExistFlag, wxT("Shift+P") ),
|
||||
TrackPanelHasFocus() | TracksExistFlag(), wxT("Shift+P") ),
|
||||
Command( wxT("TrackPanLeft"), XXO("Pan &Left on Focused Track"),
|
||||
FN(OnTrackPanLeft),
|
||||
TrackPanelHasFocus | TracksExistFlag, wxT("Alt+Shift+Left") ),
|
||||
TrackPanelHasFocus() | TracksExistFlag(), wxT("Alt+Shift+Left") ),
|
||||
Command( wxT("TrackPanRight"), XXO("Pan &Right on Focused Track"),
|
||||
FN(OnTrackPanRight),
|
||||
TrackPanelHasFocus | TracksExistFlag, wxT("Alt+Shift+Right") ),
|
||||
TrackPanelHasFocus() | TracksExistFlag(), wxT("Alt+Shift+Right") ),
|
||||
Command( wxT("TrackGain"), XXO("Change Gai&n on Focused Track..."),
|
||||
FN(OnTrackGain),
|
||||
TrackPanelHasFocus | TracksExistFlag, wxT("Shift+G") ),
|
||||
TrackPanelHasFocus() | TracksExistFlag(), wxT("Shift+G") ),
|
||||
Command( wxT("TrackGainInc"), XXO("&Increase Gain on Focused Track"),
|
||||
FN(OnTrackGainInc),
|
||||
TrackPanelHasFocus | TracksExistFlag, wxT("Alt+Shift+Up") ),
|
||||
TrackPanelHasFocus() | TracksExistFlag(), wxT("Alt+Shift+Up") ),
|
||||
Command( wxT("TrackGainDec"), XXO("&Decrease Gain on Focused Track"),
|
||||
FN(OnTrackGainDec),
|
||||
TrackPanelHasFocus | TracksExistFlag, wxT("Alt+Shift+Down") ),
|
||||
TrackPanelHasFocus() | TracksExistFlag(), wxT("Alt+Shift+Down") ),
|
||||
Command( wxT("TrackMenu"), XXO("Op&en Menu on Focused Track..."),
|
||||
FN(OnTrackMenu),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT("Shift+M\tskipKeydown") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT("Shift+M\tskipKeydown") ),
|
||||
Command( wxT("TrackMute"), XXO("M&ute/Unmute Focused Track"),
|
||||
FN(OnTrackMute),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT("Shift+U") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT("Shift+U") ),
|
||||
Command( wxT("TrackSolo"), XXO("&Solo/Unsolo Focused Track"),
|
||||
FN(OnTrackSolo),
|
||||
TracksExistFlag | TrackPanelHasFocus, wxT("Shift+S") ),
|
||||
TracksExistFlag() | TrackPanelHasFocus(), wxT("Shift+S") ),
|
||||
Command( wxT("TrackClose"), XXO("&Close Focused Track"),
|
||||
FN(OnTrackClose),
|
||||
AudioIONotBusyFlag | TrackPanelHasFocus | TracksExistFlag,
|
||||
AudioIONotBusyFlag() | TrackPanelHasFocus() | TracksExistFlag(),
|
||||
wxT("Shift+C") ),
|
||||
Command( wxT("TrackMoveUp"), XXO("Move Focused Track U&p"),
|
||||
FN(OnTrackMoveUp),
|
||||
AudioIONotBusyFlag | TrackPanelHasFocus | TracksExistFlag ),
|
||||
AudioIONotBusyFlag() | TrackPanelHasFocus() | TracksExistFlag() ),
|
||||
Command( wxT("TrackMoveDown"), XXO("Move Focused Track Do&wn"),
|
||||
FN(OnTrackMoveDown),
|
||||
AudioIONotBusyFlag | TrackPanelHasFocus | TracksExistFlag ),
|
||||
AudioIONotBusyFlag() | TrackPanelHasFocus() | TracksExistFlag() ),
|
||||
Command( wxT("TrackMoveTop"), XXO("Move Focused Track to T&op"),
|
||||
FN(OnTrackMoveTop),
|
||||
AudioIONotBusyFlag | TrackPanelHasFocus | TracksExistFlag ),
|
||||
AudioIONotBusyFlag() | TrackPanelHasFocus() | TracksExistFlag() ),
|
||||
Command( wxT("TrackMoveBottom"), XXO("Move Focused Track to &Bottom"),
|
||||
FN(OnTrackMoveBottom),
|
||||
AudioIONotBusyFlag | TrackPanelHasFocus | TracksExistFlag )
|
||||
AudioIONotBusyFlag() | TrackPanelHasFocus() | TracksExistFlag() )
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
|
@ -979,7 +979,7 @@ MenuTable::BaseItemSharedPtr TransportMenu()
|
||||
static const auto checkOff = Options{}.CheckState( false );
|
||||
static const auto checkOn = Options{}.CheckState( true );
|
||||
|
||||
static const auto CanStopFlags = AudioIONotBusyFlag | CanStopAudioStreamFlag;
|
||||
static const auto CanStopFlags = AudioIONotBusyFlag() | CanStopAudioStreamFlag();
|
||||
|
||||
static BaseItemSharedPtr menu{
|
||||
FinderScope( findCommandHandler ).Eval(
|
||||
@ -989,13 +989,13 @@ MenuTable::BaseItemSharedPtr TransportMenu()
|
||||
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") ),
|
||||
CanStopAudioStreamFlag(), wxT("Space") ),
|
||||
Command( wxT("PlayStopSelect"), XXO("Play/Stop and &Set Cursor"),
|
||||
FN(OnPlayStopSelect), CanStopAudioStreamFlag, wxT("X") ),
|
||||
FN(OnPlayStopSelect), CanStopAudioStreamFlag(), wxT("X") ),
|
||||
Command( wxT("PlayLooped"), XXO("&Loop Play"), FN(OnPlayLooped),
|
||||
CanStopAudioStreamFlag, wxT("Shift+Space") ),
|
||||
CanStopAudioStreamFlag(), wxT("Shift+Space") ),
|
||||
Command( wxT("Pause"), XXO("&Pause"), FN(OnPause),
|
||||
CanStopAudioStreamFlag, wxT("P") )
|
||||
CanStopAudioStreamFlag(), wxT("P") )
|
||||
),
|
||||
|
||||
Menu( wxT("Record"), XO("&Recording"),
|
||||
@ -1026,7 +1026,7 @@ MenuTable::BaseItemSharedPtr TransportMenu()
|
||||
#ifdef EXPERIMENTAL_PUNCH_AND_ROLL
|
||||
Command( wxT("PunchAndRoll"), XXO("Punch and Rol&l Record"),
|
||||
FN(OnPunchAndRoll),
|
||||
WaveTracksExistFlag | AudioIONotBusyFlag, wxT("Shift+D") ),
|
||||
WaveTracksExistFlag() | AudioIONotBusyFlag(), wxT("Shift+D") ),
|
||||
#endif
|
||||
|
||||
// JKC: I decided to duplicate this between play and record,
|
||||
@ -1034,7 +1034,7 @@ MenuTable::BaseItemSharedPtr TransportMenu()
|
||||
// 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") )
|
||||
CanStopAudioStreamFlag(), wxT("P") )
|
||||
),
|
||||
|
||||
// Scrubbing sub-menu
|
||||
@ -1048,25 +1048,25 @@ MenuTable::BaseItemSharedPtr TransportMenu()
|
||||
|
||||
Menu( wxT("PlayRegion"), XO("Pla&y Region"),
|
||||
Command( wxT("LockPlayRegion"), XXO("&Lock"), FN(OnLockPlayRegion),
|
||||
PlayRegionNotLockedFlag ),
|
||||
PlayRegionNotLockedFlag() ),
|
||||
Command( wxT("UnlockPlayRegion"), XXO("&Unlock"),
|
||||
FN(OnUnlockPlayRegion), PlayRegionLockedFlag )
|
||||
FN(OnUnlockPlayRegion), PlayRegionLockedFlag() )
|
||||
),
|
||||
|
||||
Separator(),
|
||||
|
||||
Command( wxT("RescanDevices"), XXO("R&escan Audio Devices"),
|
||||
FN(OnRescanDevices), AudioIONotBusyFlag | CanStopAudioStreamFlag ),
|
||||
FN(OnRescanDevices), AudioIONotBusyFlag() | CanStopAudioStreamFlag() ),
|
||||
|
||||
Menu( wxT("Options"), XO("Transport &Options"),
|
||||
// Sound Activated recording options
|
||||
Command( wxT("SoundActivationLevel"),
|
||||
XXO("Sound Activation Le&vel..."), FN(OnSoundActivated),
|
||||
AudioIONotBusyFlag | CanStopAudioStreamFlag ),
|
||||
AudioIONotBusyFlag() | CanStopAudioStreamFlag() ),
|
||||
Command( wxT("SoundActivation"),
|
||||
XXO("Sound A&ctivated Recording (on/off)"),
|
||||
FN(OnToggleSoundActivated),
|
||||
AudioIONotBusyFlag | CanStopAudioStreamFlag, checkOff ),
|
||||
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff ),
|
||||
Separator(),
|
||||
|
||||
Command( wxT("PinnedHead"), XXO("Pinned Play/Record &Head (on/off)"),
|
||||
@ -1077,10 +1077,10 @@ MenuTable::BaseItemSharedPtr TransportMenu()
|
||||
|
||||
Command( wxT("Overdub"), XXO("&Overdub (on/off)"),
|
||||
FN(OnTogglePlayRecording),
|
||||
AudioIONotBusyFlag | CanStopAudioStreamFlag, checkOn ),
|
||||
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOn ),
|
||||
Command( wxT("SWPlaythrough"), XXO("So&ftware Playthrough (on/off)"),
|
||||
FN(OnToggleSWPlaythrough),
|
||||
AudioIONotBusyFlag | CanStopAudioStreamFlag, checkOff )
|
||||
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
|
||||
|
||||
|
||||
#ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
|
||||
@ -1088,7 +1088,7 @@ MenuTable::BaseItemSharedPtr TransportMenu()
|
||||
Command( wxT("AutomatedInputLevelAdjustmentOnOff"),
|
||||
XXO("A&utomated Recording Level Adjustment (on/off)"),
|
||||
FN(OnToggleAutomatedInputLevelAdjustment),
|
||||
AudioIONotBusyFlag | CanStopAudioStreamFlag, checkOff )
|
||||
AudioIONotBusyFlag() | CanStopAudioStreamFlag(), checkOff )
|
||||
#endif
|
||||
)
|
||||
) ) };
|
||||
@ -1105,44 +1105,44 @@ MenuTable::BaseItemSharedPtr ExtraTransportMenu()
|
||||
// PlayStop is already in the menus.
|
||||
/* i18n-hint: (verb) Start playing audio*/
|
||||
Command( wxT("Play"), XXO("Pl&ay"), FN(OnPlayStop),
|
||||
WaveTracksExistFlag | AudioIONotBusyFlag ),
|
||||
WaveTracksExistFlag() | AudioIONotBusyFlag() ),
|
||||
/* i18n-hint: (verb) Stop playing audio*/
|
||||
Command( wxT("Stop"), XXO("Sto&p"), FN(OnStop),
|
||||
AudioIOBusyFlag | CanStopAudioStreamFlag ),
|
||||
AudioIOBusyFlag() | CanStopAudioStreamFlag() ),
|
||||
Command( wxT("PlayOneSec"), XXO("Play &One Second"), FN(OnPlayOneSecond),
|
||||
CaptureNotBusyFlag, wxT("1") ),
|
||||
CaptureNotBusyFlag(), wxT("1") ),
|
||||
Command( wxT("PlayToSelection"), XXO("Play to &Selection"),
|
||||
FN(OnPlayToSelection),
|
||||
CaptureNotBusyFlag, wxT("B") ),
|
||||
CaptureNotBusyFlag(), wxT("B") ),
|
||||
Command( wxT("PlayBeforeSelectionStart"),
|
||||
XXO("Play &Before Selection Start"), FN(OnPlayBeforeSelectionStart),
|
||||
CaptureNotBusyFlag, wxT("Shift+F5") ),
|
||||
CaptureNotBusyFlag(), wxT("Shift+F5") ),
|
||||
Command( wxT("PlayAfterSelectionStart"),
|
||||
XXO("Play Af&ter Selection Start"), FN(OnPlayAfterSelectionStart),
|
||||
CaptureNotBusyFlag, wxT("Shift+F6") ),
|
||||
CaptureNotBusyFlag(), wxT("Shift+F6") ),
|
||||
Command( wxT("PlayBeforeSelectionEnd"),
|
||||
XXO("Play Be&fore Selection End"), FN(OnPlayBeforeSelectionEnd),
|
||||
CaptureNotBusyFlag, wxT("Shift+F7") ),
|
||||
CaptureNotBusyFlag(), wxT("Shift+F7") ),
|
||||
Command( wxT("PlayAfterSelectionEnd"),
|
||||
XXO("Play Aft&er Selection End"), FN(OnPlayAfterSelectionEnd),
|
||||
CaptureNotBusyFlag, wxT("Shift+F8") ),
|
||||
CaptureNotBusyFlag(), wxT("Shift+F8") ),
|
||||
Command( wxT("PlayBeforeAndAfterSelectionStart"),
|
||||
XXO("Play Before a&nd After Selection Start"),
|
||||
FN(OnPlayBeforeAndAfterSelectionStart), CaptureNotBusyFlag,
|
||||
FN(OnPlayBeforeAndAfterSelectionStart), CaptureNotBusyFlag(),
|
||||
wxT("Ctrl+Shift+F5") ),
|
||||
Command( wxT("PlayBeforeAndAfterSelectionEnd"),
|
||||
XXO("Play Before an&d After Selection End"),
|
||||
FN(OnPlayBeforeAndAfterSelectionEnd), CaptureNotBusyFlag,
|
||||
FN(OnPlayBeforeAndAfterSelectionEnd), CaptureNotBusyFlag(),
|
||||
wxT("Ctrl+Shift+F7") ),
|
||||
Command( wxT("PlayCutPreview"), XXO("Play C&ut Preview"),
|
||||
FN(OnPlayCutPreview),
|
||||
CaptureNotBusyFlag, wxT("C") ),
|
||||
CaptureNotBusyFlag(), wxT("C") ),
|
||||
Command(wxT("KeyboardScrubBackwards"), XXO("Scrub Bac&kwards"),
|
||||
FN(OnKeyboardScrubBackwards),
|
||||
CaptureNotBusyFlag | CanStopAudioStreamFlag, wxT("U\twantKeyup")),
|
||||
CaptureNotBusyFlag() | CanStopAudioStreamFlag(), wxT("U\twantKeyup")),
|
||||
Command(wxT("KeyboardScrubForwards"), XXO("Scrub For&wards"),
|
||||
FN(OnKeyboardScrubForwards),
|
||||
CaptureNotBusyFlag | CanStopAudioStreamFlag, wxT("I\twantKeyup"))
|
||||
CaptureNotBusyFlag() | CanStopAudioStreamFlag(), wxT("I\twantKeyup"))
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
@ -1156,27 +1156,27 @@ MenuTable::BaseItemSharedPtr ExtraPlayAtSpeedMenu()
|
||||
Menu( wxT("PlayAtSpeed"), XO("&Play-at-Speed"),
|
||||
/* i18n-hint: 'Normal Play-at-Speed' doesn't loop or cut preview. */
|
||||
Command( wxT("PlayAtSpeed"), XXO("Normal Pl&ay-at-Speed"),
|
||||
FN(OnPlayAtSpeed), CaptureNotBusyFlag ),
|
||||
FN(OnPlayAtSpeed), CaptureNotBusyFlag() ),
|
||||
Command( wxT("PlayAtSpeedLooped"), XXO("&Loop Play-at-Speed"),
|
||||
FN(OnPlayAtSpeedLooped), CaptureNotBusyFlag ),
|
||||
FN(OnPlayAtSpeedLooped), CaptureNotBusyFlag() ),
|
||||
Command( wxT("PlayAtSpeedCutPreview"), XXO("Play C&ut Preview-at-Speed"),
|
||||
FN(OnPlayAtSpeedCutPreview), CaptureNotBusyFlag ),
|
||||
FN(OnPlayAtSpeedCutPreview), CaptureNotBusyFlag() ),
|
||||
Command( wxT("SetPlaySpeed"), XXO("Ad&just Playback Speed..."),
|
||||
FN(OnSetPlaySpeed), CaptureNotBusyFlag ),
|
||||
FN(OnSetPlaySpeed), CaptureNotBusyFlag() ),
|
||||
Command( wxT("PlaySpeedInc"), XXO("&Increase Playback Speed"),
|
||||
FN(OnPlaySpeedInc), CaptureNotBusyFlag ),
|
||||
FN(OnPlaySpeedInc), CaptureNotBusyFlag() ),
|
||||
Command( wxT("PlaySpeedDec"), XXO("&Decrease Playback Speed"),
|
||||
FN(OnPlaySpeedDec), CaptureNotBusyFlag ),
|
||||
FN(OnPlaySpeedDec), CaptureNotBusyFlag() ),
|
||||
|
||||
// These were on the original transcription toolbar.
|
||||
// But they are not on the
|
||||
// shortened one.
|
||||
Command( wxT("MoveToPrevLabel"), XXO("Move to &Previous Label"),
|
||||
FN(OnMoveToPrevLabel),
|
||||
CaptureNotBusyFlag | TrackPanelHasFocus, wxT("Alt+Left") ),
|
||||
CaptureNotBusyFlag() | TrackPanelHasFocus(), wxT("Alt+Left") ),
|
||||
Command( wxT("MoveToNextLabel"), XXO("Move to &Next Label"),
|
||||
FN(OnMoveToNextLabel),
|
||||
CaptureNotBusyFlag | TrackPanelHasFocus, wxT("Alt+Right") )
|
||||
CaptureNotBusyFlag() | TrackPanelHasFocus(), wxT("Alt+Right") )
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
|
@ -447,15 +447,15 @@ MenuTable::BaseItemSharedPtr ViewMenu()
|
||||
Menu( wxT("View"), XO("&View"),
|
||||
Menu( wxT("Zoom"), XO("&Zoom"),
|
||||
Command( wxT("ZoomIn"), XXO("Zoom &In"), FN(OnZoomIn),
|
||||
ZoomInAvailableFlag, wxT("Ctrl+1") ),
|
||||
ZoomInAvailableFlag(), wxT("Ctrl+1") ),
|
||||
Command( wxT("ZoomNormal"), XXO("Zoom &Normal"), FN(OnZoomNormal),
|
||||
TracksExistFlag, wxT("Ctrl+2") ),
|
||||
TracksExistFlag(), wxT("Ctrl+2") ),
|
||||
Command( wxT("ZoomOut"), XXO("Zoom &Out"), FN(OnZoomOut),
|
||||
ZoomOutAvailableFlag, wxT("Ctrl+3") ),
|
||||
ZoomOutAvailableFlag(), wxT("Ctrl+3") ),
|
||||
Command( wxT("ZoomSel"), XXO("&Zoom to Selection"), FN(OnZoomSel),
|
||||
TimeSelectedFlag, wxT("Ctrl+E") ),
|
||||
TimeSelectedFlag(), wxT("Ctrl+E") ),
|
||||
Command( wxT("ZoomToggle"), XXO("Zoom &Toggle"), FN(OnZoomToggle),
|
||||
TracksExistFlag, wxT("Shift+Z") ),
|
||||
TracksExistFlag(), wxT("Shift+Z") ),
|
||||
Separator(),
|
||||
Command( wxT("AdvancedVZoom"), XXO("Advanced &Vertical Zooming"),
|
||||
FN(OnAdvancedVZoom), AlwaysEnabledFlag,
|
||||
@ -464,21 +464,21 @@ MenuTable::BaseItemSharedPtr ViewMenu()
|
||||
|
||||
Menu( wxT("TrackSize"), XO("T&rack Size"),
|
||||
Command( wxT("FitInWindow"), XXO("&Fit to Width"), FN(OnZoomFit),
|
||||
TracksExistFlag, wxT("Ctrl+F") ),
|
||||
TracksExistFlag(), wxT("Ctrl+F") ),
|
||||
Command( wxT("FitV"), XXO("Fit to &Height"), FN(OnZoomFitV),
|
||||
TracksExistFlag, wxT("Ctrl+Shift+F") ),
|
||||
TracksExistFlag(), wxT("Ctrl+Shift+F") ),
|
||||
Command( wxT("CollapseAllTracks"), XXO("&Collapse All Tracks"),
|
||||
FN(OnCollapseAllTracks), TracksExistFlag, wxT("Ctrl+Shift+C") ),
|
||||
FN(OnCollapseAllTracks), TracksExistFlag(), wxT("Ctrl+Shift+C") ),
|
||||
Command( wxT("ExpandAllTracks"), XXO("E&xpand Collapsed Tracks"),
|
||||
FN(OnExpandAllTracks), TracksExistFlag, wxT("Ctrl+Shift+X") )
|
||||
FN(OnExpandAllTracks), TracksExistFlag(), wxT("Ctrl+Shift+X") )
|
||||
),
|
||||
|
||||
Menu( wxT("SkipTo"), XO("Sk&ip to"),
|
||||
Command( wxT("SkipSelStart"), XXO("Selection Sta&rt"),
|
||||
FN(OnGoSelStart), TimeSelectedFlag,
|
||||
FN(OnGoSelStart), TimeSelectedFlag(),
|
||||
Options{ wxT("Ctrl+["), XO("Skip to Selection Start") } ),
|
||||
Command( wxT("SkipSelEnd"), XXO("Selection En&d"), FN(OnGoSelEnd),
|
||||
TimeSelectedFlag,
|
||||
TimeSelectedFlag(),
|
||||
Options{ wxT("Ctrl+]"), XO("Skip to Selection End") } )
|
||||
),
|
||||
|
||||
@ -523,12 +523,12 @@ MenuTable::BaseItemSharedPtr ViewMenu()
|
||||
/* i18n-hint: Clicking this menu item shows the various editing steps
|
||||
that have been taken.*/
|
||||
Command( wxT("UndoHistory"), XXO("&History..."), FN(OnHistory),
|
||||
AudioIONotBusyFlag ),
|
||||
AudioIONotBusyFlag() ),
|
||||
|
||||
Command( wxT("Karaoke"), XXO("&Karaoke..."), FN(OnKaraoke),
|
||||
LabelTracksExistFlag ),
|
||||
LabelTracksExistFlag() ),
|
||||
Command( wxT("MixerBoard"), XXO("&Mixer Board..."), FN(OnMixerBoard),
|
||||
PlayableTracksExistFlag ),
|
||||
PlayableTracksExistFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
|
@ -131,11 +131,11 @@ MenuTable::BaseItemSharedPtr WindowMenu()
|
||||
/* 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") ),
|
||||
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 ),
|
||||
FN(OnMacZoom), NotMinimizedFlag() ),
|
||||
|
||||
Separator(),
|
||||
|
||||
|
@ -278,12 +278,12 @@ namespace {
|
||||
"Seeking" is normal speed playback but with skips, ...
|
||||
*/
|
||||
{ wxT("Scrub"), XO("&Scrub"), XO("Scrubbing"),
|
||||
CaptureNotBusyFlag | HasWaveDataFlag,
|
||||
CaptureNotBusyFlag() | HasWaveDataFlag,
|
||||
&Scrubber::OnScrub, false, &Scrubber::Scrubs,
|
||||
},
|
||||
|
||||
{ wxT("Seek"), XO("See&k"), XO("Seeking"),
|
||||
CaptureNotBusyFlag | HasWaveDataFlag,
|
||||
CaptureNotBusyFlag() | HasWaveDataFlag,
|
||||
&Scrubber::OnSeek, true, &Scrubber::Seeks,
|
||||
},
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user