Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Hard wired definitions for the object identification system used within the UI.
Within the UI-Layer, all components of global relevance are connected to the UI-Bus and can thus be reached just by knowing their ID. This allows to address such UI components as generic UI-Element, relying on a generic element manipulation protocol. Beyond this rather unspecific manipulation scheme, the UI relies on direct ownership relations. Typically, some element is created as result of another action and managed as child of some maintaining entity; generally speaking, UI elements live free floating and are mostly interconnected by signals to react on user interaction. There is a rather limited global UI-Context of directly interconnected backbone services, which allow to achieve activities cross-cutting the ownership relationship.
Element IDs are always formed as EntryID, typed to the corresponding type in the Session model. Thus, starting from a given model element, it is always possible to "cast" some message towards the corresponding UI view element, without actually knowing much about that element's implementation.
The goal for the Lumiera UI is not to totally hard-wire the overall structure. Rather, it shall be possible to "allocate" a view based of rules where to place it within the existing UI structure. This is especially important, since we expect much editing work to be done in a multi-monitor setup, where the UI has to span several top-level windows, and allow for location of views in accordance to the individual editor's habits.
In the current state (2017/2021) the foundation for such a rule based view allocation was worked out, but all the possibly quite elaborated details of hooking into the actual widget tree was postponed, until we have a more mature implementation of actual presentation widgets in place.
Definition in file id-scheme.hpp.
#include "lib/symbol.hpp"
#include "lib/idi/entry-id.hpp"
#include "stage/interact/view-spec-dsl.hpp"
Classes | |
struct | Descriptor< ErrorLogView > |
Descriptor for error log display within the UI. More... | |
struct | Descriptor< TimelineView > |
Descriptor for the Timeline UI. More... | |
Typedefs | |
using | ErrorLogView = widget::ErrorLogDisplay |
using | ID = lib::idi::BareEntryID const & |
using | TimelineView = timeline::TimelineController |
Namespaces | |
stage | |
Lumiera GTK UI implementation root. | |
stage::idi | |
generic definitions for element ID and access. | |
stage::timeline | |
The timeline display and editing operations. | |
stage::widget | |
Lumiera custom widgets. | |
steam | |
Steam-Layer implementation namespace root. | |
steam::asset | |
The asset subsystem of the Steam-Layer. | |
struct stage::idi::Descriptor< ErrorLogView > |