[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