Lumiera  0.pre.03
»edit your freedom«
timeline-gui.hpp File Reference

Go to the source code of this file.

Description

Anchor point and placeholder for the UI representation of a Timeline from the session.

TimelineGui elements are what is managed by the InteractionDirector as children reflecting the top-level collection of Timelines within the session. However, these elements are proxies, implemented as smart-handle for a widget – because the fact that a given timeline is indeed presented needs to remain at the UI's discretion, retaining the latter's total authority in question of interaction materiality. Moreover, the actual TimelineWidget is not at all attached within the InteractionDirector as a managing entity, it is rather installed as a child widget within a notebook control at some timeline docking panel. There could be several such timeline panels in various top-level windows, and it is a question within the user's workspace arrangement where exactly it will be placed, if at all. So TimelineGui acts as smart-handle to access such a widget, and it stands in as a proxy to receive diff messages for this given timeline. Yet when this timeline is not present in the UI, such diff messages and other UI-Bus messages addressed for this entity are to be silently ignored.

how the timeline presentation structure is built
The actual UI representation of a timeline tends to be a highly complex tree of interconnected widgets. There is no "master plan" knowledge within the UI how to build such a structure, rather this structure evolves in response to population diff messages from the core. Which in turn are either produced initially, or in answer to a population request originating from within the UI, prompted by the need to expose some timeline at a given place within the interface.
See also
stage::interact::InteractionDirector::buildMutator
stage::timeline::TimelineWidget

Definition in file timeline-gui.hpp.

#include "stage/ctrl/bus-term.hpp"
#include "stage/model/w-link.hpp"
#include "lib/diff/diff-mutable.hpp"
#include "lib/nocopy.hpp"
#include <memory>

Classes

class  TimelineGui
 smart-Handle as anchor point for "the UI representation" of a timeline. More...
 

Namespaces

 stage
 Lumiera GTK UI implementation root.
 
 stage::timeline
 The timeline display and editing operations.