[Scummvm-cvs-logs] SF.net SVN: scummvm: [27046] scummvm/trunk/engines/agi/predictive.cpp
knakos at users.sourceforge.net
knakos at users.sourceforge.net
Sat Jun 2 08:53:52 CEST 2007
Revision: 27046
http://scummvm.svn.sourceforge.net/scummvm/?rev=27046&view=rev
Author: knakos
Date: 2007-06-01 23:53:52 -0700 (Fri, 01 Jun 2007)
Log Message:
-----------
kill misplaced cursor, refresh only when necessary, add some (cheap) visual feedback on keypress
Modified Paths:
--------------
scummvm/trunk/engines/agi/predictive.cpp
Modified: scummvm/trunk/engines/agi/predictive.cpp
===================================================================
--- scummvm/trunk/engines/agi/predictive.cpp 2007-06-02 05:27:34 UTC (rev 27045)
+++ scummvm/trunk/engines/agi/predictive.cpp 2007-06-02 06:53:52 UTC (rev 27046)
@@ -110,7 +110,7 @@
}
bool AgiEngine::predictiveDialog(void) {
- int key, active = 0;
+ int key = 0, active = -1, lastactive = -1;
bool rc = false;
int x;
int y;
@@ -158,8 +158,6 @@
_gfx->drawRectangle(62, 54, 249, 66, MSG_BOX_TEXT);
_gfx->flushBlock(62, 54, 249, 66);
- _gfx->printCharacter(3, 11, _game.cursorChar, MSG_BOX_COLOUR, MSG_BOX_TEXT);
-
bx[15] = 73; // Zero/space
by[15] = 120;
bx[9] = 120; // next
@@ -234,6 +232,14 @@
printText(temp, 0, 8, 7, MAXWORDLEN, 15, 0);
_gfx->flushBlock(62, 54, 249, 66);
}
+
+ if (active >= 0 && key != 9) {
+ active = -1;
+ needRefresh = true;
+ } else
+ needRefresh = false;
+
+ _gfx->doUpdate();
}
_gfx->pollTimer(); /* msdos driver -> does nothing */
@@ -249,7 +255,7 @@
for (int i = 0; buttons[i]; i++) {
if (_gfx->testButton(bx[i], by[i], buttons[i])) {
needRefresh = true;
- active = i;
+ lastactive = active = i;
if (active == 15 && mode != kModeNum) { // Space
strncpy(temp, _currentWord.c_str(), _currentCode.size());
@@ -304,12 +310,11 @@
break;
case 0x09: /* Tab */
debugC(3, kDebugLevelText, "Focus change");
- active++;
+ lastactive = active = lastactive + 1;
active %= ARRAYSIZE(buttons) - 1;
needRefresh = true;
break;
}
- _gfx->doUpdate();
}
press:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list