![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "stage/timeline/track-profile.hpp"
Description of the structure and arrangement of tracks for display in the UI.
This sequence of verb tokens especially details the profile of a vertical cross-section; the nested structure of the track fork is translated into a series of steps and insets, running alongside the timeline display. To decouple the drawing code – thus allowing for later customisations – we let the individual TrackBody elements just emit these structure description.
WIP-WIP as of 4/2019
the number of pinned elements should be a member field, instead of sneaking it into the prelude element...
Definition at line 78 of file track-profile.hpp.
Public Member Functions | |
| bool | empty () const |
| void | clear () noexcept |
| void | performWith (ProfileInterpreter &interpreter) |
| void | performWith (ProfileInterpreter &interpreter, bool isRulerSegment) |
| A variation of standard evaluation, only rendering one segment of the profile. | |
| void | addSlopeDown () |
| void | addSlopeUp () |
| uint | getPrecedingSlopeUp () |
| void | markPrefixEnd () |
Private Types | |
| using | SlopeVerb = lib::VerbPack< ProfileInterpreter, void, ProfileInterpreter::MAX_ARG_SIZE > |
| using | Elements = std::vector< SlopeVerb > |
Private Member Functions | |
| template<typename FUN , typename... ARGS> | |
| void | append (FUN &&handler, Literal token, ARGS &&... params) |
| bool | lastEntryIs (Literal expectedToken) |
| void | incrementLastCloseSlope () |
| auto | filterSegment (bool selectPrefixPart) |
Private Attributes | |
| Elements | elements |
| int | pinnedPrefixCnt = 0 |
|
private |
Definition at line 80 of file track-profile.hpp.
Definition at line 81 of file track-profile.hpp.
|
inline |
Definition at line 90 of file track-profile.hpp.
References TrackProfile::elements.
|
inlinenoexcept |
Definition at line 96 of file track-profile.hpp.
References TrackProfile::elements.
Referenced by BodyCanvasWidget::disable(), and BodyCanvasWidget::slotStructureChange().
Here is the caller graph for this function:
|
inline |
Definition at line 102 of file track-profile.hpp.
References TrackProfile::elements.
|
inline |
A variation of standard evaluation, only rendering one segment of the profile.
The prelude verb defines a special prefix part of the track profile, which is assumed to correspond to the timecode ruler tracks. These special overview tracks are rendered always visible at the top of the timeline, even when scrolling down on large arrangements with several tracks. Effectively this means we have to split the TrackProfile into two segments, which are to be rendered within two distinct TimelineCanvas widgets (the first one always on top, while the second one with the actual track content is shown within a pane with scrollbars).
| selectRuler | decide if this evaluation shall render the overview rulers (when given true) or alternatively the remaining standard body part of the timeline (when given false). |
Definition at line 221 of file track-profile.hpp.
References TrackProfile::filterSegment().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 116 of file track-profile.hpp.
References TrackProfile::elements.
|
inline |
Definition at line 139 of file track-profile.hpp.
Referenced by TrackBody::establishTrackSpace().
Here is the caller graph for this function:
|
inline |
Definition at line 145 of file track-profile.hpp.
References TrackProfile::incrementLastCloseSlope(), and TrackProfile::lastEntryIs().
Referenced by TrackBody::establishTrackSpace().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 154 of file track-profile.hpp.
References TrackProfile::elements, and TrackProfile::lastEntryIs().
Referenced by TrackBody::establishTrackSpace().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 162 of file track-profile.hpp.
References TrackProfile::elements, and TrackProfile::pinnedPrefixCnt.
Referenced by TrackBody::establishTrackSpace().
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 169 of file track-profile.hpp.
References TrackProfile::elements.
Referenced by TrackProfile::addSlopeUp(), TrackProfile::getPrecedingSlopeUp(), and TrackProfile::incrementLastCloseSlope().
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 176 of file track-profile.hpp.
References TrackProfile::elements, and TrackProfile::lastEntryIs().
Referenced by TrackProfile::addSlopeUp().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 185 of file track-profile.hpp.
References TrackProfile::elements, lib::explore(), and TrackProfile::pinnedPrefixCnt.
Referenced by TrackProfile::performWith().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 83 of file track-profile.hpp.
Referenced by TrackProfile::append(), TrackProfile::clear(), TrackProfile::empty(), TrackProfile::filterSegment(), TrackProfile::getPrecedingSlopeUp(), TrackProfile::incrementLastCloseSlope(), TrackProfile::lastEntryIs(), TrackProfile::markPrefixEnd(), and TrackProfile::performWith().
|
private |
Definition at line 84 of file track-profile.hpp.
Referenced by TrackProfile::filterSegment(), and TrackProfile::markPrefixEnd().
Collaboration diagram for TrackProfile: