From 53a5fb6c546bee103526fe444ece0c2cda52d624 Mon Sep 17 00:00:00 2001 From: Borja Lorente Date: Thu, 21 Jul 2016 15:25:43 +0200 Subject: MACVENTURE: Refactor dialogs and controls --- engines/macventure/gui.cpp | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'engines/macventure/gui.cpp') diff --git a/engines/macventure/gui.cpp b/engines/macventure/gui.cpp index d38a7a5c3d..d8db6656e5 100644 --- a/engines/macventure/gui.cpp +++ b/engines/macventure/gui.cpp @@ -20,14 +20,14 @@ * */ + #include "common/file.h" +#include "common/timer.h" +#include "common/system.h" #include "image/bmp.h" -#include "macventure/macventure.h" #include "macventure/gui.h" - -#include "common/timer.h" -#include "common/system.h" +#include "macventure/dialog.h" namespace MacVenture { @@ -36,12 +36,12 @@ namespace MacVenture { enum MenuAction; enum { - kCursorWidth = 2, // HACK Arbitrary width to test + kCursorWidth = 2, kCursorHeight = 2 }; enum { - kExitButtonWidth = 10, // HACK Arbitrary width to test + kExitButtonWidth = 10, kExitButtonHeight = 10 }; @@ -802,10 +802,20 @@ void Gui::printText(const Common::String & text) { _consoleText->printLine(text, _outConsoleWindow->getDimensions().width()); } +void Gui::showPrebuiltDialog(PrebuiltDialogs type) { + closeDialog(); + _dialog = new Dialog(this, type); +} + +bool Gui::isDialogOpen() { + return _dialog != nullptr; +} + void Gui::setTextInput(Common::String str) { _engine->setTextInput(str); } + void Gui::closeDialog() { delete _dialog; _dialog = nullptr; @@ -815,9 +825,7 @@ void Gui::getTextFromUser() { if (_dialog) { delete _dialog; } - _dialog = new Dialog(this, kSpeakDialog); - // Hack to pause the engine - _engine->clickToContinue(); + showPrebuiltDialog(kSpeakDialog); } void Gui::loadGame(int slot) { @@ -1046,8 +1054,7 @@ void Gui::handleMenuAction(MenuAction action) { break; case MacVenture::kMenuActionSaveAs: debug("MacVenture Menu Action: Save As"); - // HACK this should be wrapped in a function - _dialog = new Dialog(this, kSaveAsDialog); + showPrebuiltDialog(kSaveAsDialog); break; case MacVenture::kMenuActionQuit: debug("MacVenture Menu Action: Quit"); @@ -1140,6 +1147,7 @@ void Gui::invertWindowColors(WindowReference winID) { } } + bool Gui::tryCloseWindow(WindowReference winID) { WindowData data = findWindowData(winID); if (winID < 0x80) { // Inventory window -- cgit v1.2.3