diff options
author | Tarek Soliman | 2012-02-20 10:52:50 -0600 |
---|---|---|
committer | Tarek Soliman | 2012-02-20 10:52:50 -0600 |
commit | 6c4d65e53f2bd4d61043ed06fcdf61416405bf87 (patch) | |
tree | 635de0d6ac3fbef68be65aef22e855f038df2d14 /backends | |
parent | a291679445a538ed8143a8f26952c38d6e9d3dd4 (diff) | |
download | scummvm-rg350-6c4d65e53f2bd4d61043ed06fcdf61416405bf87.tar.gz scummvm-rg350-6c4d65e53f2bd4d61043ed06fcdf61416405bf87.tar.bz2 scummvm-rg350-6c4d65e53f2bd4d61043ed06fcdf61416405bf87.zip |
KEYMAPPER: Change how keymaps are displayed in the remap dialog
This makes it so that there's 2 groups:
1 - The keymap stack
2 - The loaded keymaps
The first group displays which keymaps are active and which keymaps
are completely blocked due to an opaque keymap on top.
The second group displays which loaded keymaps store their mappings
globally and which ones store their mappings per-target.
Diffstat (limited to 'backends')
-rw-r--r-- | backends/keymapper/remap-dialog.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/backends/keymapper/remap-dialog.cpp b/backends/keymapper/remap-dialog.cpp index eb2d4c5441..4ef39a15e5 100644 --- a/backends/keymapper/remap-dialog.cpp +++ b/backends/keymapper/remap-dialog.cpp @@ -57,14 +57,12 @@ RemapDialog::~RemapDialog() { } void RemapDialog::open() { - bool divider = false; const Stack<Keymapper::MapRecord> &activeKeymaps = _keymapper->getActiveStack(); if (activeKeymaps.size() > 0) { if (activeKeymaps.top().keymap->getName() == Common::kGuiKeymapName) _topKeymapIsGui = true; _kmPopUp->appendEntry(activeKeymaps.top().keymap->getName() + _(" (Effective)")); - divider = true; } Keymapper::Domain *_globalKeymaps = &_keymapper->getGlobalDomain(); @@ -98,35 +96,30 @@ void RemapDialog::open() { uint32 idx = 0; if (activeKeymaps.size() > 1) { - if (divider) - _kmPopUp->appendEntry(""); int topIndex = activeKeymaps.size() - 1; + bool active = activeKeymaps[topIndex].transparent; for (int i = topIndex - 1; i >= 0; --i) { Keymapper::MapRecord mr = activeKeymaps[i]; - _kmPopUp->appendEntry(mr.keymap->getName() + _(" (Active)"), idx); + _kmPopUp->appendEntry(mr.keymap->getName() + (active ? _(" (Active)") : _(" (Blocked)")), idx); _keymapTable[idx++] = mr.keymap; + active &= mr.transparent; } - divider = true; } + _kmPopUp->appendEntry(""); + if (_globalKeymaps) { - if (divider) - _kmPopUp->appendEntry(""); for (it = _globalKeymaps->begin(); it != _globalKeymaps->end(); ++it) { _kmPopUp->appendEntry(it->_value->getName() + _(" (Global)"), idx); _keymapTable[idx++] = it->_value; } - divider = true; } if (_gameKeymaps) { - if (divider) - _kmPopUp->appendEntry(""); for (it = _gameKeymaps->begin(); it != _gameKeymaps->end(); ++it) { _kmPopUp->appendEntry(it->_value->getName() + _(" (Game)"), idx); _keymapTable[idx++] = it->_value; } - divider = true; } _changes = false; |