[Scummvm-cvs-logs] CVS: scummvm/gui EditTextWidget.cpp,1.12,1.13

Max Horn fingolfin at users.sourceforge.net
Mon May 5 09:13:07 CEST 2003


Update of /cvsroot/scummvm/scummvm/gui
In directory sc8-pr-cvs1:/tmp/cvs-serv30342

Modified Files:
	EditTextWidget.cpp 
Log Message:
Patch #732725: EditTextWidget: handleMouseDown positions caret

Index: EditTextWidget.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/EditTextWidget.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- EditTextWidget.cpp	5 May 2003 16:10:18 -0000	1.12
+++ EditTextWidget.cpp	5 May 2003 16:12:45 -0000	1.13
@@ -51,9 +51,26 @@
 	}
 }
 
-void EditTextWidget::handleMouseDown(int x, int y, int button, int clickCount) {
-	// TODO - once we support "real editing" (i.e. caret can be at any spot),
-	// a mouse click should place the caret.
+void EditTextWidget::handleMouseDown(int x, int y, int button, int clickCount){
+	// First remove caret
+	if (_caretVisible)
+		drawCaret(true);
+
+	NewGui *gui = _boss->getGui();
+
+	x += _labelOffset;
+
+	int width = 0;
+	int i;
+
+	for (i = 0; i < _label.size(); ++i) {
+		width += gui->getCharWidth(_label[i]);
+		if (width >= x)
+			break;
+	}
+	_pos = i;
+	if (adjustOffset())
+		draw();
 }
 
 bool EditTextWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) {





More information about the Scummvm-git-logs mailing list