diff options
| author | Simon 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) |
| commit | 9e1be78bc21d1fb76a19ce12ef36193aea6e2b93 (patch) | |
| tree | 081b67d551bb44fecbf6deb99b6c44ea9789614c /src/preview | |
| parent | b2d3257ae944a3ea3b57dc8ee4171b1b2f85483e (diff) | |
| download | powder-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/preview')
| -rw-r--r-- | src/preview/PreviewController.cpp | 33 | ||||
| -rw-r--r-- | src/preview/PreviewController.h | 10 | ||||
| -rw-r--r-- | src/preview/PreviewModel.cpp | 18 | ||||
| -rw-r--r-- | src/preview/PreviewModel.h | 3 | ||||
| -rw-r--r-- | src/preview/PreviewView.cpp | 13 |
5 files changed, 72 insertions, 5 deletions
diff --git a/src/preview/PreviewController.cpp b/src/preview/PreviewController.cpp index ef5da4e..db3cdee 100644 --- a/src/preview/PreviewController.cpp +++ b/src/preview/PreviewController.cpp @@ -8,8 +8,11 @@ #include "PreviewController.h" #include "PreviewView.h" #include "PreviewModel.h" +#include "Controller.h" -PreviewController::PreviewController(int saveID) { +PreviewController::PreviewController(int saveID, ControllerCallback * callback): + HasExited(false) +{ // TODO Auto-generated constructor stub previewModel = new PreviewModel(); previewView = new PreviewView(); @@ -17,6 +20,34 @@ PreviewController::PreviewController(int saveID) { previewView->AttachController(this); previewModel->UpdateSave(saveID, 0); + + this->callback = callback; +} + +Save * PreviewController::GetSave() +{ + return previewModel->GetSave(); +} + +bool PreviewController::GetDoOpen() +{ + return previewModel->GetDoOpen(); +} + +void PreviewController::DoOpen() +{ + previewModel->SetDoOpen(true); +} + +void PreviewController::Exit() +{ + if(ui::Engine::Ref().GetWindow() == previewView) + { + ui::Engine::Ref().CloseWindow(); + } + if(callback) + callback->ControllerExit(); + HasExited = true; } PreviewController::~PreviewController() { diff --git a/src/preview/PreviewController.h b/src/preview/PreviewController.h index 373ff03..452d686 100644 --- a/src/preview/PreviewController.h +++ b/src/preview/PreviewController.h @@ -10,14 +10,22 @@ #include "preview/PreviewModel.h" #include "preview/PreviewView.h" +#include "Controller.h" +#include "search/Save.h" class PreviewModel; class PreviewView; class PreviewController { PreviewModel * previewModel; PreviewView * previewView; + ControllerCallback * callback; public: - PreviewController(int saveID); + bool HasExited; + PreviewController(int saveID, ControllerCallback * callback); + void Exit(); + void DoOpen(); + bool GetDoOpen(); + Save * GetSave(); PreviewView * GetView() { return previewView; } virtual ~PreviewController(); }; diff --git a/src/preview/PreviewModel.cpp b/src/preview/PreviewModel.cpp index 0e03490..07396cb 100644 --- a/src/preview/PreviewModel.cpp +++ b/src/preview/PreviewModel.cpp @@ -10,7 +10,8 @@ PreviewModel::PreviewModel(): save(NULL), - savePreview(NULL) + savePreview(NULL), + doOpen(false) { // TODO Auto-generated constructor stub @@ -24,6 +25,16 @@ void PreviewModel::UpdateSave(int saveID, int saveDate) notifyPreviewChanged(); } +void PreviewModel::SetDoOpen(bool doOpen) +{ + this->doOpen = doOpen; +} + +bool PreviewModel::GetDoOpen() +{ + return doOpen; +} + Thumbnail * PreviewModel::GetPreview() { return savePreview; @@ -57,6 +68,9 @@ void PreviewModel::AddObserver(PreviewView * observer) { } PreviewModel::~PreviewModel() { - // TODO Auto-generated destructor stub + if(save) + delete save; + if(savePreview) + delete savePreview; } diff --git a/src/preview/PreviewModel.h b/src/preview/PreviewModel.h index 764771a..23ac2d7 100644 --- a/src/preview/PreviewModel.h +++ b/src/preview/PreviewModel.h @@ -17,6 +17,7 @@ using namespace std; class PreviewView; class PreviewModel { + bool doOpen; vector<PreviewView*> observers; Save * save; Thumbnail * savePreview; @@ -28,6 +29,8 @@ public: Save * GetSave(); void AddObserver(PreviewView * observer); void UpdateSave(int saveID, int saveDate); + bool GetDoOpen(); + void SetDoOpen(bool doOpen); virtual ~PreviewModel(); }; diff --git a/src/preview/PreviewView.cpp b/src/preview/PreviewView.cpp index 9d76fe7..d0bd6da 100644 --- a/src/preview/PreviewView.cpp +++ b/src/preview/PreviewView.cpp @@ -14,8 +14,19 @@ PreviewView::PreviewView(): ui::Window(ui::Point(-1, -1), ui::Point((XRES/2)+200, (YRES/2)+150)), savePreview(NULL) { - // TODO Auto-generated constructor stub + class OpenAction: public ui::ButtonAction + { + PreviewView * v; + public: + OpenAction(PreviewView * v_){ v = v_; } + virtual void ActionCallback(ui::Button * sender) + { + v->c->DoOpen(); + v->c->Exit(); + } + }; openButton = new ui::Button(ui::Point(0, Size.Y-16), ui::Point(100, 16), "Open"); + openButton->SetActionCallback(new OpenAction(this)); AddComponent(openButton); saveNameLabel = new ui::Label(ui::Point(5, (YRES/2)+5), ui::Point(100, 16), ""); |
