1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-04 09:39:42 +02:00
audacity/src/Menus.h
Paul-Licameli 5a6d5d1443 Add and use some ZoomInfo and ViewInfo member functions, so we can eliminate...
... miscellaneous direct uses of ZoomInfo::zoom to test and set zoom level.

This includes all the remaining assignments to it.

But moving TrackInfo::PositionToTime and TrackInfo::TimeToPosition into
ZoomInfo and using them is needed to eliminate many more uses.

Also #if'd out the unused AudacityProject::OnZoomToggle().
2015-07-19 11:44:02 -04:00

418 lines
8.8 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
Menus.h
Dominic Mazzoni
**********************************************************************/
#ifndef __AUDACITY_MENUS__
#define __AUDACITY_MENUS__
#include "Experimental.h"
// These are all member functions of class AudacityProject.
// Vaughan, 2010-08-05:
// Note that this file is included in a "public" section of Project.h.
// Most of these methods do not need to be public, and because
// we do not subclass AudacityProject, they should be "private."
// Because the ones that need to be public are intermixed,
// I've added "private" in just a few cases.
private:
void CreateMenusAndCommands();
void PopulateEffectsMenu(CommandManager *c, EffectType type, int batchflags, int realflags);
void AddEffectMenuItems(CommandManager *c, EffectPlugs & plugs, int batchflags, int realflags, bool isDefault);
void AddEffectMenuItemGroup(CommandManager *c, const wxArrayString & names, const PluginIDList & plugs, const wxArrayInt & flags, bool isDefault);
void CreateRecentFilesMenu(CommandManager *c);
void ModifyUndoMenuItems();
void ModifyToolbarMenus();
// Calls ModifyToolbarMenus() on all projects
void ModifyAllProjectToolbarMenus();
int GetFocusedFrame();
wxUint32 GetUpdateFlags();
double NearestZeroCrossing(double t0);
public:
//Adds label and returns index of label in labeltrack.
int DoAddLabel(const SelectedRegion& region);
private:
// Selecting a tool from the keyboard
void SetTool(int tool);
void OnSelectTool();
void OnZoomTool();
void OnEnvelopeTool();
void OnTimeShiftTool();
void OnDrawTool();
void OnMultiTool();
void OnNextTool();
void OnPrevTool();
public:
// Audio I/O Commands
void OnStop();
void OnPause();
void OnRecord();
void OnRecordAppend();
void OnStopSelect();
void OnSkipStart();
void OnSkipEnd();
void OnSeekLeftShort();
void OnSeekRightShort();
void OnSeekLeftLong();
void OnSeekRightLong();
// Different posibilities for playing sound
bool MakeReadyToPlay(bool loop = false, bool cutpreview = false); // Helper function that sets button states etc.
void OnPlayStop();
void OnPlayStopSelect();
void OnPlayOneSecond();
void OnPlayToSelection();
void OnPlayBeforeSelectionStart();
void OnPlayAfterSelectionStart();
void OnPlayBeforeSelectionEnd();
void OnPlayAfterSelectionEnd();
void OnPlayBeforeAndAfterSelectionStart();
void OnPlayBeforeAndAfterSelectionEnd();
void OnPlayLooped();
void OnPlayCutPreview();
// Wave track control
void OnTrackPan();
void OnTrackPanLeft();
void OnTrackPanRight();
void OnTrackGain();
void OnTrackGainInc();
void OnTrackGainDec();
void OnTrackMenu();
void OnTrackMute();
void OnTrackSolo();
void OnTrackClose();
void OnTrackMoveUp();
void OnTrackMoveDown();
void OnTrackMoveTop();
void OnTrackMoveBottom();
// Device control
void OnInputDevice();
void OnOutputDevice();
void OnAudioHost();
void OnInputChannels();
// Mixer control
void OnOutputGain();
void OnInputGain();
void OnOutputGainInc();
void OnOutputGainDec();
void OnInputGainInc();
void OnInputGainDec();
// Transcription control
void OnPlayAtSpeed();
void OnPlayAtSpeedLooped();
void OnPlayAtSpeedCutPreview();
void OnSetPlaySpeed();
void OnPlaySpeedInc();
void OnPlaySpeedDec();
// Moving track focus commands
void OnCursorUp();
void OnCursorDown();
void OnFirstTrack();
void OnLastTrack();
// Selection-Editing Commands
void OnShiftUp();
void OnShiftDown();
void OnToggle();
void OnCursorLeft(const wxEvent * evt);
void OnCursorRight(const wxEvent * evt);
void OnSelExtendLeft(const wxEvent * evt);
void OnSelExtendRight(const wxEvent * evt);
void OnSelContractLeft(const wxEvent * evt);
void OnSelContractRight(const wxEvent * evt);
void OnCursorShortJumpLeft();
void OnCursorShortJumpRight();
void OnCursorLongJumpLeft();
void OnCursorLongJumpRight();
void OnSelSetExtendLeft();
void OnSelSetExtendRight();
void OnSetLeftSelection();
void OnSetRightSelection();
void OnSelToStart();
void OnSelToEnd();
void OnZeroCrossing();
void OnLockPlayRegion();
void OnUnlockPlayRegion();
double GetTime(Track *t);
void OnSortTime();
void OnSortName();
void OnSnapToOff();
void OnSnapToNearest();
void OnSnapToPrior();
void OnFullScreen();
// File Menu
void OnNew();
void OnOpen();
void OnClose();
void OnSave();
void OnSaveAs();
#ifdef USE_LIBVORBIS
void OnSaveCompressed();
#endif
void OnCheckDependencies();
void OnExport();
void OnExportSelection();
void OnExportMultiple();
void OnExportLabels();
void OnExportMIDI();
void OnPreferences();
void OnPageSetup();
void OnPrint();
void OnExit();
// Edit Menu
public:
void OnUndo();
void OnRedo();
void OnCut();
void OnSplitCut();
void OnCopy();
void OnPaste();
private:
bool HandlePasteText(); // Handle text paste (into active label), if any. Return true if pasted.
bool HandlePasteNothingSelected(); // Return true if nothing selected, regardless of paste result.
public:
void OnPasteNewLabel();
void OnPasteOver();
void OnTrim();
void OnDelete();
void OnSplitDelete();
void OnSilence();
void OnSplit();
void OnSplitNew();
void OnJoin();
void OnDisjoin();
void OnDuplicate();
void OnCutLabels();
void OnSplitCutLabels();
void OnCopyLabels();
void OnDeleteLabels();
void OnSplitDeleteLabels();
void OnSilenceLabels();
void OnSplitLabels();
void OnJoinLabels();
void OnDisjoinLabels();
void OnSelectAll();
void OnSelectNone();
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
void OnToggleSpectralSelection();
void DoNextPeakFrequency(bool up);
void OnNextHigherPeakFrequency();
void OnNextLowerPeakFrequency();
#endif
void OnSelectCursorEnd();
void OnSelectStartCursor();
void OnSelectSyncLockSel();
void OnSelectAllTracks();
// View Menu
void OnZoomIn();
void OnZoomOut();
// void OnZoomToggle();
void OnZoomNormal();
void OnZoomFit();
void OnZoomFitV();
void DoZoomFitV();
void OnZoomSel();
void OnGoSelStart();
void OnGoSelEnd();
void OnExpandAllTracks();
void OnCollapseAllTracks();
void OnMuteAllTracks();
void OnUnMuteAllTracks();
void OnShowClipping();
void OnHistory();
void OnKaraoke();
void OnMixerBoard();
void OnPlotSpectrum();
void OnContrast();
void OnShowTransportToolBar();
void OnShowDeviceToolBar();
void OnShowEditToolBar();
void OnShowMeterToolBar();
void OnShowRecordMeterToolBar();
void OnShowPlayMeterToolBar();
void OnShowMixerToolBar();
void OnShowSelectionToolBar();
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
void OnShowSpectralSelectionToolBar();
#endif
void OnShowToolsToolBar();
void OnShowTranscriptionToolBar();
void OnResetToolBars();
void OnSimplifiedView();
// Transport Menu
void OnSoundActivated();
void OnToggleSoundActivated();
void OnTogglePlayRecording();
void OnToggleSWPlaythrough();
#ifdef AUTOMATED_INPUT_LEVEL_ADJUSTMENT
void OnToogleAutomatedInputLevelAdjustment();
#endif
void OnRescanDevices();
// Import Submenu
void OnImport();
void OnImportLabels();
void OnImportMIDI();
void OnImportRaw();
void OnEditMetadata();
void OnMixAndRender();
void OnMixAndRenderToNewTrack();
void HandleMixAndRender(bool toNewTrack);
private:
SelectedRegion mRegionSave;
public:
void OnSelectionSave();
void OnSelectionRestore();
void OnCursorTrackStart();
void OnCursorTrackEnd();
void OnCursorSelStart();
void OnCursorSelEnd();
void OnAlignNoSync(int index);
void OnAlign(int index);
void OnAlignMoveSel(int index);
void HandleAlign(int index, bool moveSel);
size_t mAlignLabelsCount;
#ifdef EXPERIMENTAL_SCOREALIGN
void OnScoreAlign();
#endif // EXPERIMENTAL_SCOREALIGN
// Tracks menu
void OnNewWaveTrack();
void OnNewStereoTrack();
void OnNewLabelTrack();
void OnNewTimeTrack();
void OnTimerRecord();
void OnRemoveTracks();
void OnSyncLock();
void OnAddLabel();
void OnAddLabelPlaying();
void OnEditLabels();
// Effect Menu
class OnEffectFlags
{
public:
// No flags specified
static const int kNone = 0x00;
// Flag used to disable prompting for configuration parameteres.
static const int kConfigured = 0x01;
// Flag used to disable saving the state after processing.
static const int kSkipState = 0x02;
};
bool OnEffect(const PluginID & ID, int flags = OnEffectFlags::kNone);
void OnRepeatLastEffect(int index);
void OnApplyChain();
void OnEditChains();
void OnStereoToMono(int index);
void OnManagePluginsMenu(EffectType Type);
void OnManageGenerators();
void OnManageEffects();
void OnManageAnalyzers();
// Help Menu
void OnAbout();
void OnQuickHelp();
void OnManual();
void OnCheckForUpdates();
void OnShowLog();
void OnHelpWelcome();
void OnBenchmark();
#if defined(EXPERIMENTAL_CRASH_REPORT)
void OnCrashReport();
#endif
void OnScreenshot();
void OnAudioDeviceInfo();
//
void OnSeparator();
// Keyboard navigation
void PrevFrame();
void NextFrame();
void PrevWindow();
void NextWindow();
void OnResample();
// Make sure we return to "public" for subsequent declarations in Project.h.
public:
#endif