[Scummvm-cvs-logs] SF.net SVN: scummvm: [22682] scummvm/trunk/gui
wjpalenstijn at users.sourceforge.net
wjpalenstijn at users.sourceforge.net
Sat May 27 06:18:05 CEST 2006
Revision: 22682
Author: wjpalenstijn
Date: 2006-05-27 06:17:19 -0700 (Sat, 27 May 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22682&view=rev
Log Message:
-----------
make EditableWidget's caret visible when it moves
Modified Paths:
--------------
scummvm/trunk/gui/editable.cpp
scummvm/trunk/gui/editable.h
Modified: scummvm/trunk/gui/editable.cpp
===================================================================
--- scummvm/trunk/gui/editable.cpp 2006-05-27 12:55:28 UTC (rev 22681)
+++ scummvm/trunk/gui/editable.cpp 2006-05-27 13:17:19 UTC (rev 22682)
@@ -80,6 +80,7 @@
bool EditableWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
bool handled = true;
bool dirty = false;
+ bool forcecaret = false;
// First remove caret
if (_caretVisible)
@@ -102,33 +103,40 @@
_editString.deleteChar(_caretPos);
dirty = true;
}
+ forcecaret = true;
break;
case 127: // delete
_editString.deleteChar(_caretPos);
+ forcecaret = true;
dirty = true;
break;
case 256 + 20: // left arrow
if (_caretPos > 0) {
dirty = setCaretPos(_caretPos - 1);
}
+ forcecaret = true;
dirty = true;
break;
case 256 + 19: // right arrow
if (_caretPos < (int)_editString.size()) {
dirty = setCaretPos(_caretPos + 1);
}
+ forcecaret = true;
dirty = true;
break;
case 256 + 22: // home
dirty = setCaretPos(0);
+ forcecaret = true;
break;
case 256 + 23: // end
dirty = setCaretPos(_editString.size());
+ forcecaret = true;
break;
default:
if (tryInsertChar((char)ascii, _caretPos)) {
_caretPos++;
dirty = true;
+ forcecaret = true;
} else {
handled = false;
}
@@ -137,6 +145,9 @@
if (dirty)
draw();
+ if (forcecaret)
+ makeCaretVisible();
+
return handled;
}
@@ -207,5 +218,10 @@
return false;
}
+void EditableWidget::makeCaretVisible() {
+ _caretTime = getMillis() + kCaretBlinkTime;
+ _caretVisible = true;
+ drawCaret(false);
+}
} // End of namespace GUI
Modified: scummvm/trunk/gui/editable.h
===================================================================
--- scummvm/trunk/gui/editable.h 2006-05-27 12:55:28 UTC (rev 22681)
+++ scummvm/trunk/gui/editable.h 2006-05-27 13:17:19 UTC (rev 22682)
@@ -72,6 +72,7 @@
void drawCaret(bool erase);
bool setCaretPos(int newPos);
bool adjustOffset();
+ void makeCaretVisible();
void setFontStyle(Theme::kFontStyle font) { _font = font; }
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