Lumiera  0.pre.03
»edityourfreedom«
TrackPresenter Class Reference

#include "gui/timeline/track-presenter.hpp"

Description

Todo:
WIP-WIP as of 12/2016

Definition at line 101 of file track-presenter.hpp.

Public Member Functions

template<class FUN >
 TrackPresenter (ID identity, ctrl::BusTerm &nexus, FUN anchorDisplay)
 
 ~TrackPresenter ()
 
virtual void buildMutator (lib::diff::TreeMutator::Handle) override
 set up a binding to respond to mutation messages via UiBus More...
 
- Public Member Functions inherited from Tangible
virtual ~Tangible ()
 this is an interface More...
 
void clearErr ()
 invoke the hook to clear error markers More...
 
void clearMsg ()
 invoke the hook to clear notification messages More...
 
void installExpander (Expander::ProbeFun, Expander::ChangeFun)
 Configure the (optional) functionality to expand or collapse the UI-Element. More...
 
void installRevealer (Revealer::RevealeItFun)
 Configure the (optional) functionality to bring the UI-Element into sight. More...
 
template<typename... ARGS>
void invoke (Symbol cmdID, ARGS &&...)
 
void invoke (Symbol cmdID, Rec &&arguments)
 Perform a command or action, once the execution context has been established. More...
 
template<typename... ARGS>
void invoke (Symbol cmdID, ARGS &&... args)
 convenience shortcut to issue a command with several arguments More...
 
void mark (GenNode const &)
 generic handler for all incoming "state mark" messages More...
 
void markErr (string error)
 push an error state tag to the element More...
 
void markFlash ()
 highlight the element visually to catch the user's attention More...
 
void markMsg (string message)
 push a notification (or warning) message to the element. More...
 
 operator ID () const
 
 operator LuidH () const
 
void reset ()
 invoke the generic reset hook More...
 
void slotCollapse ()
 Collapse or minimise this element and remember the collapsed state. More...
 
void slotExpand ()
 Expand this element and remember the expanded state. More...
 
void slotReveal ()
 Cause the element to be brought into sight. More...
 
- Public Member Functions inherited from DiffMutable
virtual ~DiffMutable ()
 this is an interface More...
 

Private Attributes

vector< unique_ptr< ClipPresenter > > clips_
 
DisplayFrame display_
 
vector< unique_ptr< MarkerWidget > > markers_
 
vector< unique_ptr< TrackPresenter > > subFork_
 

Additional Inherited Members

- Public Types inherited from Tangible
using ID = ctrl::BusTerm::ID
 
using LuidH = lib::hash::LuidH
 
- Protected Types inherited from Tangible
using GenNode = lib::diff::GenNode
 
using Rec = lib::diff::Rec
 
- Protected Member Functions inherited from Controller
virtual void doMark (GenNode const &mark) override
 default handler for all generic mark messages. More...
 
- Protected Member Functions inherited from Tangible
 Tangible (ID identity, ctrl::BusTerm &nexus)
 
virtual bool doExpand (bool yes)
 generic default implementation of the expand/collapse functionality. More...
 
virtual void doReveal ()
 generic default implementation of the "reveal" functionality. More...
 
- Protected Attributes inherited from Tangible
Expander expand_
 
Revealer reveal_
 
ctrl::BusTerm uiBus_
 

Constructor & Destructor Documentation

◆ ~TrackPresenter()

Definition at line 69 of file track-presenter.cpp.

◆ TrackPresenter()

TrackPresenter ( ID  identity,
ctrl::BusTerm nexus,
FUN  anchorDisplay 
)
inline
Parameters
identityused to refer to a corresponding session::Fork in the Session
nexusa way to connect this Controller to the UI-Bus.

Definition at line 119 of file track-presenter.hpp.

Member Function Documentation

◆ buildMutator()

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

set up a binding to respond to mutation messages via UiBus

Note
we distinguish between the contents of our three nested child collections based on the symbolic type field sent in the Record type within the diff representation
  • "Marker" designates a Marker object
  • "Clip" designates a Clip placed on this track
  • "Fork" designates a nested sub-track
See also
TimelineController::buildMutator() for a basic explanation of the data binding mechanism

Implements Tangible.

Definition at line 85 of file track-presenter.cpp.

References TrackPresenter::clips_, GenNode::data, TrackPresenter::display_, GenNode::idi, DisplayFrame::injectSubTrack(), TrackPresenter::markers_, DataCap::recordType(), TrackPresenter::subFork_, gui::TYPE_Clip, gui::TYPE_Fork, gui::TYPE_Marker, and Tangible::uiBus_.

+ Here is the call graph for this function:

Member Data Documentation

◆ display_

DisplayFrame display_
private

Definition at line 104 of file track-presenter.hpp.

Referenced by TrackPresenter::buildMutator().

◆ subFork_

vector<unique_ptr<TrackPresenter> > subFork_
private

Definition at line 106 of file track-presenter.hpp.

Referenced by TrackPresenter::buildMutator().

◆ markers_

vector<unique_ptr<MarkerWidget> > markers_
private

Definition at line 107 of file track-presenter.hpp.

Referenced by TrackPresenter::buildMutator().

◆ clips_

vector<unique_ptr<ClipPresenter> > clips_
private

Definition at line 108 of file track-presenter.hpp.

Referenced by TrackPresenter::buildMutator().

+ Inheritance diagram for TrackPresenter:
+ Collaboration diagram for TrackPresenter:

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