Lumiera  0.pre.03
»edit your freedom«
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 
28 using util::isnil;
29 
30 
31 namespace stage {
32 namespace 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
A collaboration to establish a globally coherent timeline display layout.
virtual ~LayoutElement()
this is an interface
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:37
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
void reset()
pristine state for the next DisplayEvaluation pass
A set of basic GTK includes for the UI.
void perform()
Conduct global passes over the wired layout elements, in order to adjust and coordinate the overall t...