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)
5  2016, 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 
44 #ifndef STAGE_TIMELINE_TIMELINE_CONTROLLER_H
45 #define STAGE_TIMELINE_TIMELINE_CONTROLLER_H
46 
47 #include "stage/gtk-base.hpp"
49 
50 #include "lib/time/timevalue.hpp"
51 
52 #include <memory>
53 #include <vector>
54 #include <string>
55 
56 
57 
58 namespace stage {
59 namespace timeline {
60 
61  using std::unique_ptr;
62  using std::vector;
63  using std::string;
64 
65  class TrackPresenter;
66  class TimelineLayout;
67  class MarkerWidget;
68 
69 
79  : public model::Controller
80  {
81  string name_;
82 
83  vector<unique_ptr<MarkerWidget>> markers_;
84  std::unique_ptr<TrackPresenter> fork_;
85 
86 
87  public:
93  TimelineController (ID identity, ID trackID, ctrl::BusTerm& nexus, TimelineLayout&);
94 
96 
97 
99  virtual void buildMutator (lib::diff::TreeMutator::Handle) override;
100 
101 
102  public: /* ===== Control interface ===== */
103 
104  string const&
105  getName() const
106  {
107  return name_;
108  }
109 
110  public: /* ===== Signals ===== */
111 
112  private:/* ===== Events ===== */
113 
114  private:/* ===== Internals ===== */
115  };
116 
117 
118 }}// namespace stage::timeline
119 #endif /*STAGE_TIMELINE_TIMELINE_CONTROLLER_H*/
connection point at the UI-Bus.
Definition: bus-term.hpp:96
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:104
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:37
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.