Lumiera  0.pre.03
»edit your freedom«
TimelineGui Class Reference

#include "stage/timeline/timeline-gui.hpp"

Description

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< TimelinePagebuildTimelineWidget (BusTerm &)
 actually build a TimelineWidget to enact the role represented by this smart-handle More...
 
ID getID () const
 
- 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
 
Cloneableoperator= (Cloneable &&)=delete
 
Cloneableoperator= (Cloneable const &)=delete
 

Constructor & Destructor Documentation

◆ TimelineGui() [1/2]

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().

+ Here is the caller graph for this function:

◆ TimelineGui() [2/2]

TimelineGui ( TimelineGui const &  r)
Remarks
basically the default copy ctor, just redefined here explicitly to allow using TimelineGui without the need to include timeline-widget.hpp

Definition at line 63 of file timeline-gui.cpp.

References TimelineGui::TimelineGui().

+ Here is the call graph for this function:

Member Function Documentation

◆ buildTimelineWidget()

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.

Remarks
some implementation twist involved here, since TimelinePanel manages a collection of 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().

+ Here is the call graph for this function:

◆ buildMutator()

void buildMutator ( lib::diff::TreeMutator::Handle  buffer)
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...

See also
tree-mutator.hpp

Implements DiffMutable.

Definition at line 111 of file timeline-gui.cpp.

References TreeMutator::build(), and PlantingHandle< BA, DEFAULT >::emplace().

+ Here is the call graph for this function:
+ Inheritance diagram for TimelineGui:
+ Collaboration diagram for TimelineGui:

The documentation for this class was generated from the following files: