summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-26 01:13:33 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-26 01:13:33 (GMT)
commit9e1be78bc21d1fb76a19ce12ef36193aea6e2b93 (patch)
tree081b67d551bb44fecbf6deb99b6c44ea9789614c /src/render
parentb2d3257ae944a3ea3b57dc8ee4171b1b2f85483e (diff)
downloadpowder-9e1be78bc21d1fb76a19ce12ef36193aea6e2b93.zip
powder-9e1be78bc21d1fb76a19ce12ef36193aea6e2b93.tar.gz
I've got to a point where I can no longer be bothered to think of a proper commit comment
Diffstat (limited to 'src/render')
-rw-r--r--src/render/RenderController.cpp16
-rw-r--r--src/render/RenderController.h6
2 files changed, 20 insertions, 2 deletions
diff --git a/src/render/RenderController.cpp b/src/render/RenderController.cpp
index 6f7f72e..01a5d4e 100644
--- a/src/render/RenderController.cpp
+++ b/src/render/RenderController.cpp
@@ -7,7 +7,9 @@
#include "RenderController.h"
-RenderController::RenderController(Renderer * ren) {
+RenderController::RenderController(Renderer * ren, ControllerCallback * callback):
+ HasExited(false)
+{
renderView = new RenderView();
renderModel = new RenderModel();
@@ -15,6 +17,18 @@ RenderController::RenderController(Renderer * ren) {
renderModel->AddObserver(renderView);
renderModel->SetRenderer(ren);
+ this->callback = callback;
+}
+
+void RenderController::Exit()
+{
+ if(ui::Engine::Ref().GetWindow() == renderView)
+ {
+ ui::Engine::Ref().CloseWindow();
+ }
+ if(callback)
+ callback->ControllerExit();
+ HasExited = true;
}
RenderController::~RenderController() {
diff --git a/src/render/RenderController.h b/src/render/RenderController.h
index 1c574c1..704d6d4 100644
--- a/src/render/RenderController.h
+++ b/src/render/RenderController.h
@@ -11,14 +11,18 @@
#include "RenderView.h"
#include "RenderModel.h"
#include "Renderer.h"
+#include "Controller.h"
class RenderView;
class RenderModel;
class RenderController {
RenderView * renderView;
RenderModel * renderModel;
+ ControllerCallback * callback;
public:
- RenderController(Renderer * ren);
+ bool HasExited;
+ RenderController(Renderer * ren, ControllerCallback * callback = NULL);
+ void Exit();
RenderView * GetView() { return renderView; }
virtual ~RenderController();
};