diff options
author | Max Horn | 2002-10-19 01:22:41 +0000 |
---|---|---|
committer | Max Horn | 2002-10-19 01:22:41 +0000 |
commit | 7198181b093732592d678fc95c64698fe0470715 (patch) | |
tree | de94c24039a14ae90c575440fb47824ff887fd56 /gui/ListWidget.cpp | |
parent | ee13e1638980f8503e8ea04cd676acf1f41197fc (diff) | |
download | scummvm-rg350-7198181b093732592d678fc95c64698fe0470715.tar.gz scummvm-rg350-7198181b093732592d678fc95c64698fe0470715.tar.bz2 scummvm-rg350-7198181b093732592d678fc95c64698fe0470715.zip |
reworked the way the save/load dialog works. yup, still not perfect, but we're hopefully getting closer. Feedback welcome
svn-id: r5189
Diffstat (limited to 'gui/ListWidget.cpp')
-rw-r--r-- | gui/ListWidget.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp index b477f4f9ea..84275b43b7 100644 --- a/gui/ListWidget.cpp +++ b/gui/ListWidget.cpp @@ -48,6 +48,17 @@ ListWidget::~ListWidget() { } +void ListWidget::setList(const StringList& list) +{ + int size = list.size(); + _list = list; + if (_currentPos >= size) + _currentPos = size - 1; + _selectedItem = -1; + _editMode = false; + scrollBarRecalc(); +} + void ListWidget::scrollBarRecalc() { _scrollBar->_numEntries = _list.size(); @@ -136,8 +147,8 @@ bool ListWidget::handleKeyDown(char key, int modifiers) if (_selectedItem >= 0) { // override continuous enter keydown if (_editable && (_currentKeyDown != '\n' && _currentKeyDown != '\r')) { - _editMode = true; dirty = true; + _editMode = true; _backupString = _list[_selectedItem]; } } @@ -271,3 +282,22 @@ void ListWidget::scrollToCurrent() { _scrollBar->_currentPos = _currentPos; _scrollBar->recalc(); } + +void ListWidget::startEditMode() +{ + if (_editable && !_editMode && _selectedItem >= 0) { + _editMode = true; + _backupString = _list[_selectedItem]; + _list[_selectedItem] += '_'; + draw(); + } +} + +void ListWidget::abortEditMode() +{ + if (_editMode) { + _editMode = false; + _list[_selectedItem] = _backupString; + draw(); + } +} |