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 
52 #ifndef GUI_TIMELINE_CLIP_PRESENTER_H
53 #define GUI_TIMELINE_CLIP_PRESENTER_H
54 
55 #include "gui/gtk-base.hpp"
56 #include "gui/model/controller.hpp"
58 
59 //#include "lib/util.hpp"
60 
61 //#include <memory>
62 #include <vector>
63 
64 
65 
66 namespace gui {
67 namespace timeline {
68 
69  using std::vector;
70  using std::unique_ptr;
71 
72  class MarkerWidget;
73 
74 
79  : public model::Controller
80  {
81  vector<unique_ptr<ClipPresenter>> channels_;
82  vector<unique_ptr<ClipPresenter>> effects_;
83  vector<unique_ptr<MarkerWidget>> markers_;
84 
86 
87  public:
92  ClipPresenter (ID identity, ctrl::BusTerm& nexus);
93 
95 
96 
98  virtual void buildMutator (lib::diff::TreeMutator::Handle) override;
99 
100 
101  private:/* ===== Internals ===== */
102  };
103 
104 
105 }}// namespace gui::timeline
106 #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)