[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