Lumiera
0.pre.03
»edit your freedom«
|
#include "stage/timeline/timeline-gui.hpp"
smart-Handle as anchor point for "the UI representation" of a timeline.
A collection of TimelineGui elements is managed as children of the InteractionDirector. The corresponding TimelineWidget may or may not be present within the UI currently.
Definition at line 75 of file timeline-gui.hpp.
Public Member Functions | |
TimelineGui (ID identity, ID trackID) | |
Initially, TimelineGui is just an empty placeholder handle. More... | |
TimelineGui (TimelineGui const &) | |
TimelineGui (TimelineGui &&) | |
void | buildMutator (lib::diff::TreeMutator::Handle buffer) override |
forwarding implementation of the DiffMutable interface, delegating through the referred TimelineWidget if present, yet silently ignoring any diff messages otherwise. More... | |
std::unique_ptr< TimelinePage > | buildTimelineWidget (BusTerm &) |
actually build a TimelineWidget to enact the role represented by this smart-handle More... | |
ID | getID () const |
Public Member Functions inherited from WLink< TimelineWidget > | |
WLink (TimelineWidget &targetWidget) | |
WLink (WLink const &r) | |
WLink (WLink &&rr) | |
void | clear () |
detach and deactivate this link More... | |
void | connect (TimelineWidget &otherTarget) |
(re)connect this smart link to the given target. More... | |
bool | isActive () const |
bool | isValid () const |
operator bool () const | |
TimelineWidget & | operator* () const |
TimelineWidget * | operator-> () const |
WLink & | operator= (WLink other) |
Public Member Functions inherited from DiffMutable | |
virtual | ~DiffMutable () |
this is an interface | |
Private Types | |
using | ID = BusTerm::ID |
Private Attributes | |
ID | rootTrackID_ |
ID | timelineID_ |
Additional Inherited Members | |
Private Member Functions inherited from Cloneable | |
Cloneable (Cloneable &&)=default | |
Cloneable (Cloneable const &)=default | |
Cloneable & | operator= (Cloneable &&)=delete |
Cloneable & | operator= (Cloneable const &)=delete |
TimelineGui | ( | ID | identity, |
ID | trackID | ||
) |
Initially, TimelineGui is just an empty placeholder handle.
Yet knowledge of the represented timeline's ID is required
Definition at line 54 of file timeline-gui.cpp.
Referenced by TimelineGui::TimelineGui().
TimelineGui | ( | TimelineGui const & | r | ) |
Definition at line 63 of file timeline-gui.cpp.
References TimelineGui::TimelineGui().
unique_ptr< TimelinePage > buildTimelineWidget | ( | BusTerm & | nexus | ) |
actually build a TimelineWidget to enact the role represented by this smart-handle
actually build a TimelineWidget to enact the role represented by this smart-handle.
unique_ptr<TimelinePage>
, in order to be able to hold an empty placeholder page. Since C++ unfortunately does not support Covariance proper, we need to fabricate a unique_ptr<TimelinePage> right here, which can than be handed over to TimelinePanel, yet still we do inherit from WLink<TimelineWidget>, i.e. expose the subclass. The unque_ptr
owns and manages the TimelineWidget, which is itself non-copyable and stays at a fixed location in heap memory, as is required by stage::ctrl::Nexus to maintain a registration of the UI-Bus connection. WLink to the contrary just connects to the widget, and is automatically disconnected when it dies. Definition at line 95 of file timeline-gui.cpp.
References WLink< TimelineWidget >::connect().
|
overridevirtual |
forwarding implementation of the DiffMutable interface, delegating through the referred TimelineWidget if present, yet silently ignoring any diff messages otherwise.
this method is invoked by the UI-Bus when dispatching a MutationMessage...
Implements DiffMutable.
Definition at line 111 of file timeline-gui.cpp.
References TreeMutator::build(), and PlantingHandle< BA, DEFAULT >::emplace().