mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-01 08:29:27 +02:00
Add Show/Hide Extra menus preference.
The new preference is in the view menu and on the Gui preferences page. Also Ext Menus rearranged to more closely match default toolbar order. Also F11 (a new menu command to show/hide maximised) now has a check mark. This change needs testing on mac as mac is pickier about when menus are updated.
This commit is contained in:
parent
031f8413f4
commit
6d361687d6
141
src/Menus.cpp
141
src/Menus.cpp
@ -789,6 +789,8 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
c->AddCheck(wxT("ShowExtraMenus"), _("&Extra Menus (on/off)"), FN(OnShowExtraMenus),
|
||||
gPrefs->Read(wxT("/GUI/ShowExtraMenus"), 0L), AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
c->AddCheck(wxT("ShowClipping"), _("&Show Clipping (on/off)"), FN(OnShowClipping),
|
||||
gPrefs->Read(wxT("/GUI/ShowClipping"), 0L), AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
@ -1221,41 +1223,29 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
SetMenuBar(menubar.release());
|
||||
}
|
||||
|
||||
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
auto menubar2 = c->AddMenuBar(wxT("ext-menu"));
|
||||
bool bShowExtraMenus;
|
||||
gPrefs->Read(wxT("/GUI/ShowExtraMenus"), &bShowExtraMenus, false);
|
||||
std::unique_ptr<wxMenuBar> menubar2;
|
||||
if( !bShowExtraMenus )
|
||||
{
|
||||
menubar2 = c->AddMenuBar(wxT("ext-menu"));
|
||||
c->SetOccultCommands(true);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Ext-Bar Menu
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
c->BeginMenu("Ext-Bar");
|
||||
c->BeginSubMenu( "Tools" );
|
||||
|
||||
c->AddItem(wxT("SelectTool"), _("Selection Tool"), FN(OnSelectTool), wxT("F1"));
|
||||
c->AddItem(wxT("EnvelopeTool"),_("Envelope Tool"), FN(OnEnvelopeTool), wxT("F2"));
|
||||
c->AddItem(wxT("DrawTool"), _("Draw Tool"), FN(OnDrawTool), wxT("F3"));
|
||||
c->AddItem(wxT("ZoomTool"), _("Zoom Tool"), FN(OnZoomTool), wxT("F4"));
|
||||
c->AddItem(wxT("TimeShiftTool"), _("Time Shift Tool"), FN(OnTimeShiftTool), wxT("F5"));
|
||||
c->AddItem(wxT("MultiTool"), _("Multi Tool"), FN(OnMultiTool), wxT("F6"));
|
||||
|
||||
c->AddItem(wxT("NextTool"), _("Next Tool"), FN(OnNextTool), wxT("D"));
|
||||
c->AddItem(wxT("PrevTool"), _("Previous Tool"), FN(OnPrevTool), wxT("A"));
|
||||
c->EndSubMenu();
|
||||
|
||||
c->BeginSubMenu("Transport");
|
||||
|
||||
// PlayStop is already in the menus.
|
||||
#if 1
|
||||
/* i18n-hint: (verb) Start playing audio*/
|
||||
c->AddItem(wxT("Play"), _("Play"), FN(OnPlayStop),
|
||||
WaveTracksExistFlag | AudioIONotBusyFlag,
|
||||
WaveTracksExistFlag | AudioIONotBusyFlag);
|
||||
#endif
|
||||
/* i18n-hint: (verb) Stop playing audio*/
|
||||
c->AddItem(wxT("Stop"), _("Stop"), FN(OnStop),
|
||||
AudioIOBusyFlag,
|
||||
@ -1280,29 +1270,22 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
CaptureNotBusyFlag);
|
||||
c->EndSubMenu();
|
||||
|
||||
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
c->BeginSubMenu("Tools");
|
||||
|
||||
c->BeginSubMenu( "Selection" );
|
||||
|
||||
c->AddItem(wxT("SnapToOff"), _("Snap To Off"), FN(OnSnapToOff));
|
||||
c->AddItem(wxT("SnapToNearest"), _("Snap To Nearest"), FN(OnSnapToNearest));
|
||||
c->AddItem(wxT("SnapToPrior"), _("Snap To Prior"), FN(OnSnapToPrior));
|
||||
|
||||
c->AddItem(wxT("SelStart"), _("Selection to Start"), FN(OnSelToStart), wxT("Shift+Home"));
|
||||
c->AddItem(wxT("SelEnd"), _("Selection to End"), FN(OnSelToEnd), wxT("Shift+End"));
|
||||
c->AddItem(wxT("SelExtLeft"), _("Selection Extend Left"), FN(OnSelExtendLeft), wxT("Shift+Left\twantKeyup\tallowDup"));
|
||||
c->AddItem(wxT("SelExtRight"), _("Selection Extend Right"), FN(OnSelExtendRight), wxT("Shift+Right\twantKeyup\tallowDup"));
|
||||
|
||||
c->AddItem(wxT("SelSetExtLeft"), _("Set (or Extend) Left Selection"), FN(OnSelSetExtendLeft));
|
||||
c->AddItem(wxT("SelSetExtRight"), _("Set (or Extend) Right Selection"), FN(OnSelSetExtendRight));
|
||||
|
||||
c->AddItem(wxT("SelCntrLeft"), _("Selection Contract Left"), FN(OnSelContractLeft), wxT("Ctrl+Shift+Right\twantKeyup"));
|
||||
c->AddItem(wxT("SelCntrRight"), _("Selection Contract Right"), FN(OnSelContractRight), wxT("Ctrl+Shift+Left\twantKeyup"));
|
||||
c->AddItem(wxT("SelectTool"), _("Selection Tool"), FN(OnSelectTool), wxT("F1"));
|
||||
c->AddItem(wxT("EnvelopeTool"), _("Envelope Tool"), FN(OnEnvelopeTool), wxT("F2"));
|
||||
c->AddItem(wxT("DrawTool"), _("Draw Tool"), FN(OnDrawTool), wxT("F3"));
|
||||
c->AddItem(wxT("ZoomTool"), _("Zoom Tool"), FN(OnZoomTool), wxT("F4"));
|
||||
c->AddItem(wxT("TimeShiftTool"), _("Time Shift Tool"), FN(OnTimeShiftTool), wxT("F5"));
|
||||
c->AddItem(wxT("MultiTool"), _("Multi Tool"), FN(OnMultiTool), wxT("F6"));
|
||||
|
||||
c->AddItem(wxT("NextTool"), _("Next Tool"), FN(OnNextTool), wxT("D"));
|
||||
c->AddItem(wxT("PrevTool"), _("Previous Tool"), FN(OnPrevTool), wxT("A"));
|
||||
c->EndSubMenu();
|
||||
|
||||
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
c->BeginSubMenu("Edit");
|
||||
c->AddItem(wxT("DeleteKey"), _("DeleteKey"), FN(OnDelete), wxT("Backspace"),
|
||||
AudioIONotBusyFlag | TracksSelectedFlag | TimeSelectedFlag,
|
||||
@ -1314,18 +1297,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->EndSubMenu();
|
||||
|
||||
|
||||
c->BeginSubMenu( "Scrub" );
|
||||
c->SetDefaultFlags(AudioIOBusyFlag, AudioIOBusyFlag);
|
||||
|
||||
c->AddItem(wxT("SeekLeftShort"), _("Short seek left during playback"), FN(OnSeekLeftShort), wxT("Left\tallowDup"));
|
||||
c->AddItem(wxT("SeekRightShort"),_("Short seek right during playback"), FN(OnSeekRightShort), wxT("Right\tallowDup"));
|
||||
c->AddItem(wxT("SeekLeftLong"), _("Long seek left during playback"), FN(OnSeekLeftLong), wxT("Shift+Left\tallowDup"));
|
||||
c->AddItem(wxT("SeekRightLong"), _("Long Seek right during playback"), FN(OnSeekRightLong), wxT("Shift+Right\tallowDup"));
|
||||
c->EndSubMenu();
|
||||
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
|
||||
c->BeginSubMenu("Device");
|
||||
|
||||
c->AddItem(wxT("InputDevice"), _("Change recording device"), FN(OnInputDevice), wxT("Shift+I"),
|
||||
@ -1351,9 +1323,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddItem(wxT("InputGainDec"), _("Decrease recording volume"), FN(OnInputGainDec));
|
||||
c->EndSubMenu();
|
||||
|
||||
|
||||
c->SetDefaultFlags(CaptureNotBusyFlag, CaptureNotBusyFlag);
|
||||
|
||||
c->BeginSubMenu("Transcription");
|
||||
|
||||
c->AddItem(wxT("PlayAtSpeed"), _("Play-at-Speed"), FN(OnPlayAtSpeed));
|
||||
@ -1371,6 +1341,35 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
CaptureNotBusyFlag | TrackPanelHasFocus, CaptureNotBusyFlag | TrackPanelHasFocus);
|
||||
c->EndSubMenu();
|
||||
|
||||
c->BeginSubMenu("Scrub");
|
||||
c->SetDefaultFlags(AudioIOBusyFlag, AudioIOBusyFlag);
|
||||
|
||||
c->AddItem(wxT("SeekLeftShort"), _("Short seek left during playback"), FN(OnSeekLeftShort), wxT("Left\tallowDup"));
|
||||
c->AddItem(wxT("SeekRightShort"), _("Short seek right during playback"), FN(OnSeekRightShort), wxT("Right\tallowDup"));
|
||||
c->AddItem(wxT("SeekLeftLong"), _("Long seek left during playback"), FN(OnSeekLeftLong), wxT("Shift+Left\tallowDup"));
|
||||
c->AddItem(wxT("SeekRightLong"), _("Long Seek right during playback"), FN(OnSeekRightLong), wxT("Shift+Right\tallowDup"));
|
||||
c->EndSubMenu();
|
||||
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
c->BeginSubMenu("Selection");
|
||||
|
||||
c->AddItem(wxT("SnapToOff"), _("Snap To Off"), FN(OnSnapToOff));
|
||||
c->AddItem(wxT("SnapToNearest"), _("Snap To Nearest"), FN(OnSnapToNearest));
|
||||
c->AddItem(wxT("SnapToPrior"), _("Snap To Prior"), FN(OnSnapToPrior));
|
||||
|
||||
c->AddItem(wxT("SelStart"), _("Selection to Start"), FN(OnSelToStart), wxT("Shift+Home"));
|
||||
c->AddItem(wxT("SelEnd"), _("Selection to End"), FN(OnSelToEnd), wxT("Shift+End"));
|
||||
c->AddItem(wxT("SelExtLeft"), _("Selection Extend Left"), FN(OnSelExtendLeft), wxT("Shift+Left\twantKeyup\tallowDup"));
|
||||
c->AddItem(wxT("SelExtRight"), _("Selection Extend Right"), FN(OnSelExtendRight), wxT("Shift+Right\twantKeyup\tallowDup"));
|
||||
|
||||
c->AddItem(wxT("SelSetExtLeft"), _("Set (or Extend) Left Selection"), FN(OnSelSetExtendLeft));
|
||||
c->AddItem(wxT("SelSetExtRight"), _("Set (or Extend) Right Selection"), FN(OnSelSetExtendRight));
|
||||
|
||||
c->AddItem(wxT("SelCntrLeft"), _("Selection Contract Left"), FN(OnSelContractLeft), wxT("Ctrl+Shift+Right\twantKeyup"));
|
||||
c->AddItem(wxT("SelCntrRight"), _("Selection Contract Right"), FN(OnSelContractRight), wxT("Ctrl+Shift+Left\twantKeyup"));
|
||||
|
||||
c->EndSubMenu();
|
||||
|
||||
c->EndMenu();
|
||||
|
||||
|
||||
@ -1379,18 +1378,17 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
c->BeginMenu("Ext-Command");
|
||||
c->AddGlobalCommand(wxT("PrevWindow"), _("Move backward thru active windows"), FN(PrevWindow), wxT("Alt+Shift+F6"));
|
||||
c->AddGlobalCommand(wxT("NextWindow"), _("Move forward thru active windows"), FN(NextWindow), wxT("Alt+F6"));
|
||||
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
c->BeginSubMenu("Focus");
|
||||
c->AddItem(wxT("PrevFrame"), _("Move backward from toolbars to tracks"), FN(PrevFrame), wxT("Ctrl+Shift+F6"));
|
||||
c->AddItem(wxT("NextFrame"), _("Move forward from toolbars to tracks"), FN(NextFrame), wxT("Ctrl+F6"));
|
||||
|
||||
c->SetDefaultFlags(TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag | TrackPanelHasFocus);
|
||||
|
||||
c->AddItem(wxT("PrevTrack"), _("Move Focus to Previous Track"), FN(OnCursorUp), wxT("Up"));
|
||||
c->AddItem(wxT("NextTrack"), _("Move Focus to Next Track"), FN(OnCursorDown), wxT("Down"));
|
||||
c->AddItem(wxT("FirstTrack"), _("Move Focus to First Track"), FN(OnFirstTrack), wxT("Ctrl+Home"));
|
||||
@ -1436,12 +1434,15 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddItem(wxT("TrackMoveBottom"), _("Move focused track to bottom"), FN(OnTrackMoveBottom));
|
||||
c->EndSubMenu();
|
||||
|
||||
c->AddItem(wxT("FullScreenOnOff"), _("Full screen on/off"), FN(OnFullScreen),
|
||||
// Accel key is not bindable.
|
||||
c->AddItem(wxT("FullScreenOnOff"), _("Full screen (on/off)"), FN(OnFullScreen),
|
||||
#ifdef __WXMAC__
|
||||
wxT("Ctrl+/"));
|
||||
wxT("Ctrl+/"),
|
||||
#else
|
||||
wxT("F11"));
|
||||
wxT("F11"),
|
||||
#endif
|
||||
AlwaysEnabledFlag, AlwaysEnabledFlag,
|
||||
wxTopLevelWindow::IsFullScreen() ? 1:0); // Check Mark.
|
||||
|
||||
#ifdef __WXMAC__
|
||||
/* i8n-hint: Shrink all project windows to icons on the Macintosh tooldock */
|
||||
@ -1452,6 +1453,10 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->EndMenu();
|
||||
|
||||
|
||||
SetMenuBar(menubar.release());
|
||||
}
|
||||
|
||||
|
||||
|
||||
mLastFlags = AlwaysEnabledFlag;
|
||||
|
||||
@ -3854,12 +3859,7 @@ void AudacityProject::OnRepeatLastEffect(int WXUNUSED(index))
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void AudacityProject::OnManagePluginsMenu(EffectType type)
|
||||
{
|
||||
if (PluginManager::Get().ShowManager(this, type))
|
||||
{
|
||||
void AudacityProject::RebuildAllMenuBars(){
|
||||
for( size_t i = 0; i < gAudacityProjects.size(); i++ ) {
|
||||
AudacityProject *p = gAudacityProjects[i].get();
|
||||
|
||||
@ -3876,6 +3876,11 @@ void AudacityProject::OnManagePluginsMenu(EffectType type)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void AudacityProject::OnManagePluginsMenu(EffectType type)
|
||||
{
|
||||
if (PluginManager::Get().ShowManager(this, type))
|
||||
RebuildAllMenuBars();
|
||||
}
|
||||
|
||||
void AudacityProject::OnManageGenerators()
|
||||
@ -5841,6 +5846,15 @@ void AudacityProject::OnShowClipping()
|
||||
mTrackPanel->Refresh(false);
|
||||
}
|
||||
|
||||
void AudacityProject::OnShowExtraMenus()
|
||||
{
|
||||
bool checked = !gPrefs->Read(wxT("/GUI/ShowExtraMenus"), 0L);
|
||||
gPrefs->Write(wxT("/GUI/ShowExtraMenus"), checked);
|
||||
gPrefs->Flush();
|
||||
mCommandManager.Check(wxT("ShowExtraMenus"), checked);
|
||||
RebuildAllMenuBars();
|
||||
}
|
||||
|
||||
void AudacityProject::OnHistory()
|
||||
{
|
||||
if (!mHistoryWindow)
|
||||
@ -7681,10 +7695,9 @@ void AudacityProject::OnSnapToPrior()
|
||||
|
||||
void AudacityProject::OnFullScreen()
|
||||
{
|
||||
if(wxTopLevelWindow::IsFullScreen())
|
||||
wxTopLevelWindow::ShowFullScreen(false);
|
||||
else
|
||||
wxTopLevelWindow::ShowFullScreen(true);
|
||||
bool bChecked = !wxTopLevelWindow::IsFullScreen();
|
||||
wxTopLevelWindow::ShowFullScreen(bChecked);
|
||||
mCommandManager.Check(wxT("FullScreenOnOff"), bChecked);
|
||||
}
|
||||
|
||||
void AudacityProject::OnCursorLeft(bool shift, bool ctrl, bool keyup)
|
||||
|
@ -320,6 +320,7 @@ void OnMuteAllTracks();
|
||||
void OnUnMuteAllTracks();
|
||||
|
||||
void OnShowClipping();
|
||||
void OnShowExtraMenus();
|
||||
|
||||
void OnHistory();
|
||||
|
||||
@ -449,10 +450,13 @@ void OnApplyChain();
|
||||
void OnEditChains();
|
||||
void OnStereoToMono(int index);
|
||||
void OnManagePluginsMenu(EffectType Type);
|
||||
void RebuildAllMenuBars();
|
||||
void OnManageGenerators();
|
||||
void OnManageEffects();
|
||||
void OnManageAnalyzers();
|
||||
|
||||
|
||||
|
||||
// Help Menu
|
||||
|
||||
void OnAbout();
|
||||
|
@ -169,11 +169,19 @@ void GUIPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.StartStatic(_("Behaviors"));
|
||||
S.StartStatic(_("Show / Hide"));
|
||||
{
|
||||
S.TieCheckBox(_("S&how 'How to Get Help' dialog box at program start up"),
|
||||
wxT("/GUI/ShowSplashScreen"),
|
||||
true);
|
||||
S.TieCheckBox(_("Show e&xtra menus."),
|
||||
wxT("/GUI/ShowExtraMenus"),
|
||||
false);
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.StartStatic(_("Behaviors"));
|
||||
{
|
||||
S.TieCheckBox(_("&Beep on completion of longer activities"),
|
||||
wxT("/GUI/BeepOnCompletion"),
|
||||
false);
|
||||
|
Loading…
x
Reference in New Issue
Block a user