Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
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:
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.
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. | |