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))
|
||||
input.data = SCI_KEY_CENTER;
|
||||
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:
|
||||
input.type = SCI_EVENT_NONE;
|
||||
break;
|
||||
|
|
|
@ -286,7 +286,7 @@ bool ListWidget::handleKeyDown(Common::KeyState state) {
|
|||
bool dirty = false;
|
||||
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
|
||||
// (or a substring accumulated from the last couple key presses).
|
||||
// Only works in a useful fashion if the list entries are sorted.
|
||||
|
@ -351,27 +351,33 @@ bool ListWidget::handleKeyDown(Common::KeyState state) {
|
|||
}
|
||||
break;
|
||||
case Common::KEYCODE_UP:
|
||||
case Common::KEYCODE_KP8:
|
||||
if (_selectedItem > 0)
|
||||
_selectedItem--;
|
||||
break;
|
||||
case Common::KEYCODE_DOWN:
|
||||
case Common::KEYCODE_KP2:
|
||||
if (_selectedItem < (int)_list.size() - 1)
|
||||
_selectedItem++;
|
||||
break;
|
||||
case Common::KEYCODE_PAGEUP:
|
||||
case Common::KEYCODE_KP9:
|
||||
_selectedItem -= _entriesPerPage - 1;
|
||||
if (_selectedItem < 0)
|
||||
_selectedItem = 0;
|
||||
break;
|
||||
case Common::KEYCODE_PAGEDOWN:
|
||||
case Common::KEYCODE_KP3:
|
||||
_selectedItem += _entriesPerPage - 1;
|
||||
if (_selectedItem >= (int)_list.size() )
|
||||
_selectedItem = _list.size() - 1;
|
||||
break;
|
||||
case Common::KEYCODE_HOME:
|
||||
case Common::KEYCODE_KP7:
|
||||
_selectedItem = 0;
|
||||
break;
|
||||
case Common::KEYCODE_END:
|
||||
case Common::KEYCODE_1:
|
||||
_selectedItem = _list.size() - 1;
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -228,15 +228,19 @@ void PopUpDialog::handleKeyDown(Common::KeyState state) {
|
|||
close();
|
||||
break;
|
||||
case Common::KEYCODE_UP:
|
||||
case Common::KEYCODE_KP8:
|
||||
moveUp();
|
||||
break;
|
||||
case Common::KEYCODE_DOWN:
|
||||
case Common::KEYCODE_KP2:
|
||||
moveDown();
|
||||
break;
|
||||
case Common::KEYCODE_HOME:
|
||||
case Common::KEYCODE_KP7:
|
||||
setSelection(0);
|
||||
break;
|
||||
case Common::KEYCODE_END:
|
||||
case Common::KEYCODE_KP1:
|
||||
setSelection(_popUpBoss->_entries.size()-1);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -386,17 +386,21 @@ void ConsoleDialog::handleKeyDown(Common::KeyState state) {
|
|||
draw();
|
||||
break;
|
||||
case Common::KEYCODE_UP:
|
||||
case Common::KEYCODE_KP8:
|
||||
historyScroll(+1);
|
||||
break;
|
||||
case Common::KEYCODE_DOWN:
|
||||
case Common::KEYCODE_KP2:
|
||||
historyScroll(-1);
|
||||
break;
|
||||
case Common::KEYCODE_RIGHT:
|
||||
case Common::KEYCODE_KP6:
|
||||
if (_currentPos < _promptEndPos)
|
||||
_currentPos++;
|
||||
drawLine(pos2line(_currentPos));
|
||||
break;
|
||||
case Common::KEYCODE_LEFT:
|
||||
case Common::KEYCODE_KP4:
|
||||
if (_currentPos > _promptStartPos)
|
||||
_currentPos--;
|
||||
drawLine(pos2line(_currentPos));
|
||||
|
|
|
@ -124,6 +124,7 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) {
|
|||
forcecaret = true;
|
||||
break;
|
||||
case Common::KEYCODE_LEFT:
|
||||
case Common::KEYCODE_KP4:
|
||||
if (_caretPos > 0) {
|
||||
dirty = setCaretPos(_caretPos - 1);
|
||||
}
|
||||
|
@ -131,6 +132,7 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) {
|
|||
dirty = true;
|
||||
break;
|
||||
case Common::KEYCODE_RIGHT:
|
||||
case Common::KEYCODE_KP6:
|
||||
if (_caretPos < (int)_editString.size()) {
|
||||
dirty = setCaretPos(_caretPos + 1);
|
||||
}
|
||||
|
@ -138,10 +140,12 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) {
|
|||
dirty = true;
|
||||
break;
|
||||
case Common::KEYCODE_HOME:
|
||||
case Common::KEYCODE_KP7:
|
||||
dirty = setCaretPos(0);
|
||||
forcecaret = true;
|
||||
break;
|
||||
case Common::KEYCODE_END:
|
||||
case Common::KEYCODE_KP1:
|
||||
dirty = setCaretPos(_editString.size());
|
||||
forcecaret = true;
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue