Lumiera  0.pre.03
»edit your freedom«
interaction-director.hpp File Reference

Go to the source code of this file.

Description

The top-level controller to connect model and user interaction state.

Within the Lumiera UI, relevant entities from the session model are mapped onto and represented by corresponding UI-Elements. Consequently, there is a hierarchy of interrelated UI elements mirroring the hierarchy within the session model. And, while in the latter, there is a conceptual root node to correspond to the session itself, within the UI there is a top-level controller to mirror and represent that root element: The InteractionDirector.

For one, the InteractionDirector represents and exposes parts of the model as seen from top level. More specifically, through the InteractionDirector, it is possible to open and enter the UI to work with the timeline(s), with the assets and with the global session configuration. Moreover, this top-level controller allows to issue likewise global actions regarding those top-level entities:

  • create / modify / delete timeline(s)
  • create / modify / sequences
  • save, close, open and create a session

And, secondly, beyond those top-level model-related activities, the InteractionDirector serves as link between model entities, actions to be performed onto them and the transient yet global user interaction state. The latter means anything related to the current window, the current focus, the current work-site, the current interface controller technology used etc. Obviously, the InteractionDirector can not handle all those heavyweight concerns; but it connects the involved parts and (re)directs the information flow towards the proper recipient to handle it.

See also
gtk-lumiera.hpp
ui-bus.hpp

Definition in file interaction-director.hpp.

#include "stage/model/controller.hpp"
#include "stage/timeline/timeline-gui.hpp"
#include "lib/depend-inject.hpp"
#include <vector>
#include <memory>

Classes

class  InteractionDirector
 Top-level controller to establish a link between the model and transient user interaction state (focus, current window) More...
 

Namespaces

 stage
 Lumiera GTK UI implementation root.
 
 stage::ctrl
 Backbone of the Lumiera GTK UI.
 
 stage::interact
 UI interaction control.
 
 stage::setting
 The asset management, configuration and project settings.
 
 stage::timeline
 The timeline display and editing operations.
 
 stage::workspace
 The global workspace with top-level windows.