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:
committed by
Paul Licameli
parent
01d5d30b7e
commit
ba5f6ce411
@@ -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
|
||||
Reference in New Issue
Block a user