![]() |
Lumiera 0.pre.04~rc.1
»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 204 of file track-presenter.hpp.
Public Member Functions | |
| model::ViewHook< TrackHeadWidget > & | getHeadHook () override |
| model::ViewHook< TrackBody > & | getBodyHook () override |
| model::CanvasHook< Gtk::Widget > & | getClipHook () override |
| DisplayFrame (DisplayViewHooks &displayAnchor) | |
| void | setTrackName (cuString &name) |
| vector< unique_ptr< RulerTrack > > & | bindRulers () |
| void | establishExtension (vector< PClip > &, vector< PMark > &) |
| Find out about the vertical extension of a single track display. | |
| 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. | |
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< WID > | |
| virtual | ~CanvasHook () |
| this is an interface | |
| virtual void | hook (WID &widget, int xPos, int yPos)=0 |
| virtual void | move (WID &widget, int xPos, int yPos)=0 |
| virtual void | remove (WID &widget)=0 |
| 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. | |
Private Member Functions | |
| int | hookAdjX (int xPos) override |
| int | hookAdjY (int yPos) override |
Private Member Functions inherited from NonCopyable | |
| ~NonCopyable ()=default | |
| NonCopyable ()=default | |
| NonCopyable (NonCopyable const &)=delete | |
| NonCopyable & | operator= (NonCopyable const &)=delete |
Private Attributes | |
| model::ViewHooked< TrackHeadWidget > | head_ |
| model::ViewHooked< TrackBody > | body_ |
Additional Inherited Members | |
Protected Member Functions inherited from RelativeCanvasHook< Gtk::Widget > | |
| model::DisplayMetric & | getMetric () const override |
| delegating layout metric to the root canvas | |
|
inline |
Definition at line 224 of file track-presenter.hpp.
|
inlineoverrideprivatevirtual |
Implements RelativeCanvasHook< Gtk::Widget >.
Definition at line 214 of file track-presenter.hpp.
|
inlineoverrideprivatevirtual |
Implements RelativeCanvasHook< Gtk::Widget >.
Definition at line 215 of file track-presenter.hpp.
References DisplayFrame::body_.
|
inlineoverridevirtual |
Implements DisplayViewHooks.
Definition at line 219 of file track-presenter.hpp.
References DisplayFrame::head_.
|
inlineoverridevirtual |
Implements DisplayViewHooks.
Definition at line 220 of file track-presenter.hpp.
References DisplayFrame::body_.
|
inlineoverridevirtual |
Implements DisplayViewHooks.
Definition at line 221 of file track-presenter.hpp.
Referenced by TrackPresenter::buildMutator().
Here is the caller graph for this function:
|
inline |
Definition at line 231 of file track-presenter.hpp.
References DisplayFrame::body_, and DisplayFrame::head_.
Referenced by TrackPresenter::setTrackName().
Here is the caller graph for this function:
|
inline |
Definition at line 238 of file track-presenter.hpp.
References DisplayFrame::body_.
Referenced by TrackPresenter::buildMutator().
Here is the caller graph for this function:Find out about the vertical extension of a single track display.
Definition at line 396 of file track-presenter.hpp.
References DisplayFrame::body_, and DisplayFrame::head_.
Referenced by TrackPresenter::establishLayout().
Here is the caller graph for this function:
|
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 440 of file track-presenter.hpp.
References DisplayFrame::body_, and DisplayFrame::head_.
Referenced by TrackPresenter::completeLayout().
Here is the caller graph for this function:
|
private |
Definition at line 209 of file track-presenter.hpp.
Referenced by DisplayFrame::establishExtension(), DisplayFrame::getHeadHook(), DisplayFrame::setTrackName(), and DisplayFrame::sync_and_balance().
|
private |
Definition at line 210 of file track-presenter.hpp.
Referenced by DisplayFrame::bindRulers(), DisplayFrame::establishExtension(), DisplayFrame::getBodyHook(), DisplayFrame::hookAdjY(), DisplayFrame::setTrackName(), and DisplayFrame::sync_and_balance().
Inheritance diagram for DisplayFrame:
Collaboration diagram for DisplayFrame: