![]() |
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().