1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-14 17:14:07 +01:00

Move code for Note track menu items

This commit is contained in:
Paul Licameli
2015-07-31 19:36:42 -04:00
committed by Paul Licameli
parent 01d5d30b7e
commit ba5f6ce411
3 changed files with 35 additions and 37 deletions

View File

@@ -21,6 +21,8 @@ Paul Licameli split from TrackPanel.cpp
#include "../../../../TrackPanelMouseEvent.h"
#include "../../../../NoteTrack.h"
#include "../../../../widgets/PopupMenuTable.h"
#include "../../../../Project.h"
#include "../../../../RefreshCode.h"
NoteTrackControls::NoteTrackControls()
{
@@ -85,6 +87,8 @@ public:
}
TrackControls::InitMenuData *mpData;
void OnChangeOctave(wxCommandEvent &);
};
NoteTrackMenuTable &NoteTrackMenuTable::Instance()
@@ -93,12 +97,43 @@ NoteTrackMenuTable &NoteTrackMenuTable::Instance()
return instance;
}
enum {
OnUpOctaveID = 30000,
OnDownOctaveID,
};
/// This only applies to MIDI tracks. Presumably, it shifts the
/// whole sequence by an octave.
void NoteTrackMenuTable::OnChangeOctave(wxCommandEvent &event)
{
NoteTrack *const pTrack = static_cast<NoteTrack*>(mpData->pTrack);
wxASSERT(event.GetId() == OnUpOctaveID
|| event.GetId() == OnDownOctaveID);
wxASSERT(pTrack->GetKind() == Track::Note);
const bool bDown = (OnDownOctaveID == event.GetId());
pTrack->SetBottomNote
(pTrack->GetBottomNote() + ((bDown) ? -12 : 12));
AudacityProject *const project = ::GetActiveProject();
project->ModifyState(true);
mpData->result = RefreshCode::RefreshAll;
}
BEGIN_POPUP_MENU(NoteTrackMenuTable)
POPUP_MENU_SEPARATOR()
POPUP_MENU_ITEM(OnUpOctaveID, _("Up &Octave"), OnChangeOctave)
POPUP_MENU_ITEM(OnDownOctaveID, _("Down Octa&ve"), OnChangeOctave)
END_POPUP_MENU()
PopupMenuTable *NoteTrackControls::GetMenuExtension(Track *)
{
#if defined(USE_MIDI)
return &NoteTrackMenuTable::Instance();
#else
return NULL;
#endif
}
#endif