43 using std::unique_ptr;
55 : timelineID_{identity}
56 , rootTrackID_{trackID}
65 , timelineID_{r.timelineID_}
66 , rootTrackID_{r.rootTrackID_}
70 : WLink{std::move (rr)}
71 , timelineID_{rr.timelineID_}
72 , rootTrackID_{rr.rootTrackID_}
75 TimelineGui::~TimelineGui()
78 TODO (
"cascading destruction of the TimelineWidget");
94 unique_ptr<TimelinePage>
98 unique_ptr<TimelinePage> pageHandle {widget =
new TimelineWidget{timelineID_, rootTrackID_, nexus}};
113 if (this->isActive())
114 operator*().buildMutator (buffer);
118 .ignoreAllChanges());
smart-Handle as anchor point for "the UI representation" of a timeline.
connection point at the UI-Bus.
TimelineGui(ID identity, ID trackID)
Initially, TimelineGui is just an empty placeholder handle.
Anchor point and placeholder for the UI representation of a Timeline from the session.
std::unique_ptr< TimelinePage > buildTimelineWidget(BusTerm &)
actually build a TimelineWidget to enact the role represented by this smart-handle ...
void connect(TimelineWidget &otherTarget)
(re)connect this smart link to the given target.
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 handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBu...
Lumiera GTK UI implementation root.
Types marked with this mix-in may be created by copy-construction (or move construction), but may be not reassigned thereafter.
A set of basic GTK includes for the UI.
void buildMutator(lib::diff::TreeMutator::Handle buffer) override
forwarding implementation of the DiffMutable interface, delegating through the referred TimelineWidge...
Customisable intermediary to abstract mutating operations on arbitrary, hierarchical object-like data...