Minor additions: added full keypad support to GUI and SCI
svn-id: r46808
This commit is contained in:
parent
3ce017cc2d
commit
080d6da6e4
5 changed files with 35 additions and 1 deletions
|
@ -270,6 +270,22 @@ sciEvent SciEvent::getFromScummVM() {
|
||||||
if (!(_modifierStates & SCI_KEYMOD_NUMLOCK))
|
if (!(_modifierStates & SCI_KEYMOD_NUMLOCK))
|
||||||
input.data = SCI_KEY_CENTER;
|
input.data = SCI_KEY_CENTER;
|
||||||
break;
|
break;
|
||||||
|
case Common::KEYCODE_KP7: // home
|
||||||
|
if (!(_modifierStates & SCI_KEYMOD_NUMLOCK))
|
||||||
|
input.data = SCI_KEY_HOME;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP9: // pageup
|
||||||
|
if (!(_modifierStates & SCI_KEYMOD_NUMLOCK))
|
||||||
|
input.data = SCI_KEY_PGUP;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP1: // end
|
||||||
|
if (!(_modifierStates & SCI_KEYMOD_NUMLOCK))
|
||||||
|
input.data = SCI_KEY_END;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP3: // pagedown
|
||||||
|
if (!(_modifierStates & SCI_KEYMOD_NUMLOCK))
|
||||||
|
input.data = SCI_KEY_PGDOWN;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
input.type = SCI_EVENT_NONE;
|
input.type = SCI_EVENT_NONE;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -286,7 +286,7 @@ bool ListWidget::handleKeyDown(Common::KeyState state) {
|
||||||
bool dirty = false;
|
bool dirty = false;
|
||||||
int oldSelectedItem = _selectedItem;
|
int oldSelectedItem = _selectedItem;
|
||||||
|
|
||||||
if (!_editMode && isprint((unsigned char)state.ascii)) {
|
if (!_editMode && state.keycode <= Common::KEYCODE_z && isprint((unsigned char)state.ascii)) {
|
||||||
// Quick selection mode: Go to first list item starting with this key
|
// Quick selection mode: Go to first list item starting with this key
|
||||||
// (or a substring accumulated from the last couple key presses).
|
// (or a substring accumulated from the last couple key presses).
|
||||||
// Only works in a useful fashion if the list entries are sorted.
|
// Only works in a useful fashion if the list entries are sorted.
|
||||||
|
@ -351,27 +351,33 @@ bool ListWidget::handleKeyDown(Common::KeyState state) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_UP:
|
case Common::KEYCODE_UP:
|
||||||
|
case Common::KEYCODE_KP8:
|
||||||
if (_selectedItem > 0)
|
if (_selectedItem > 0)
|
||||||
_selectedItem--;
|
_selectedItem--;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_DOWN:
|
case Common::KEYCODE_DOWN:
|
||||||
|
case Common::KEYCODE_KP2:
|
||||||
if (_selectedItem < (int)_list.size() - 1)
|
if (_selectedItem < (int)_list.size() - 1)
|
||||||
_selectedItem++;
|
_selectedItem++;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_PAGEUP:
|
case Common::KEYCODE_PAGEUP:
|
||||||
|
case Common::KEYCODE_KP9:
|
||||||
_selectedItem -= _entriesPerPage - 1;
|
_selectedItem -= _entriesPerPage - 1;
|
||||||
if (_selectedItem < 0)
|
if (_selectedItem < 0)
|
||||||
_selectedItem = 0;
|
_selectedItem = 0;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_PAGEDOWN:
|
case Common::KEYCODE_PAGEDOWN:
|
||||||
|
case Common::KEYCODE_KP3:
|
||||||
_selectedItem += _entriesPerPage - 1;
|
_selectedItem += _entriesPerPage - 1;
|
||||||
if (_selectedItem >= (int)_list.size() )
|
if (_selectedItem >= (int)_list.size() )
|
||||||
_selectedItem = _list.size() - 1;
|
_selectedItem = _list.size() - 1;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_HOME:
|
case Common::KEYCODE_HOME:
|
||||||
|
case Common::KEYCODE_KP7:
|
||||||
_selectedItem = 0;
|
_selectedItem = 0;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_END:
|
case Common::KEYCODE_END:
|
||||||
|
case Common::KEYCODE_1:
|
||||||
_selectedItem = _list.size() - 1;
|
_selectedItem = _list.size() - 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -228,15 +228,19 @@ void PopUpDialog::handleKeyDown(Common::KeyState state) {
|
||||||
close();
|
close();
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_UP:
|
case Common::KEYCODE_UP:
|
||||||
|
case Common::KEYCODE_KP8:
|
||||||
moveUp();
|
moveUp();
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_DOWN:
|
case Common::KEYCODE_DOWN:
|
||||||
|
case Common::KEYCODE_KP2:
|
||||||
moveDown();
|
moveDown();
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_HOME:
|
case Common::KEYCODE_HOME:
|
||||||
|
case Common::KEYCODE_KP7:
|
||||||
setSelection(0);
|
setSelection(0);
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_END:
|
case Common::KEYCODE_END:
|
||||||
|
case Common::KEYCODE_KP1:
|
||||||
setSelection(_popUpBoss->_entries.size()-1);
|
setSelection(_popUpBoss->_entries.size()-1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -386,17 +386,21 @@ void ConsoleDialog::handleKeyDown(Common::KeyState state) {
|
||||||
draw();
|
draw();
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_UP:
|
case Common::KEYCODE_UP:
|
||||||
|
case Common::KEYCODE_KP8:
|
||||||
historyScroll(+1);
|
historyScroll(+1);
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_DOWN:
|
case Common::KEYCODE_DOWN:
|
||||||
|
case Common::KEYCODE_KP2:
|
||||||
historyScroll(-1);
|
historyScroll(-1);
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_RIGHT:
|
case Common::KEYCODE_RIGHT:
|
||||||
|
case Common::KEYCODE_KP6:
|
||||||
if (_currentPos < _promptEndPos)
|
if (_currentPos < _promptEndPos)
|
||||||
_currentPos++;
|
_currentPos++;
|
||||||
drawLine(pos2line(_currentPos));
|
drawLine(pos2line(_currentPos));
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_LEFT:
|
case Common::KEYCODE_LEFT:
|
||||||
|
case Common::KEYCODE_KP4:
|
||||||
if (_currentPos > _promptStartPos)
|
if (_currentPos > _promptStartPos)
|
||||||
_currentPos--;
|
_currentPos--;
|
||||||
drawLine(pos2line(_currentPos));
|
drawLine(pos2line(_currentPos));
|
||||||
|
|
|
@ -124,6 +124,7 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) {
|
||||||
forcecaret = true;
|
forcecaret = true;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_LEFT:
|
case Common::KEYCODE_LEFT:
|
||||||
|
case Common::KEYCODE_KP4:
|
||||||
if (_caretPos > 0) {
|
if (_caretPos > 0) {
|
||||||
dirty = setCaretPos(_caretPos - 1);
|
dirty = setCaretPos(_caretPos - 1);
|
||||||
}
|
}
|
||||||
|
@ -131,6 +132,7 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) {
|
||||||
dirty = true;
|
dirty = true;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_RIGHT:
|
case Common::KEYCODE_RIGHT:
|
||||||
|
case Common::KEYCODE_KP6:
|
||||||
if (_caretPos < (int)_editString.size()) {
|
if (_caretPos < (int)_editString.size()) {
|
||||||
dirty = setCaretPos(_caretPos + 1);
|
dirty = setCaretPos(_caretPos + 1);
|
||||||
}
|
}
|
||||||
|
@ -138,10 +140,12 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) {
|
||||||
dirty = true;
|
dirty = true;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_HOME:
|
case Common::KEYCODE_HOME:
|
||||||
|
case Common::KEYCODE_KP7:
|
||||||
dirty = setCaretPos(0);
|
dirty = setCaretPos(0);
|
||||||
forcecaret = true;
|
forcecaret = true;
|
||||||
break;
|
break;
|
||||||
case Common::KEYCODE_END:
|
case Common::KEYCODE_END:
|
||||||
|
case Common::KEYCODE_KP1:
|
||||||
dirty = setCaretPos(_editString.size());
|
dirty = setCaretPos(_editString.size());
|
||||||
forcecaret = true;
|
forcecaret = true;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue