53 using std::make_unique;
70 class TrackHeadWidget;
77 : Controller{identity, nexus}
78 , name_{identity.getSym()}
82 layoutManager.setupStructure (*fork_);
86 TimelineController::~TimelineController()
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);
159 .change(ATTR_name, [&](
string val)
Hard wired key constants and basic definitions for communication with the GUI.
connection point at the UI-Bus.
bool isNested() const
determine if payload constitutes a nested scope ("object")
Top-level anchor point for the timeline display (widgets).
Presentation control element to model and manage a track within the timeline UI.
TimelineController(ID identity, ID trackID, ctrl::BusTerm &nexus, TimelineLayout &)
Controller to supervise operation of timeline display in the UI.
A View-Model entity to represent a timeline track in the UI.
static Builder< TreeMutator > build()
DSL: start building a custom adapted tree mutator, where the operations are tied by closures or wrapp...
SUB & emplace(SUB &&implementation)
move-construct an instance of a subclass into the opaque buffer
A core service of the timeline UI to ensure consistent display and layout of all components within th...
A handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBu...
virtual void buildMutator(lib::diff::TreeMutator::Handle) override
set up a binding to respond to mutation messages via UiBus
Lumiera GTK UI implementation root.
auto collection(COLL &coll)
Entry point to a nested DSL for setup and configuration of a collection binding.
A set of basic GTK includes for the UI.
generic data element node within a tree
Customisable intermediary to abstract mutating operations on arbitrary, hierarchical object-like data...