Lumiera  0.pre.03
»edit your freedom«
timeline-controller.hpp
Go to the documentation of this file.
1 /*
2  TIMELINE-CONTROLLER.hpp - coordinate operation of timeline display
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 
53 #ifndef STAGE_TIMELINE_TIMELINE_CONTROLLER_H
54 #define STAGE_TIMELINE_TIMELINE_CONTROLLER_H
55 
56 #include "stage/gtk-base.hpp"
58 
59 #include "lib/time/timevalue.hpp"
60 
61 #include <memory>
62 #include <vector>
63 #include <string>
64 
65 
66 
67 namespace stage {
68 namespace timeline {
69 
70  using std::unique_ptr;
71  using std::vector;
72  using std::string;
73 
74  class TrackPresenter;
75  class TimelineLayout;
76  class MarkerWidget;
77 
78 
88  : public model::Controller
89  {
90  string name_;
91 
92  vector<unique_ptr<MarkerWidget>> markers_;
93  std::unique_ptr<TrackPresenter> fork_;
94 
95 
96  public:
102  TimelineController (ID identity, ID trackID, ctrl::BusTerm& nexus, TimelineLayout&);
103 
105 
106 
108  virtual void buildMutator (lib::diff::TreeMutator::Handle) override;
109 
110 
111  public: /* ===== Control interface ===== */
112 
113  string const&
114  getName() const
115  {
116  return name_;
117  }
118 
119  public: /* ===== Signals ===== */
120 
121  private:/* ===== Events ===== */
122 
123  private:/* ===== Internals ===== */
124  };
125 
126 
127 }}// namespace stage::timeline
128 #endif /*STAGE_TIMELINE_TIMELINE_CONTROLLER_H*/
connection point at the UI-Bus.
Definition: bus-term.hpp:105
Top-level anchor point for the timeline display (widgets).
TimelineController(ID identity, ID trackID, ctrl::BusTerm &nexus, TimelineLayout &)
A handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBu...
Definition: record.hpp:113
virtual void buildMutator(lib::diff::TreeMutator::Handle) override
set up a binding to respond to mutation messages via UiBus
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:46
a family of time value like entities and their relationships.
Controller to supervise the timeline display.
Common Abstraction of all sub-controller, coordinated by the UI-Bus.
A set of basic GTK includes for the UI.