aboutsummaryrefslogtreecommitdiff
path: root/gui/ListWidget.cpp
diff options
context:
space:
mode:
authorMax Horn2002-10-01 23:11:19 +0000
committerMax Horn2002-10-01 23:11:19 +0000
commit3d7552890a52067ed493c63522fb11bb13ed72bd (patch)
treeab6bb989f3a36b00cc8f6c15337aba640c1a1cd1 /gui/ListWidget.cpp
parent1e626a712828e630d0a8583ab1a9a0b838d2d6cf (diff)
downloadscummvm-rg350-3d7552890a52067ed493c63522fb11bb13ed72bd.tar.gz
scummvm-rg350-3d7552890a52067ed493c63522fb11bb13ed72bd.tar.bz2
scummvm-rg350-3d7552890a52067ed493c63522fb11bb13ed72bd.zip
fixed ListWidget drawin/behaviour if there are less items than fit on one page; enhanced launcher dialog to disable start button if nothing is selected
svn-id: r5068
Diffstat (limited to 'gui/ListWidget.cpp')
-rw-r--r--gui/ListWidget.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp
index 25c11b2065..fb01146b35 100644
--- a/gui/ListWidget.cpp
+++ b/gui/ListWidget.cpp
@@ -58,15 +58,19 @@ void ListWidget::scrollBarRecalc()
void ListWidget::handleMouseDown(int x, int y, int button, int clickCount)
{
- int oldSelectedItem = _selectedItem;
-
- if (_flags & WIDGET_ENABLED) {
+ if (isEnabled()) {
+ int oldSelectedItem = _selectedItem;
_selectedItem = (y - 1) / kLineHeight + _currentPos;
-
- if (_editMode && oldSelectedItem != _selectedItem) {
- // undo any changes made
- _list[oldSelectedItem] = _backupString;
- _editMode = false;
+ if (_selectedItem > _list.size() - 1)
+ _selectedItem = -1;
+
+ if (oldSelectedItem != _selectedItem) {
+ if (_editMode) {
+ // undo any changes made
+ _list[oldSelectedItem] = _backupString;
+ _editMode = false;
+ }
+ sendCommand(kListSelectionChangedCmd, _selectedItem);
}
draw();
}
@@ -96,7 +100,7 @@ bool ListWidget::handleKeyDown(char key, int modifiers)
// enter, confirm edit and exit editmode
_editMode = false;
dirty = true;
- sendCommand(kListItemChangedCmd, _selectedItem);
+ sendCommand(kListItemActivatedCmd, _selectedItem);
} else if (key == 27) {
// ESC, abort edit and exit editmode
_editMode = false;
@@ -172,6 +176,7 @@ bool ListWidget::handleKeyDown(char key, int modifiers)
draw();
if (_selectedItem != oldSelectedItem) {
+ sendCommand(kListSelectionChangedCmd, _selectedItem);
// also draw scrollbar
_scrollBar->draw();
}