[Scummvm-cvs-logs] CVS: scummvm/gui EditTextWidget.cpp,1.21,1.22 ListWidget.cpp,1.30,1.31 ListWidget.h,1.18,1.19

Max Horn fingolfin at users.sourceforge.net
Tue Nov 18 15:45:10 CET 2003


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

Modified Files:
	EditTextWidget.cpp ListWidget.cpp ListWidget.h 
Log Message:
cleanup; fixed return/enter in ListWidget when not in editing mode

Index: EditTextWidget.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/EditTextWidget.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- EditTextWidget.cpp	10 Nov 2003 23:40:48 -0000	1.21
+++ EditTextWidget.cpp	18 Nov 2003 23:44:28 -0000	1.22
@@ -45,11 +45,7 @@
 	uint32 time = g_system->get_msecs();
 	if (_caretTime < time) {
 		_caretTime = time + kCaretBlinkTime;
-		if (_caretVisible) {
-			drawCaret(true);
-		} else {
-			drawCaret(false);
-		}
+		drawCaret(_caretVisible);
 	}
 }
 
@@ -157,7 +153,7 @@
 	g_gui.drawString(_label, _x + 2, _y + 3, _w - 6, g_gui._textcolor, kTextAlignLeft, -_labelOffset, false);
 }
 
-int EditTextWidget::getCaretPos() {
+int EditTextWidget::getCaretPos() const {
 	int caretpos = 0;
 	for (int i = 0; i < _pos; i++)
 		caretpos += g_gui.getCharWidth(_label[i]);
@@ -176,8 +172,7 @@
 	int x = getAbsX() + 2;
 	int y = getAbsY() + 1;
 
-	int width = getCaretPos();
-	x += width;
+	x += getCaretPos();
 
 	g_gui.vLine(x, y, y + kLineHeight, color);
 	g_gui.addDirtyRect(x, y, 2, kLineHeight);
@@ -185,8 +180,6 @@
 	_caretVisible = !erase;
 }
 
-
-
 bool EditTextWidget::adjustOffset() {
 	// check if the caret is still within the textbox; if it isn't,
 	// adjust _labelOffset 
@@ -197,15 +190,11 @@
 		// scroll left
 		_labelOffset += caretpos;
 		return true;
-	}
-	else if (caretpos >= _w - 6)
-	{
+	} else if (caretpos >= _w - 6) {
 		// scroll right
 		_labelOffset -= (_w - 6 - caretpos);
 		return true;
-	}
-	else if (_labelOffset > 0)
-	{
+	} else if (_labelOffset > 0) {
 		int width = g_gui.getStringWidth(_label);
 		if (width - _labelOffset < (_w - 6)) {
 			// scroll right

Index: ListWidget.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/ListWidget.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- ListWidget.cpp	10 Nov 2003 23:40:48 -0000	1.30
+++ ListWidget.cpp	18 Nov 2003 23:44:28 -0000	1.31
@@ -89,11 +89,7 @@
 	uint32 time = g_system->get_msecs();
 	if (_editMode && _caretTime < time) {
 		_caretTime = time + kCaretBlinkTime;
-		if (_caretVisible) {
-			drawCaret(true);
-		} else {
-			drawCaret(false);
-		}
+		drawCaret(_caretVisible);
 	}
 }
 
@@ -178,7 +174,8 @@
 					dirty = true;
 					_editMode = true;
 					_backupString = _list[_selectedItem];
-				}
+				} else
+					sendCommand(kListItemActivatedCmd, _selectedItem);
 			}
 			break;
 		case 256+17:	// up arrow
@@ -285,6 +282,21 @@
 	}
 }
 
+int ListWidget::getCaretPos() const {
+	int caretpos = 0;
+	NewGui *gui = &g_gui;
+
+	if (_numberingMode == kListNumberingZero || _numberingMode == kListNumberingOne) {
+		char temp[10];
+		sprintf(temp, "%2d. ", (_selectedItem + _numberingMode));
+		caretpos += gui->getStringWidth(temp);
+	}
+
+	caretpos += gui->getStringWidth(_list[_selectedItem]);
+	
+	return caretpos;
+}
+
 void ListWidget::drawCaret(bool erase) {
 	// Only draw if item is visible
 	if (_selectedItem < _currentPos || _selectedItem >= _currentPos + _entriesPerPage)
@@ -298,19 +310,10 @@
 	int16 color = erase ? gui->_textcolorhi : gui->_bgcolor;
 	int x = getAbsX() + 3;
 	int y = getAbsY() + 1;
-	Common::String	buffer;
 
 	y += (_selectedItem - _currentPos) * kLineHeight;
 
-	if (_numberingMode == kListNumberingZero || _numberingMode == kListNumberingOne) {
-		char temp[10];
-		sprintf(temp, "%2d. ", (_selectedItem + _numberingMode));
-		buffer = temp;
-		buffer += _list[_selectedItem];
-	} else
-		buffer = _list[_selectedItem];
-
-	x += gui->getStringWidth(buffer);
+	x += getCaretPos();
 
 	gui->vLine(x, y, y+kLineHeight, color);
 	gui->addDirtyRect(x, y, 2, kLineHeight);

Index: ListWidget.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/ListWidget.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- ListWidget.h	10 Nov 2003 23:40:48 -0000	1.18
+++ ListWidget.h	18 Nov 2003 23:44:28 -0000	1.19
@@ -89,7 +89,10 @@
 
 protected:
 	void drawWidget(bool hilite);
+	
+	int getCaretPos() const;
 	void drawCaret(bool erase);
+
 	void lostFocusWidget();
 	void scrollToCurrent();
 };





More information about the Scummvm-git-logs mailing list