Lumiera  0.pre.03
»edityourfreedom«
clip-presenter.hpp
Go to the documentation of this file.
1 /*
2  CLIP-PRESENTER.hpp - presentation control element for a clip within the timeline
3 
4  Copyright (C) Lumiera.org
5  2016, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
51 #ifndef GUI_TIMELINE_CLIP_PRESENTER_H
52 #define GUI_TIMELINE_CLIP_PRESENTER_H
53 
54 #include "gui/gtk-base.hpp"
55 #include "gui/model/controller.hpp"
57 
58 //#include "lib/util.hpp"
59 
60 //#include <memory>
61 #include <vector>
62 
63 
64 
65 namespace gui {
66 namespace timeline {
67 
68  using std::vector;
69  using std::unique_ptr;
70 
71  class MarkerWidget;
72 
73 
78  : public model::Controller
79  {
80  vector<unique_ptr<ClipPresenter>> channels_;
81  vector<unique_ptr<ClipPresenter>> effects_;
82  vector<unique_ptr<MarkerWidget>> markers_;
83 
85 
86  public:
91  ClipPresenter (ID identity, ctrl::BusTerm& nexus);
92 
94 
95 
97  virtual void buildMutator (lib::diff::TreeMutator::Handle) override;
98 
99 
100  private:/* ===== Internals ===== */
101  };
102 
103 
104 }}// namespace gui::timeline
105 #endif /*GUI_TIMELINE_CLIP_PRESENTER_H*/
vector< unique_ptr< MarkerWidget > > markers_
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:47
virtual void buildMutator(lib::diff::TreeMutator::Handle) override
set up a binding to respond to mutation messages via UiBus
handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBuff...
Definition: record.hpp:108
ctrl::BusTerm::ID ID
Definition: tangible.hpp:171
This widget provides the concrete rendering of a clip-like entity.
vector< unique_ptr< ClipPresenter > > channels_
connection point at the UI-Bus.
Definition: bus-term.hpp:105
Common Abstraction of all sub-controller, coordinated by the UI-Bus.
A set of basic GTK includes for the UI.
vector< unique_ptr< ClipPresenter > > effects_
ClipPresenter(ID identity, ctrl::BusTerm &nexus)