119 #ifndef STAGE_TIMELINE_CLIP_WIDGET_H 120 #define STAGE_TIMELINE_CLIP_WIDGET_H 146 using WidgetHook = model::CanvasHook<Gtk::Widget>;
149 using PDelegate = std::unique_ptr<ClipDelegate>;
165 enum Appearance {PENDING, SYMBOLIC, DEGRADED, ABRIDGED, COMPACT, EXPANDED};
183 virtual void setClipName (cuString&) =0;
185 virtual TimeVar& accessStartTime() =0;
186 virtual TimeVar& accessDuration() =0;
188 virtual uint getVerticalOffset()
const =0;
191 virtual void updatePosition() =0;
193 virtual uint calcRequiredHeight()
const =0;
231 optional<TimeSpan>
const& timing =nullopt);
static Appearance selectAppearance(PDelegate &existing, Appearance desired=PENDING, WidgetHook *newView=nullptr, optional< TimeSpan > const &timing=nullopt)
request to change the clip delegate's appearance style, if possible.
a mutable time value, behaving like a plain number, allowing copy and re-accessing ...
virtual Appearance changeAppearance(Appearance desired)=0
alter appearance style, to the degree possible for this delegate.
static const string defaultName
placeholder name – typically overridden from the model
virtual cuString getClipName() const =0
human readable rendering of the clip's name or identity
virtual Appearance currentAppearance() const =0
presentation mode and style currently employed
Appearance
desired appearance style for the clip
Lumiera's internal time value datatype.
Specialised (abstracted) presentation context with positioning by coordinates.
WidgetHook::Pos establishHookPoint(WidgetHook *newView)
(re)establish current canvas attachment coordinates, thereby possibly switching to a new canvas imple...
Lumiera GTK UI implementation root.
virtual ~ClipDelegate()
this is an interface
Duration is the internal Lumiera time metric.
static Gtk::Widget & expect_and_expose_Widget(PDelegate &manager)
Wrapper to safely expose the actual clip implementation widget.
static const int defaultOffsetY
vertical offset below the track start
A time interval anchored at a specific point in time.
a family of time value like entities and their relationships.
A set of basic GTK includes for the UI.