Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
display-evaluation.cpp
Go to the documentation of this file.
1/*
2 DisplayEvaluation - recursive interwoven timeline layout allocation
3
4 Copyright (C)
5 2020, 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
23#include "stage/gtk-base.hpp"
25
26#include "lib/util.hpp"
27
28using util::isnil;
29
30
31namespace stage {
32namespace timeline {
33
34
35
36
37 LayoutElement::~LayoutElement() { } // emit VTables here....
38
39
40
60 void
62 {
63 this->reset();
64 // Phase-1 : collect Layout information
65 for (auto elm : elms_)
66 elm->establishLayout (*this);
67 // Phase-2 : reflow and balance the Layout
68 collectLayout_ = false;
69 for (auto elm : elms_)
70 elm->completeLayout (*this);
71 }
72
74 void
76 {
77 ASSERT (not isnil(elms_));
78 collectLayout_ = true;
79 }
80
81
82
83
84
85}}// namespace stage::timeline
void perform()
Conduct global passes over the wired layout elements, in order to adjust and coordinate the overall t...
std::vector< LayoutElement * > elms_
void reset()
pristine state for the next DisplayEvaluation pass
virtual ~LayoutElement()
this is an interface
A collaboration to establish a globally coherent timeline display layout.
A set of basic GTK includes for the UI.
Lumiera GTK UI implementation root.
Definition guifacade.cpp:37
bool isnil(lib::time::Duration const &dur)
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...