1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-03 09:09:47 +02:00
Paul Licameli 6f89c48873 Reimplement Track::Pointer using std::enable_shared_from_this...
... now the Track need not be owned yet by a TrackList
2019-03-16 13:11:32 -04:00

54 lines
1.3 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
NoteTrackUI.cpp
Paul Licameli split from TrackPanel.cpp
**********************************************************************/
#include "../../../../Audacity.h"
#ifdef USE_MIDI
#include "../../../../NoteTrack.h"
#include "NoteTrackControls.h"
#include "NoteTrackVRulerControls.h"
#include "../../../../HitTestResult.h"
#include "../../../../Project.h"
#include "../../../../TrackPanelMouseEvent.h"
#include "../../../ui/SelectHandle.h"
#include "StretchHandle.h"
std::vector<UIHandlePtr> NoteTrack::DetailedHitTest
(const TrackPanelMouseState &WXUNUSED(state),
const AudacityProject *WXUNUSED(pProject), int, bool )
{
// Eligible for stretch?
UIHandlePtr result;
std::vector<UIHandlePtr> results;
#ifdef USE_MIDI
#ifdef EXPERIMENTAL_MIDI_STRETCHING
result = StretchHandle::HitTest(
mStretchHandle, state, pProject, Pointer<NoteTrack>(this) );
if (result)
results.push_back(result);
#endif
#endif
return results;
}
std::shared_ptr<TrackControls> NoteTrack::GetControls()
{
return std::make_shared<NoteTrackControls>( SharedPointer() );
}
std::shared_ptr<TrackVRulerControls> NoteTrack::GetVRulerControls()
{
return std::make_shared<NoteTrackVRulerControls>( SharedPointer() );
}
#endif