1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-21 08:27:13 +01:00

Simplify the FN macros in src/menus/*.cpp...

... Eliminate repetitious passing of the finder function into each of the
calls to Command and CommandGroup.
This commit is contained in:
Paul Licameli
2019-01-06 11:31:52 -05:00
parent 702b8b1e9d
commit 512c27d422
18 changed files with 233 additions and 123 deletions

View File

@@ -1274,16 +1274,16 @@ static CommandHandlerObject &findCommandHandler(AudacityProject &) {
// Menu definitions
#define FN(X) findCommandHandler, \
static_cast<CommandFunctorPointer>(& TrackActions::Handler :: X)
#define FN(X) (& TrackActions::Handler :: X)
MenuTable::BaseItemPtr TracksMenu( AudacityProject & )
{
// Tracks Menu (formerly Project Menu)
using namespace MenuTable;
using Options = CommandManager::Options;
return Menu( XO("&Tracks"),
return FinderScope( findCommandHandler ).Eval(
Menu( XO("&Tracks"),
Menu( XO("Add &New"),
Command( wxT("NewMonoTrack"), XXO("&Mono Track"), FN(OnNewWaveTrack),
AudioIONotBusyFlag, wxT("Ctrl+Shift+N") ),
@@ -1300,6 +1300,7 @@ MenuTable::BaseItemPtr TracksMenu( AudacityProject & )
Separator(),
Menu( 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.
@@ -1311,7 +1312,7 @@ MenuTable::BaseItemPtr TracksMenu( AudacityProject & )
return Command( wxT("Stereo to Mono"),
XXO("Mix Stereo Down to &Mono"), FN(OnStereoToMono),
AudioIONotBusyFlag | StereoRequiredFlag |
WaveTracksSelectedFlag );
WaveTracksSelectedFlag, Options{}, findCommandHandler );
else
return {};
},
@@ -1427,14 +1428,15 @@ MenuTable::BaseItemPtr TracksMenu( AudacityProject & )
Options{}.CheckState( gPrefs->Read(wxT("/GUI/SyncLockTracks"), 0L) ) )
#endif
);
) );
}
MenuTable::BaseItemPtr ExtraTrackMenu( AudacityProject & )
{
using namespace MenuTable;
return Menu( XO("&Track"),
return FinderScope( findCommandHandler ).Eval(
Menu( XO("&Track"),
Command( wxT("TrackPan"), XXO("Change P&an on Focused Track..."),
FN(OnTrackPan),
TrackPanelHasFocus | TracksExistFlag, wxT("Shift+P") ),
@@ -1478,7 +1480,7 @@ MenuTable::BaseItemPtr ExtraTrackMenu( AudacityProject & )
Command( wxT("TrackMoveBottom"), XXO("Move Focused Track to &Bottom"),
FN(OnTrackMoveBottom),
AudioIONotBusyFlag | TrackPanelHasFocus | TracksExistFlag )
);
) );
}
#undef FN