diff options
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 099a501..7b71633 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -15,7 +15,8 @@ GameModel::GameModel(): ren(NULL), currentBrush(0), currentUser(0, ""), - currentSave(NULL) + currentSave(NULL), + colourSelector(false) { sim = new Simulation(); ren = new Renderer(ui::Engine::Ref().g, sim); @@ -200,6 +201,8 @@ void GameModel::AddObserver(GameView * observer){ observer->NotifyToolListChanged(this); observer->NotifyUserChanged(this); observer->NotifyZoomChanged(this); + observer->NotifyColourSelectorVisibilityChanged(this); + observer->NotifyColourSelectorColourChanged(this); } void GameModel::SetActiveMenu(Menu * menu) @@ -329,6 +332,34 @@ int GameModel::GetZoomFactor() return ren->ZFACTOR; } +void GameModel::SetColourSelectorVisibility(bool visibility) +{ + if(colourSelector != visibility) + { + colourSelector = visibility; + notifyColourSelectorVisibilityChanged(); + } +} + +bool GameModel::GetColourSelectorVisibility() +{ + return colourSelector; +} + +void GameModel::SetColourSelectorColour(ui::Colour colour_) +{ + //if(this->colour!=colour) + { + colour = colour_; + notifyColourSelectorColourChanged(); + } +} + +ui::Colour GameModel::GetColourSelectorColour() +{ + return colour; +} + void GameModel::SetUser(User user) { currentUser = user; @@ -368,6 +399,22 @@ void GameModel::ClearSimulation() sim->clear_sim(); } +void GameModel::notifyColourSelectorColourChanged() +{ + for(int i = 0; i < observers.size(); i++) + { + observers[i]->NotifyColourSelectorColourChanged(this); + } +} + +void GameModel::notifyColourSelectorVisibilityChanged() +{ + for(int i = 0; i < observers.size(); i++) + { + observers[i]->NotifyColourSelectorVisibilityChanged(this); + } +} + void GameModel::notifyRendererChanged() { for(int i = 0; i < observers.size(); i++) |
