Lumiera  0.pre.03
TimelineWidget Class Reference

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


Core timeline display (custom widget).

Top level entry point to the timeline display component.

WIP-WIP-rewrite as of 12/2016
At top level, this widget is split into a header pane (left) and a scrollable timeline body (right). The layout of both parts is aligned.

Definition at line 108 of file timeline/timeline-widget.hpp.

Public Member Functions

 TimelineWidget (BusTerm::ID identity, BusTerm::ID trackID, BusTerm &nexus)
 build a new timeline display and attach it to the UI-Bus. More...
 ~TimelineWidget ()
void buildMutator (lib::diff::TreeMutator::Handle)
 allow for diff mutation (delegated to TimelineController More...
cuString getLabel () const override
- Public Member Functions inherited from TimelinePage
 TimelinePage ()
virtual ~TimelinePage ()
 this is an interface More...

Private Attributes

std::unique_ptr< TimelineControllercontrol_
std::unique_ptr< TimelineLayoutlayout_

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 NonCopyable ()=default
 NonCopyable (NonCopyable const &)=delete
 ~NonCopyable ()=default
NonCopyableoperator= (NonCopyable const &)=delete

Constructor & Destructor Documentation

◆ TimelineWidget()

TimelineWidget ( BusTerm::ID  identity,
BusTerm::ID  trackID,
BusTerm nexus 

build a new timeline display and attach it to the UI-Bus.

identityused to refer to a corresponding element in the Session
trackIDthe mandatory root track used in the associated Sequence
nexussome established connection to the UI-Bus, will be used to register the embedded TimelineController as communication partner to respond under the given ID.
after creation, the widget can just be hooked up and wired like any ordinary GTK element; it becomes passive and just responds to signals. The active role is played by the controller, which also responds to mutation messages; this is the only way to populate the timeline display. Likewise, a timeline shall be deleted by sending an respective mutation message to its parent element, the one that created it, typically also in response to a message. Non the less it is possible just to delete a TimelineWidget, since it is a Gtk::Widget, and the controller is also sigc::trackable and additionally, as a gui::model::Tangible, it will deregister automatically from the UI-Bus. After that, any further messages towards this element will be dropped silently.

Definition at line 70 of file timeline/timeline-widget.cpp.

References TimelineWidget::control_, and TimelineWidget::layout_.

◆ ~TimelineWidget()

Definition at line 78 of file timeline/timeline-widget.cpp.

Member Function Documentation

◆ buildMutator()

void buildMutator ( lib::diff::TreeMutator::Handle  buff)

allow for diff mutation (delegated to TimelineController

Definition at line 82 of file timeline/timeline-widget.cpp.

References TimelineWidget::control_.

◆ getLabel()

cuString getLabel ( ) const

Implements TimelinePage.

Definition at line 89 of file timeline/timeline-widget.cpp.

References TimelineWidget::control_.

Member Data Documentation

◆ layout_

std::unique_ptr<TimelineLayout> layout_

Definition at line 112 of file timeline/timeline-widget.hpp.

Referenced by TimelineWidget::TimelineWidget().

◆ control_

+ Inheritance diagram for TimelineWidget:
+ Collaboration diagram for TimelineWidget:

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