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)
5  2009, Joel Holdsworth <joel@airwebreathe.org.uk>
6  2015, Hermann Vosseler <Ichthyostega@web.de>
7 
8   **Lumiera** is free software; you can redistribute it and/or modify it
9   under the terms of the GNU General Public License as published by the
10   Free Software Foundation; either version 2 of the License, or (at your
11   option) any later version. See the file COPYING for further details.
12 
13 */
14 
93 #ifndef STAGE_UI_BUS_H
94 #define STAGE_UI_BUS_H
95 
96 
97 #include "stage/gtk-base.hpp"
99 #include "lib/nocopy.hpp"
100 
101 #include <memory>
102 
103 
104 using std::unique_ptr;
105 
106 
107 
108 namespace stage {
110  namespace model {
111  class Project;
112  } // namespace model
113 
114  namespace controller {
115 
120  {
121  model::Project& project_;
122  ctrl::PlaybackController playback_;
123 
124  public:
125  Controller (model::Project&);
126 
127  ctrl::PlaybackController& get_playback_controller();
128  };
129 
130 }// namespace stage::controller
132 
133  namespace ctrl {
134  class StateManager;
135  class CoreService;
136  class BusTerm;
137  }
138 
139 
150  class UiBus
152  {
153  unique_ptr<ctrl::CoreService> coreService_;
154 
155  public:
156  UiBus();
157  ~UiBus();
158 
159  ctrl::BusTerm& getAccessPoint();
160  ctrl::StateManager& getStateManager();
161  };
162 
163 
164 
165 }// namespace stage
166 #endif /*STAGE_UI_BUS_H*/
167 
connection point at the UI-Bus.
Definition: bus-term.hpp:96
Any copy and copy construction prohibited.
Definition: nocopy.hpp:37
Backbone of the Lumiera GTK GUI.
Definition: ui-bus.hpp:150
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:37
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.