Lumiera
0.pre.03
»edit your freedom«
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) Lumiera.org
5
2017, Hermann Vosseler <Ichthyostega@web.de>
6
7
This program is free software; you can redistribute it and/or
8
modify it under the terms of the GNU General Public License as
9
published by the Free Software Foundation; either version 2 of
10
the License, or (at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
21
*/
22
23
67
#ifndef STAGE_ID_SCHEME_H
68
#define STAGE_ID_SCHEME_H
69
70
71
#include "
lib/symbol.hpp
"
72
#include "
lib/idi/entry-id.hpp
"
73
#include "
stage/interact/view-spec-dsl.hpp
"
74
75
76
/* === forward declarations === */
77
namespace
steam
{
78
namespace
asset
{
79
class
Timeline;
80
81
namespace
meta {
82
class
ErrorLog;
83
}
84
}
85
}
86
87
namespace
stage
{
88
namespace
timeline {
89
class
TimelineController;
90
}
91
namespace
widget {
92
class
ErrorLogDisplay;
93
}
94
namespace
idi {
95
96
using
lib::Literal
;
97
using
lib::idi::EntryID
;
98
using
interact::UICoord;
99
100
101
using
ID =
lib::idi::BareEntryID
const
&;
102
103
/* === primary component view types === */
104
using
TimelineView = timeline::TimelineController;
105
using
ErrorLogView = widget::ErrorLogDisplay;
106
107
111
template
<>
112
struct
Descriptor
<
TimelineView
>
113
{
114
using
Model
=
steam::asset::Timeline
;
115
};
116
117
121
template
<>
122
struct
Descriptor
<
ErrorLogView
>
123
{
124
using
Model
=
steam::asset::meta::ErrorLog
;
125
127
//
128
// alloc = onePerWindow
129
// locate = within(InfoBoxPanel)
130
};
131
132
/*
134
// Timeline
135
// add to group of timelines within the timelinePanel
136
137
alloc = unlimited
138
locate = perspective(edit).panel(timeline)
139
or panel(timeline)
140
or currentWindow().panel(timeline).create()
141
142
// Viewer
143
// here multiple alternatives are conceivable
144
// - allow only a single view instance in the whole application
145
146
alloc = onlyOne
147
locate = external(beamer)
148
or view(viewer)
149
or perspective(mediaView).panel(viewer)
150
or panel(viewer)
151
or firstWindow().panel(viewer).view(viewer).create()
152
153
// - allow two viewer panels (the standard layout of editing applications)
154
155
alloc = limitPerWindow(2)
156
locate = perspective(edit).panel(viewer)
157
or currentWindow().panel(viewer)
158
or panel(viewer)
159
or currentWindow().panel(viewer).create()
160
161
// (Asset)Bin
162
// within the dedicated asset panel, add to the appropriate group for the kind of asset
163
164
alloc = unlimited
165
locate = currentWindow().perspective(edit).tab(assetType())
166
or perspective(asset).view(asset)
167
or tab(assetType())
168
or view(asset).tab(assetType()).create()
169
or firstWindow().panel(asset).view(asset).create()
170
171
// Error-Log
172
// use the current `InfoBoxPanel` if such exists, fall back to using a single view on the primary window
173
174
alloc = limitPerWindow(1)
175
locate = currentWindow().panel(infobox)
176
or view(error)
177
or panel(infobox)
178
or firstWindow().panel(infobox).view(error).create()
179
180
*/
181
182
183
}
//namespace stage::idi
184
}
// namespace stage
185
#endif
/*STAGE_ID_SCHEME_H*/
steam::asset::Timeline
Definition:
timeline.hpp:100
lib::idi::BareEntryID
type erased baseclass for building a combined hash and symbolic ID.
Definition:
entry-id.hpp:142
view-spec-dsl.hpp
A framework for configuration of view access and allocation patterns.
stage::idi::Descriptor
Generic Component View descriptors.
Definition:
view-spec-dsl.hpp:267
lib::Literal
inline string literal This is a marker type to indicate that
Definition:
symbol.hpp:85
lib::idi::EntryID
typed symbolic and hash ID for asset-like position accounting.
Definition:
entry-id.hpp:135
steam
Steam-Layer implementation namespace root.
Definition:
dummy-player-facade.h:46
symbol.hpp
Marker types to indicate a literal string and a Symbol.
stage
Lumiera GTK UI implementation root.
Definition:
guifacade.cpp:46
entry-id.hpp
Bare symbolic and hash ID used for accounting of asset like entries.
stage::widget::ErrorLogDisplay
Widget to display log and error messages.
Definition:
error-log-display.hpp:123
stage::timeline::TimelineController
Controller to supervise the timeline display.
Definition:
timeline-controller.hpp:87
steam::asset
The asset subsystem of the Steam-Layer.
Definition:
wrapperptr.hpp:44
steam::asset::meta::ErrorLog
Receive, collect, filter and possibly persist incident records.
Definition:
error-log.hpp:74
stage
id-scheme.hpp
Generated on Sat Apr 20 2024 02:03:39 for Lumiera by
1.8.13