Lumiera
0.pre.03
»edit your freedom«
|
#include "stage/timeline/track-presenter.hpp"
Reference frame to organise the presentation related to a specific Track in the Timeline-GUI.
With the help of such a common frame of reference, we solve the problem that each individual track display needs to hook into two distinct UI presentation structures: the track head controls and the presentation of track contents on the BodyCanvasWidget.
Definition at line 213 of file track-presenter.hpp.
Public Member Functions | |
DisplayFrame (DisplayViewHooks &displayAnchor) | |
vector< unique_ptr< RulerTrack > > & | bindRulers () |
void | establishExtension (vector< PClip > &, vector< PMark > &) |
Find out about the vertical extension of a single track display. More... | |
model::ViewHook< TrackBody > & | getBodyHook () override |
model::CanvasHook< Gtk::Widget > & | getClipHook () override |
model::ViewHook< TrackHeadWidget > & | getHeadHook () override |
void | setTrackName (cuString &name) |
void | sync_and_balance (DisplayEvaluation &) |
re-flow and adjust after the global layout has been established At this point we can assume that both header and body are updated and have valid extensions within their perimeter. More... | |
Public Member Functions inherited from DisplayViewHooks | |
virtual | ~DisplayViewHooks () |
this is an interface | |
Public Member Functions inherited from RelativeCanvasHook< Gtk::Widget > | |
RelativeCanvasHook (model::CanvasHook< Gtk::Widget > &baseHook) | |
Public Member Functions inherited from CanvasHook< Gtk::Widget > | |
virtual | ~CanvasHook () |
this is an interface | |
Pos | hookedAt (int x, int y) |
Pos | hookedAt (Time start, int downshift=0) |
build the "construction hook" for a CanvasHooked element, which is to be attached to some timeline canvas view. More... | |
Private Member Functions | |
int | hookAdjX (int xPos) override |
int | hookAdjY (int yPos) override |
Private Member Functions inherited from NonCopyable | |
NonCopyable (NonCopyable const &)=delete | |
NonCopyable & | operator= (NonCopyable const &)=delete |
Private Attributes | |
model::ViewHooked< TrackBody > | body_ |
model::ViewHooked< TrackHeadWidget > | head_ |
Additional Inherited Members | |
Protected Member Functions inherited from RelativeCanvasHook< Gtk::Widget > | |
model::DisplayMetric & | getMetric () const override |
delegating layout metric to the root canvas | |
|
inline |
Find out about the vertical extension of a single track display.
Definition at line 405 of file track-presenter.hpp.
|
inline |
re-flow and adjust after the global layout has been established At this point we can assume that both header and body are updated and have valid extensions within their perimeter.
But the coordination of track head display and body content might be out of sync and needs readjustments. This second pass gives the opportunity to fix such discrepancies by further increasing vertical extension, but this also has the consequence to trigger yet another DisplayEvaluation, since any readjustment invalidates the global layout. However, since all adjustments are done by increasing monotonously, after several recursions the layout will be balanced eventually.
Definition at line 449 of file track-presenter.hpp.