aboutsummaryrefslogtreecommitdiff
path: root/gui/ListWidget.cpp
diff options
context:
space:
mode:
authorMax Horn2002-10-19 01:22:41 +0000
committerMax Horn2002-10-19 01:22:41 +0000
commit7198181b093732592d678fc95c64698fe0470715 (patch)
treede94c24039a14ae90c575440fb47824ff887fd56 /gui/ListWidget.cpp
parentee13e1638980f8503e8ea04cd676acf1f41197fc (diff)
downloadscummvm-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.cpp32
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();
+ }
+}