52using lib::diff::collection;
53using std::make_unique;
70 class TrackHeadWidget;
77 : Controller{identity, nexus}
78 , name_{identity.getSym()}
135 using PMarker = unique_ptr<MarkerWidget>;
136 auto rootForkID =
fork_->getID();
141 .isApplicableIf ([&](
GenNode const& spec) ->
bool
145 .constructFrom ([&](
GenNode const& spec) -> PMarker
147 return make_unique<MarkerWidget>(spec.
idi, this->uiBus_);
151 target->buildMutator (buff);
157 fork_->buildMutator(buff);
A handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBu...
SUB & emplace(SUB &&implementation)
move-construct an instance of a subclass into the opaque buffer
bool isNested() const
determine if payload constitutes a nested scope ("object")
Customisable intermediary to abstract mutating operations on arbitrary, hierarchical object-like data...
static Builder< TreeMutator > build()
DSL: start building a custom adapted tree mutator, where the operations are tied by closures or wrapp...
connection point at the UI-Bus.
vector< unique_ptr< MarkerWidget > > markers_
TimelineController(ID identity, ID trackID, ctrl::BusTerm &nexus, TimelineLayout &)
std::unique_ptr< TrackPresenter > fork_
virtual void buildMutator(lib::diff::TreeMutator::Handle) override
set up a binding to respond to mutation messages via UiBus
Top-level anchor point for the timeline display (widgets).
void setupStructure(LayoutElement &)
A View-Model entity to represent a timeline track in the UI.
A set of basic GTK includes for the UI.
Lumiera GTK UI implementation root.
generic data element node within a tree
Controller to supervise operation of timeline display in the UI.
A core service of the timeline UI to ensure consistent display and layout of all components within th...
Presentation control element to model and manage a track within the timeline UI.
Hard wired key constants and basic definitions for communication with the GUI.