Lumiera  0.pre.03
»edit your freedom«
ui-bus.hpp
Go to the documentation of this file.
1 /*
2  UI-BUS.hpp - UI model and control backbone
3 
4  Copyright (C) Lumiera.org
5  2009, Joel Holdsworth <joel@airwebreathe.org.uk>
6  2015, Hermann Vosseler <Ichthyostega@web.de>
7 
8  This program is free software; you can redistribute it and/or
9  modify it under the terms of the GNU General Public License as
10  published by the Free Software Foundation; either version 2 of
11  the License, or (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program; if not, write to the Free Software
20  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 
22 */
23 
102 #ifndef STAGE_UI_BUS_H
103 #define STAGE_UI_BUS_H
104 
105 
106 #include "stage/gtk-base.hpp"
108 #include "lib/nocopy.hpp"
109 
110 #include <memory>
111 
112 
113 using std::unique_ptr;
114 
115 
116 
117 namespace stage {
119  namespace model {
120  class Project;
121  } // namespace model
122 
123  namespace controller {
124 
129  {
130  model::Project& project_;
131  ctrl::PlaybackController playback_;
132 
133  public:
134  Controller (model::Project&);
135 
136  ctrl::PlaybackController& get_playback_controller();
137  };
138 
139 }// namespace stage::controller
141 
142  namespace ctrl {
143  class StateManager;
144  class CoreService;
145  class BusTerm;
146  }
147 
148 
159  class UiBus
161  {
162  unique_ptr<ctrl::CoreService> coreService_;
163 
164  public:
165  UiBus();
166  ~UiBus();
167 
168  ctrl::BusTerm& getAccessPoint();
169  ctrl::StateManager& getStateManager();
170  };
171 
172 
173 
174 }// namespace stage
175 #endif /*STAGE_UI_BUS_H*/
176 
connection point at the UI-Bus.
Definition: bus-term.hpp:105
Any copy and copy construction prohibited.
Definition: nocopy.hpp:46
Backbone of the Lumiera GTK GUI.
Definition: ui-bus.hpp:159
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:46
Interface: handling of persistent interface state.
This file contains the definition of the playback controller object.
A set of basic GTK includes for the UI.