diff options
author | Borja Lorente | 2016-07-15 23:02:37 +0200 |
---|---|---|
committer | Borja Lorente | 2016-08-14 18:55:17 +0200 |
commit | 734b453c86bb20b2cb52c4f695f8a770b97be459 (patch) | |
tree | bbc0e99ad8b85315fb1d17f98f3845903a040fec /engines/macventure/gui.cpp | |
parent | 2a521bb22df9c5e5d477deb32ebc8b6a54e91fde (diff) | |
download | scummvm-rg350-734b453c86bb20b2cb52c4f695f8a770b97be459.tar.gz scummvm-rg350-734b453c86bb20b2cb52c4f695f8a770b97be459.tar.bz2 scummvm-rg350-734b453c86bb20b2cb52c4f695f8a770b97be459.zip |
MACVENTURE: Add text input dialog
Diffstat (limited to 'engines/macventure/gui.cpp')
-rw-r--r-- | engines/macventure/gui.cpp | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/engines/macventure/gui.cpp b/engines/macventure/gui.cpp index 4b01f8bca9..d8deb4b568 100644 --- a/engines/macventure/gui.cpp +++ b/engines/macventure/gui.cpp @@ -31,6 +31,8 @@ namespace MacVenture { +#define MACVENTURE_DEBUG_GUI true + enum MenuAction; enum { @@ -333,8 +335,8 @@ WindowReference Gui::createInventoryWindow(ObjID objRef) { newWindow->setDimensions(newData.bounds); newWindow->setCallback(inventoryWindowCallback, this); - loadBorder(newWindow, "border_no_scroll_inac.bmp", false); - loadBorder(newWindow, "border_no_scroll_act.bmp", true); + //loadBorder(newWindow, "border_no_scroll_inac.bmp", false); + //loadBorder(newWindow, "border_no_scroll_act.bmp", true); _inventoryWindows.push_back(newWindow); debug("Create new inventory window. Reference: %d", newData.refcon); @@ -658,11 +660,9 @@ void Gui::drawObjectsInWindow(WindowReference target, Graphics::ManagedSurface * surface, pos.x, pos.y, kBlitOR); // For test - surface->frameRect(Common::Rect( - pos.x, - pos.y, - pos.x + _assets[child]->getWidth() + 1, - pos.y + _assets[child]->getHeight() + 1), kColorGreen); + if (MACVENTURE_DEBUG_GUI) { + surface->frameRect(_engine->getObjBounds(child), kColorGreen); + } } } @@ -802,11 +802,25 @@ void Gui::printText(const Common::String & text) { _consoleText->printLine(text, _outConsoleWindow->getDimensions().width()); } +void Gui::setTextInput(Common::String str) { + _engine->setTextInput(str); +} + void Gui::closeDialog() { delete _dialog; _dialog = nullptr; } +void Gui::getTextFromUser() { + if (_dialog) { + delete _dialog; + } + _dialog = new Dialog(this, kSpeakDialog); + // Hack to pause the engine + _engine->clickToContinue(); +} + + void Gui::moveDraggedObject(Common::Point target) { Common::Point newPos = target + _draggedObj.mouseOffset; bool movement = false; @@ -1125,8 +1139,8 @@ bool Gui::tryCloseWindow(WindowReference winID) { Common::Point Gui::getObjMeasures(ObjID obj) { ensureAssetLoaded(obj); - uint w = _assets[obj]->getWidth(); - uint h = _assets[obj]->getHeight(); + int w = MAX(0, (int)_assets[obj]->getWidth()); + int h = MAX(0, (int)_assets[obj]->getHeight()); return Common::Point(w, h); } |