63#ifndef STAGE_TIMELINE_BODY_CANVAS_WIDGET_H
64#define STAGE_TIMELINE_BODY_CANVAS_WIDGET_H
81 using CairoC = Cairo::RefPtr<Cairo::Context>
const&;
163 void hook (Gtk::Widget&,
int xPos=0,
int yPos=0)
override;
164 void move (Gtk::Widget&,
int xPos,
int yPos)
override;
165 void remove (Gtk::Widget&)
override;
Specialised (abstracted) presentation context with positioning by coordinates.
basic constant internal time value.
Interface to represent _"some presentation layout entity",_ with the ability to place widgets (manage...
Mix-in interface to allow for concrete CanvasHooked widgets to adapt themselves to the metric current...
Presentation of the timeline workspace by custom drawing on a canvas.
void adjustCanvasSize(int canvasWidth, int totalHeight, int rulerHeight)
After the (recent) display evaluation pass has negotiated the required space for the currently presen...
TimelineCanvas rulerCanvas_
Gtk::ScrolledWindow rulerArea_
void slotStructureChange() noexcept
force rebuilding of theTrackProfile whenever the global timeline structure changes
void hook(Gtk::Widget &, int xPos=0, int yPos=0) override
model::DisplayMetric & getMetric() const override
access the component to handle layout metric
void installForkRoot(TrackBody &rootTrackBody)
The Lumiera Timeline model does not rely on a list of tracks, as most conventional video editing soft...
TimelineCanvas mainCanvas_
void establishLayout(DisplayEvaluation &) override
respond to the DisplayEvaluation pass.
void maybeRebuildLayout()
Possibly (re)build the allocation and distribution of layout space.
void completeLayout(DisplayEvaluation &) override
Gtk::ScrolledWindow contentArea_
void move(Gtk::Widget &, int xPos, int yPos) override
void remove(Gtk::Widget &) override
std::function< TrackProfile &()> ProfileGetter
a way to get and possibly (re)compute the current TrackProfile
TimelineCanvas & getCanvas(int yPos)
Visitor and state holder for a collaborative layout adjustment pass.
Interface for coordination of the overall timeline display.
void openCanvas(CairoC)
Prepare the drawing canvas to work within our virtual canvas coordinate system.
virtual bool on_draw(CairoC) override
Custom drawing of the timeline content area.
void drawOverlays(CairoC)
_Renderer renderGrounding_
virtual ~TimelineCanvas()
void drawGrounding(CairoC)
Establish and render the structure of (possibly nested) tracks and overview rulers.
void closeCanvas(CairoC)
Finish and close the virtual drawing canvas established by openCanvas().
std::function< void(CairoC)> _Renderer
Helper to organise and draw the space allocated for a fork of sub-tracks.
Description of the structure and arrangement of tracks for display in the UI.
A collaboration to establish a globally coherent timeline display layout.
A set of basic GTK includes for the UI.
PCairoContext const & CairoC
Glib::RefPtr< Gtk::Adjustment > PAdjustment
Lumiera GTK UI implementation root.
Abstraction to build the layout for the track spaces within timeline display.