Audacity 3.2.0
|
Public Member Functions | |
NoteTrackShifter (NoteTrack &track) | |
~NoteTrackShifter () override | |
Track & | GetTrack () const override |
There is always an associated track. More... | |
HitTestResult | HitTest (double time, const ViewInfo &viewInfo, HitTestParams *) override |
Decide how shift behaves, based on the track that is clicked in. More... | |
void | SelectInterval (TimeInterval interval) override |
Notifies the shifter that a region is selected, so it may update its fixed and moving intervals. More... | |
bool | SyncLocks () override |
Whether unfixing of an interval should propagate to all overlapping intervals in the sync lock group. More... | |
double | AdjustT0 (double t0) const override |
Public Member Functions inherited from TrackShifter | |
TrackShifter () | |
TrackShifter (const TrackShifter &)=delete | |
TrackShifter & | operator= (const TrackShifter &)=delete |
virtual | ~TrackShifter ()=0 |
virtual Track & | GetTrack () const =0 |
There is always an associated track. More... | |
virtual HitTestResult | HitTest (double time, const ViewInfo &viewInfo, HitTestParams *pParams=nullptr)=0 |
Decide how shift behaves, based on the track that is clicked in. More... | |
const Intervals & | FixedIntervals () const |
Return special intervals of the track that will not move. More... | |
const Intervals & | MovingIntervals () const |
Return special intervals of the track that may move. More... | |
void | UnfixIntervals (std::function< bool(const ChannelGroupInterval &)> pred) |
Change intervals satisfying a predicate from fixed to moving. More... | |
void | UnfixAll () |
Change all intervals from fixed to moving. More... | |
virtual void | SelectInterval (TimeInterval interval) |
Notifies the shifter that a region is selected, so it may update its fixed and moving intervals. More... | |
virtual bool | SyncLocks ()=0 |
Whether unfixing of an interval should propagate to all overlapping intervals in the sync lock group. More... | |
virtual double | HintOffsetLarger (double desiredOffset) |
Given amount to shift by horizontally, maybe adjust it from zero to suggest minimum distance. More... | |
virtual double | QuantizeOffset (double desiredOffset) |
Given amount to shift by horizontally, do any preferred rounding, before placement constraint checks. More... | |
virtual double | AdjustOffsetSmaller (double desiredOffset) |
Given amount to shift by horizontally, maybe adjust it toward zero to meet placement constraints. More... | |
virtual bool | MayMigrateTo (Track &otherTrack) |
virtual Intervals | Detach () |
Remove all moving intervals from the track, if possible. More... | |
virtual bool | AdjustFit (const Track &otherTrack, const Intervals &intervals, double &desiredOffset, double tolerance) |
virtual bool | Attach (Intervals intervals, double offset) |
Put moving intervals into the track, which may have migrated from another. More... | |
virtual bool | FinishMigration () |
When dragging is done, do (once) the final steps of migration (which may be expensive) More... | |
virtual void | DoHorizontalOffset (double offset) |
virtual double | AdjustT0 (double t0) const |
Private Attributes | |
const std::shared_ptr< NoteTrack > | mpTrack |
Additional Inherited Members | |
Public Types inherited from TrackShifter | |
enum class | HitTestResult { Miss , Selection , Intervals , Track } |
Possibilities for HitTest on the clicked track. More... | |
using | Intervals = std::vector< std::shared_ptr< ChannelGroupInterval > > |
Protected Member Functions inherited from TrackShifter | |
void | CommonSelectInterval (TimeInterval interval) |
bool | CommonMayMigrateTo (Track &otherTrack) |
void | InitIntervals () |
Derived class constructor can initialize all intervals reported by the track as fixed, none moving. More... | |
bool | AllFixed () const |
Protected Attributes inherited from TrackShifter | |
Intervals | mFixed |
Intervals | mMoving |
Definition at line 10 of file NoteTrackShifter.cpp.
|
inline |
Definition at line 12 of file NoteTrackShifter.cpp.
References TrackShifter::InitIntervals().
|
inlineoverride |
Definition at line 17 of file NoteTrackShifter.cpp.
|
inlineoverridevirtual |
Reimplemented from TrackShifter.
Definition at line 41 of file NoteTrackShifter.cpp.
References GetTrack().
|
inlineoverridevirtual |
There is always an associated track.
Implements TrackShifter.
Definition at line 18 of file NoteTrackShifter.cpp.
References mpTrack.
Referenced by AdjustT0().
|
inlineoverridevirtual |
Decide how shift behaves, based on the track that is clicked in.
If the return value is Intervals or Selection, then some intervals may be marked moving as a side effect
!pParams || (time == pParams->viewInfo.PositionToTime(pParams->xx, pParams->rect.x))
time | A time value to test |
pParams | Optional extra information |
Implements TrackShifter.
Definition at line 20 of file NoteTrackShifter.cpp.
References TrackShifter::Intervals, mpTrack, ViewInfo::selectedRegion, TrackShifter::Selection, NotifyingSelectedRegion::t0(), NotifyingSelectedRegion::t1(), and TrackShifter::UnfixAll().
|
inlineoverridevirtual |
Notifies the shifter that a region is selected, so it may update its fixed and moving intervals.
Default behavior: if any part of the track is selected, unfix all parts of it.
Reimplemented from TrackShifter.
Definition at line 32 of file NoteTrackShifter.cpp.
References TrackShifter::CommonSelectInterval().
|
inlineoverridevirtual |
Whether unfixing of an interval should propagate to all overlapping intervals in the sync lock group.
Implements TrackShifter.
Definition at line 37 of file NoteTrackShifter.cpp.
|
private |
Definition at line 53 of file NoteTrackShifter.cpp.
Referenced by GetTrack(), and HitTest().