![]() |
Lumiera 0.pre.04
»edit your freedom«
|
This file defines the core component of the Lumiera GUI. More...
Go to the source code of this file.
This file defines the core component of the Lumiera GUI.
Timelines are the top level elements within Lumiera's high-level-model ("the session"). In the UI workspace, there is a timeline pane with several tabs, each of which holds an instance of the TimelineWidget. Each of these tabs either represents one of the top-level timelines in the model, or it represents a (focused / slave) view into some timeline.
The TimelineWidget is the top level entry point to a significant part of the UI, anything related to timeline display and editing operations: each instance of this widget is dedicated to a single session::Timeline, known by its ID. The widget creates a TimelineController right away, which takes initiative to populate the display with that Timeline's contents.
The assumption is that any element creation and deletion is triggered through messages over the UI-Bus. So there will be a parent element, corresponding to the model root, and this parent, in response to some mutation message, will create a TimelineWidget, add it into the appropriate GTK display setup and manage it as child element; the construction parameters ensure it gets connected to the bus as well. Incidentally, this assumption also implies that this parent element has set up a binding for diff mutation, typically by implementing model::Tangible::buildMutator. And further on this means that the parent will also destroy the TimelineWidget, prompted by a message to that end. All deregistration and unwinding happens automatically. Widgets, and also our model::Controller is sigc::trackable, which means after destruction any further signals will be silently ignored.
Definition in file timeline-widget.hpp.
#include "stage/gtk-base.hpp"#include "stage/ctrl/bus-term.hpp"#include "lib/time/timevalue.hpp"#include "lib/diff/diff-mutable.hpp"#include "lib/nocopy.hpp"Namespaces | |
| namespace | steam |
| Steam-Layer implementation namespace root. | |
| namespace | steam::asset |
| The asset subsystem of the Steam-Layer. | |
| namespace | stage |
| Lumiera GTK UI implementation root. | |
| namespace | stage::timeline |
| The timeline display and editing operations. | |
Classes | |
| class | TimelinePage |
| Interface: GUI page holding a timeline display. More... | |
| class | TimelineWidget |
| Core timeline display (custom widget). More... | |