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)
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
"
64
#include "
stage/interact/view-spec-dsl.hpp
"
65
66
67
/* === forward declarations === */
68
namespace
steam
{
69
namespace
asset
{
70
class
Timeline;
71
72
namespace
meta {
73
class
ErrorLog;
74
}
75
}
76
}
77
78
namespace
stage
{
79
namespace
timeline {
80
class
TimelineController;
81
}
82
namespace
widget {
83
class
ErrorLogDisplay;
84
}
85
namespace
idi {
86
87
using
lib::Literal
;
88
using
lib::idi::EntryID
;
89
using
interact::UICoord;
90
91
92
using
ID =
lib::idi::BareEntryID
const
&;
93
94
/* === primary component view types === */
95
using
TimelineView = timeline::TimelineController;
96
using
ErrorLogView = widget::ErrorLogDisplay;
97
98
102
template
<>
103
struct
Descriptor
<
TimelineView
>
104
{
105
using
Model
=
steam::asset::Timeline
;
106
};
107
108
112
template
<>
113
struct
Descriptor
<
ErrorLogView
>
114
{
115
using
Model
=
steam::asset::meta::ErrorLog
;
116
118
//
119
// alloc = onePerWindow
120
// locate = within(InfoBoxPanel)
121
};
122
123
/*
125
// Timeline
126
// add to group of timelines within the timelinePanel
127
128
alloc = unlimited
129
locate = 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
137
alloc = onlyOne
138
locate = 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
146
alloc = limitPerWindow(2)
147
locate = 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
155
alloc = unlimited
156
locate = 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
165
alloc = limitPerWindow(1)
166
locate = 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*/
steam::asset::Timeline
Definition:
timeline.hpp:91
lib::idi::BareEntryID
type erased baseclass for building a combined hash and symbolic ID.
Definition:
entry-id.hpp:133
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:258
lib::Literal
inline string literal This is a marker type to indicate that
Definition:
symbol.hpp:76
lib::idi::EntryID
typed symbolic and hash ID for asset-like position accounting.
Definition:
entry-id.hpp:126
steam
Steam-Layer implementation namespace root.
Definition:
dummy-player-facade.h:37
symbol.hpp
Marker types to indicate a literal string and a Symbol.
stage
Lumiera GTK UI implementation root.
Definition:
guifacade.cpp:37
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:114
stage::timeline::TimelineController
Controller to supervise the timeline display.
Definition:
timeline-controller.hpp:78
steam::asset
The asset subsystem of the Steam-Layer.
Definition:
wrapperptr.hpp:35
steam::asset::meta::ErrorLog
Receive, collect, filter and possibly persist incident records.
Definition:
error-log.hpp:65
stage
id-scheme.hpp
Generated on Fri Dec 13 2024 05:05:33 for Lumiera by
1.8.13