29#ifndef STAGE_TIMELINE_TRACK_PROFILE_H
30#define STAGE_TIMELINE_TRACK_PROFILE_H
105 slopeVerb.applyTo (interpreter);
114 template<
typename FUN,
typename...ARGS>
118 elements.emplace_back (forward<FUN>(handler), token, forward<ARGS>(params)...);
121#define TOKEN_BUILDER(_TOK_) \
122 template<typename...ARGS> \
124 append_ ## _TOK_ (ARGS&&... params)\
126 this->append (&ProfileInterpreter::_TOK_, STRINGIFY(_TOK_), forward<ARGS>(params)...); \
172 and
elements.back()->getID() == expectedToken;
187 struct CountingFilter
195 bool isPrefixPart = 0 < cnt--;
196 return selectPrefix? isPrefixPart : not isPrefixPart;
224 slopeVerb.applyTo (interpreter);
A self-contained token to embody a specific yet abstracted operation, together with a concrete set of...
virtual void open()=0
indicate entering a nested structure, typically as 3D inset
virtual void gap(uint h)=0
represent a gap to structure the display
virtual void close(uint n)=0
indicate the end of n nested structures, typically by ascending back n levels
virtual void coda(uint pad)=0
closing part of the timeline below track display, with pad additional padding
static const size_t MAX_ARG_SIZE
virtual void ruler(uint h)=0
represent an overview/ruler track with the given height
virtual ~ProfileInterpreter()
this is an interface
virtual void prelude()=0
start the track presentation at top of the timeline
virtual void content(uint h)=0
represent a content area with the given vertical extension
Description of the structure and arrangement of tracks for display in the UI.
auto filterSegment(bool selectPrefixPart)
std::vector< SlopeVerb > Elements
void incrementLastCloseSlope()
void performWith(ProfileInterpreter &interpreter)
void append(FUN &&handler, Literal token, ARGS &&... params)
uint getPrecedingSlopeUp()
bool lastEntryIs(Literal expectedToken)
A set of basic GTK includes for the UI.
Building tree expanding and backtracking evaluations within hierarchical scopes.
auto explore(IT &&srcSeq)
start building a IterExplorer by suitably wrapping the given iterable source.
Lumiera GTK UI implementation root.
bool isnil(lib::time::Duration const &dur)
Marker types to indicate a literal string and a Symbol.
#define TOKEN_BUILDER(_TOK_)
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
A specific double dispatch variation for function invocation.