aboutsummaryrefslogtreecommitdiff
path: root/engines/lure
diff options
context:
space:
mode:
authorKostas Nakos2007-12-16 20:01:41 +0000
committerKostas Nakos2007-12-16 20:01:41 +0000
commite861cf567d66f52f99274e24f11cdf0b11f24ce9 (patch)
tree16bcd6d2cb41bd6e896e50df22e9d042e7587bba /engines/lure
parent4a3dedfe7e14d0309b7b046efd96775d87c9583e (diff)
downloadscummvm-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
Diffstat (limited to 'engines/lure')
-rw-r--r--engines/lure/game.cpp13
-rw-r--r--engines/lure/surface.cpp5
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;
}