diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-08 13:35:27 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-08 13:35:27 (GMT) |
| commit | 10e82df5434c086c2afc3627e5cdf7b88205487f (patch) | |
| tree | 50fa2561d17305530cf4384c7d75dd4b84fd8129 /src/options | |
| parent | 152bc8f0924a4502fe6013b1d9957ffe9df8316f (diff) | |
| download | powder-10e82df5434c086c2afc3627e5cdf7b88205487f.zip powder-10e82df5434c086c2afc3627e5cdf7b88205487f.tar.gz | |
Fullscreen and scale setting from sim options
Diffstat (limited to 'src/options')
| -rw-r--r-- | src/options/OptionsController.cpp | 13 | ||||
| -rw-r--r-- | src/options/OptionsController.h | 2 | ||||
| -rw-r--r-- | src/options/OptionsModel.cpp | 21 | ||||
| -rw-r--r-- | src/options/OptionsModel.h | 4 | ||||
| -rw-r--r-- | src/options/OptionsView.cpp | 27 | ||||
| -rw-r--r-- | src/options/OptionsView.h | 2 |
6 files changed, 68 insertions, 1 deletions
diff --git a/src/options/OptionsController.cpp b/src/options/OptionsController.cpp index 7fa3309..93d3062 100644 --- a/src/options/OptionsController.cpp +++ b/src/options/OptionsController.cpp @@ -38,19 +38,32 @@ void OptionsController::SetWaterEqualisation(bool state) { model->SetWaterEqualisation(state); } + void OptionsController::SetGravityMode(int gravityMode) { model->SetGravityMode(gravityMode); } + void OptionsController::SetAirMode(int airMode) { model->SetAirMode(airMode); } + void OptionsController::SetEdgeMode(int airMode) { model->SetEdgeMode(airMode); } +void OptionsController::SetFullscreen(bool fullscreen) +{ + model->SetFullscreen(fullscreen); +} + +void OptionsController::SetScale(bool scale) +{ + model->SetScale(scale); +} + OptionsView * OptionsController::GetView() { return view; diff --git a/src/options/OptionsController.h b/src/options/OptionsController.h index 821eb68..862a0e2 100644 --- a/src/options/OptionsController.h +++ b/src/options/OptionsController.h @@ -29,6 +29,8 @@ public: void SetGravityMode(int gravityMode); void SetAirMode(int airMode); void SetEdgeMode(int airMode); + void SetFullscreen(bool fullscreen); + void SetScale(bool scale); void Exit(); OptionsView * GetView(); virtual ~OptionsController(); diff --git a/src/options/OptionsModel.cpp b/src/options/OptionsModel.cpp index 6fe9a79..6e71f36 100644 --- a/src/options/OptionsModel.cpp +++ b/src/options/OptionsModel.cpp @@ -95,6 +95,27 @@ void OptionsModel::SetGravityMode(int gravityMode) notifySettingsChanged(); } +bool OptionsModel::GetScale() +{ + return ui::Engine::Ref().GetScale()==2; +} +void OptionsModel::SetScale(bool doubleScale) +{ + ui::Engine::Ref().SetScale(doubleScale?2:1); + notifySettingsChanged(); +} + + +bool OptionsModel::GetFullscreen() +{ + return ui::Engine::Ref().GetFullscreen(); +} +void OptionsModel::SetFullscreen(bool fullscreen) +{ + ui::Engine::Ref().SetFullscreen(fullscreen); + notifySettingsChanged(); +} + void OptionsModel::notifySettingsChanged() { for(int i = 0; i < observers.size(); i++) diff --git a/src/options/OptionsModel.h b/src/options/OptionsModel.h index c7fa6a0..b011fef 100644 --- a/src/options/OptionsModel.h +++ b/src/options/OptionsModel.h @@ -34,6 +34,10 @@ public: void SetEdgeMode(int edgeMode); int GetGravityMode(); void SetGravityMode(int gravityMode); + bool GetFullscreen(); + void SetFullscreen(bool fullscreen); + bool GetScale(); + void SetScale(bool scale); virtual ~OptionsModel(); }; diff --git a/src/options/OptionsView.cpp b/src/options/OptionsView.cpp index 002bc8d..cd4e319 100644 --- a/src/options/OptionsView.cpp +++ b/src/options/OptionsView.cpp @@ -12,7 +12,7 @@ #include "interface/DropDown.h" OptionsView::OptionsView(): - ui::Window(ui::Point(-1, -1), ui::Point(300, 226)){ + ui::Window(ui::Point(-1, -1), ui::Point(300, 266)){ ui::Label * tempLabel = new ui::Label(ui::Point(4, 5), ui::Point(Size.X-8, 14), "Simulation Options"); tempLabel->SetTextColour(style::Colour::InformationTitle); @@ -136,6 +136,29 @@ OptionsView::OptionsView(): tempLabel->Appearance.HorizontalAlign = ui::Appearance::AlignLeft; tempLabel->Appearance.VerticalAlign = ui::Appearance::AlignMiddle; AddComponent(tempLabel); + class ScaleAction: public ui::CheckboxAction + { + OptionsView * v; + public: + ScaleAction(OptionsView * v_){ v = v_; } + virtual void ActionCallback(ui::Checkbox * sender){ v->c->SetScale(sender->GetChecked()); } + }; + + scale = new ui::Checkbox(ui::Point(8, 206), ui::Point(Size.X-6, 16), "Large screen"); + scale->SetActionCallback(new ScaleAction(this)); + AddComponent(scale); + + class FullscreenAction: public ui::CheckboxAction + { + OptionsView * v; + public: + FullscreenAction(OptionsView * v_){ v = v_; } + virtual void ActionCallback(ui::Checkbox * sender){ v->c->SetFullscreen(sender->GetChecked()); } + }; + + fullscreen = new ui::Checkbox(ui::Point(8, 226), ui::Point(Size.X-6, 16), "Fullscreen"); + fullscreen->SetActionCallback(new FullscreenAction(this)); + AddComponent(fullscreen); class CloseAction: public ui::ButtonAction { @@ -164,6 +187,8 @@ void OptionsView::NotifySettingsChanged(OptionsModel * sender) airMode->SetOption(sender->GetAirMode()); gravityMode->SetOption(sender->GetGravityMode()); edgeMode->SetOption(sender->GetEdgeMode()); + scale->SetChecked(sender->GetScale()); + fullscreen->SetChecked(sender->GetFullscreen()); } void OptionsView::AttachController(OptionsController * c_) diff --git a/src/options/OptionsView.h b/src/options/OptionsView.h index 821413d..d0a99ab 100644 --- a/src/options/OptionsView.h +++ b/src/options/OptionsView.h @@ -25,6 +25,8 @@ class OptionsView: public ui::Window { ui::DropDown * airMode; ui::DropDown * gravityMode; ui::DropDown * edgeMode; + ui::Checkbox * scale; + ui::Checkbox * fullscreen; public: OptionsView(); void NotifySettingsChanged(OptionsModel * sender); |
