Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
id-scheme.hpp
Go to the documentation of this file.
1/*
2 ID-SCHEME.hpp - naming and ID scheme definitions for the GUI
3
4 Copyright (C)
5 2017, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
14
58#ifndef STAGE_ID_SCHEME_H
59#define STAGE_ID_SCHEME_H
60
61
62#include "lib/symbol.hpp"
63#include "lib/idi/entry-id.hpp"
65
66
67/* === forward declarations === */
68namespace steam {
69 namespace asset {
70 class Timeline;
71
72 namespace meta {
73 class ErrorLog;
74 }
75 }
76}
77
78namespace stage {
79 namespace timeline {
80 class TimelineController;
81 }
82 namespace widget {
83 class ErrorLogDisplay;
84 }
85 namespace idi {
86
87 using lib::Literal;
89 using interact::UICoord;
90
91
92 using ID = lib::idi::BareEntryID const&;
93
94 /* === primary component view types === */
97
98
102 template<>
107
108
112 template<>
114 {
116
118 //
119 // alloc = onePerWindow
120 // locate = within(InfoBoxPanel)
121 };
122
123/*
125// Timeline
126// add to group of timelines within the timelinePanel
127
128alloc = unlimited
129locate = perspective(edit).panel(timeline)
130 or panel(timeline)
131 or currentWindow().panel(timeline).create()
132
133// Viewer
134// here multiple alternatives are conceivable
135// - allow only a single view instance in the whole application
136
137alloc = onlyOne
138locate = external(beamer)
139 or view(viewer)
140 or perspective(mediaView).panel(viewer)
141 or panel(viewer)
142 or firstWindow().panel(viewer).view(viewer).create()
143
144// - allow two viewer panels (the standard layout of editing applications)
145
146alloc = limitPerWindow(2)
147locate = perspective(edit).panel(viewer)
148 or currentWindow().panel(viewer)
149 or panel(viewer)
150 or currentWindow().panel(viewer).create()
151
152// (Asset)Bin
153// within the dedicated asset panel, add to the appropriate group for the kind of asset
154
155alloc = unlimited
156locate = currentWindow().perspective(edit).tab(assetType())
157 or perspective(asset).view(asset)
158 or tab(assetType())
159 or view(asset).tab(assetType()).create()
160 or firstWindow().panel(asset).view(asset).create()
161
162// Error-Log
163// use the current `InfoBoxPanel` if such exists, fall back to using a single view on the primary window
164
165alloc = limitPerWindow(1)
166locate = currentWindow().panel(infobox)
167 or view(error)
168 or panel(infobox)
169 or firstWindow().panel(infobox).view(error).create()
170
171*/
172
173
174 }//namespace stage::idi
175} // namespace stage
176#endif /*STAGE_ID_SCHEME_H*/
Inline string literal.
Definition symbol.hpp:78
type erased baseclass for building a combined hash and symbolic ID.
Definition entry-id.hpp:134
Controller to supervise the timeline display.
Widget to display log and error messages.
Receive, collect, filter and possibly persist incident records.
Definition error-log.hpp:67
Bare symbolic and hash ID used for accounting of asset like entries.
lib::idi::BareEntryID const & ID
Definition id-scheme.hpp:92
Generic Component View descriptors.
Lumiera GTK UI implementation root.
Definition guifacade.cpp:37
The asset subsystem of the Steam-Layer.
Steam-Layer implementation namespace root.
typed symbolic and hash ID for asset-like position accounting.
Definition entry-id.hpp:219
Marker types to indicate a literal string and a Symbol.
A framework for configuration of view access and allocation patterns.