diff options
author | Kostas Nakos | 2007-12-16 20:01:41 +0000 |
---|---|---|
committer | Kostas Nakos | 2007-12-16 20:01:41 +0000 |
commit | e861cf567d66f52f99274e24f11cdf0b11f24ce9 (patch) | |
tree | 16bcd6d2cb41bd6e896e50df22e9d042e7587bba | |
parent | 4a3dedfe7e14d0309b7b046efd96775d87c9583e (diff) | |
download | scummvm-rg350-e861cf567d66f52f99274e24f11cdf0b11f24ce9.tar.gz scummvm-rg350-e861cf567d66f52f99274e24f11cdf0b11f24ce9.tar.bz2 scummvm-rg350-e861cf567d66f52f99274e24f11cdf0b11f24ce9.zip |
use the virtual keyboard facilities if available, when needed
svn-id: r29882
-rw-r--r-- | engines/lure/game.cpp | 13 | ||||
-rw-r--r-- | engines/lure/surface.cpp | 5 |
2 files changed, 16 insertions, 2 deletions
diff --git a/engines/lure/game.cpp b/engines/lure/game.cpp index 8eca0a918b..a2db5d18b9 100644 --- a/engines/lure/game.cpp +++ b/engines/lure/game.cpp @@ -956,6 +956,7 @@ void Game::handleBootParam(int value) { } bool Game::getYN() { + OSystem &system = *g_system; Mouse &mouse = Mouse::getReference(); Events &events = Events::getReference(); Screen &screen = Screen::getReference(); @@ -967,7 +968,12 @@ bool Game::getYN() { else if ((l == DE_DEU) || (l == NL_NLD)) y = Common::KEYCODE_j; else if ((l == ES_ESP) || (l == IT_ITA)) y = Common::KEYCODE_s; - mouse.cursorOff(); + bool vKbdFlag = g_system->hasFeature(OSystem::kFeatureVirtualKeyboard); + if (!vKbdFlag) + mouse.cursorOff(); + else + g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true); + Surface *s = Surface::newDialog(190, res.stringList().getString(S_CONFIRM_YN)); s->centerOnScreen(); delete s; @@ -999,7 +1005,10 @@ bool Game::getYN() { } while (!events.quitFlag && !breakFlag); screen.update(); - mouse.cursorOn(); + if (!vKbdFlag) + mouse.cursorOn(); + else + g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false); return result; } diff --git a/engines/lure/surface.cpp b/engines/lure/surface.cpp index 26d3f65471..4b291de58b 100644 --- a/engines/lure/surface.cpp +++ b/engines/lure/surface.cpp @@ -424,6 +424,9 @@ bool Surface::getString(Common::String &line, int maxSize, bool isNumeric, bool bool vKbdFlag = g_system->hasFeature(OSystem::kFeatureVirtualKeyboard); if (!vKbdFlag) mouse.cursorOff(); + else + g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true); + // Insert a cursor character at the end of the string newLine.insertChar('_', newLine.size()); @@ -489,6 +492,8 @@ bool Surface::getString(Common::String &line, int maxSize, bool isNumeric, bool if (!vKbdFlag) mouse.cursorOn(); + else + g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false); return false; } |