Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
display-evaluation.hpp
Go to the documentation of this file.
1/*
2 DISPLAY-EVALUATION.hpp - 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
61#ifndef STAGE_TIMELINE_DISPLAY_EVALUATION_H
62#define STAGE_TIMELINE_DISPLAY_EVALUATION_H
63
64
65#include "lib/error.hpp"
66#include "lib/nocopy.hpp"
67//#include "lib/util.hpp"
68
69//#include <sigc++/signal.h>
70#include <vector>
71
72
73
74namespace stage {
75namespace timeline {
76
77//using util::max;
78
79//using model::ViewHooked;
80//class TrackHeadWidget;
81//class TrackBody;
82 class DisplayEvaluation;
83
84
87 {
88 public:
89 virtual ~LayoutElement();
90
93 };
94
95
102 {
103 std::vector<LayoutElement*> elms_;
104
105 bool collectLayout_{true};
106
107 public:
108 void attach(LayoutElement& e) { elms_.push_back(&e); }
109 void perform();
110
111 bool isCollectPhase() const { return this->collectLayout_; }
112
113 private:/* ===== Internals ===== */
114 void reset();
115 };
116
117
118}}// namespace stage::timeline
119#endif /*STAGE_TIMELINE_DISPLAY_EVALUATION_H*/
Visitor and state holder for a collaborative layout adjustment pass.
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 void completeLayout(DisplayEvaluation &)=0
virtual ~LayoutElement()
this is an interface
virtual void establishLayout(DisplayEvaluation &)=0
Any copy and copy construction prohibited.
Definition nocopy.hpp:38
Lumiera error handling (C++ interface).
Lumiera GTK UI implementation root.
Definition guifacade.cpp:37
Mix-Ins to allow or prohibit various degrees of copying and cloning.