diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/about.cpp | 12 | ||||
-rw-r--r-- | gui/about.h | 1 | ||||
-rw-r--r-- | gui/launcher.cpp | 33 | ||||
-rw-r--r-- | gui/launcher.h | 1 |
4 files changed, 25 insertions, 22 deletions
diff --git a/gui/about.cpp b/gui/about.cpp index d821a5943d..9491859769 100644 --- a/gui/about.cpp +++ b/gui/about.cpp @@ -23,6 +23,7 @@ #include "engines/engine.h" #include "base/plugins.h" #include "base/version.h" +#include "common/events.h" #include "common/system.h" #include "common/util.h" #include "gui/about.h" @@ -64,7 +65,7 @@ static const char *gpl_text[] = { AboutDialog::AboutDialog() : Dialog(10, 20, 300, 174), - _scrollPos(0), _scrollTime(0), _modifiers(0), _willClose(false) { + _scrollPos(0), _scrollTime(0), _willClose(false) { int i; @@ -184,7 +185,6 @@ void AboutDialog::addLine(const char *str) { void AboutDialog::open() { _scrollTime = getMillis() + kScrollStartDelay; _scrollPos = 0; - _modifiers = 0; _willClose = false; Dialog::open(); @@ -267,11 +267,13 @@ void AboutDialog::handleTickle() { const uint32 t = getMillis(); int scrollOffset = ((int)t - (int)_scrollTime) / kScrollMillisPerPixel; if (scrollOffset > 0) { + int modifiers = g_system->getEventManager()->getModifierState(); + // Scroll faster when shift is pressed - if (_modifiers & OSystem::KBD_SHIFT) + if (modifiers & OSystem::KBD_SHIFT) scrollOffset *= 4; // Reverse scrolling when alt is pressed - if (_modifiers & OSystem::KBD_ALT) + if (modifiers & OSystem::KBD_ALT) scrollOffset *= -1; _scrollPos += scrollOffset; _scrollTime = t; @@ -292,13 +294,11 @@ void AboutDialog::handleMouseUp(int x, int y, int button, int clickCount) { } void AboutDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { - _modifiers = modifiers; if (ascii) _willClose = true; } void AboutDialog::handleKeyUp(uint16 ascii, int keycode, int modifiers) { - _modifiers = modifiers; if (ascii && _willClose) close(); } diff --git a/gui/about.h b/gui/about.h index 32a5444ddc..23c130905f 100644 --- a/gui/about.h +++ b/gui/about.h @@ -35,7 +35,6 @@ protected: uint32 _scrollTime; StringList _lines; uint32 _lineHeight; - byte _modifiers; bool _willClose; int _xOff, _yOff; diff --git a/gui/launcher.cpp b/gui/launcher.cpp index 4649eda5c4..7ea863c512 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -27,6 +27,7 @@ #include "base/version.h" #include "common/config-manager.h" +#include "common/events.h" #include "common/fs.h" #include "common/util.h" #include "common/system.h" @@ -479,7 +480,7 @@ void EditGameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat #pragma mark - LauncherDialog::LauncherDialog() - : Dialog(0, 0, 320, 200), _modifiers(0) { + : Dialog(0, 0, 320, 200) { _drawingHints |= THEME_HINT_MAIN_DIALOG; const int screenW = g_system->getOverlayWidth(); @@ -561,6 +562,8 @@ void LauncherDialog::open() { // re-launch the same game again. ConfMan.setActiveDomain(""); Dialog::open(); + + updateButtons(); } void LauncherDialog::close() { @@ -616,7 +619,8 @@ void LauncherDialog::updateListing() { } void LauncherDialog::addGame() { - bool massAdd = (_modifiers & OSystem::KBD_SHIFT) != 0; + int modifiers = g_system->getEventManager()->getModifierState(); + bool massAdd = (modifiers & OSystem::KBD_SHIFT) != 0; if (massAdd) { MessageDialog alert("Do you really want to run the mass game detector? " @@ -792,23 +796,13 @@ void LauncherDialog::editGame(int item) { } void LauncherDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { - _modifiers = modifiers; Dialog::handleKeyDown(ascii, keycode, modifiers); - - if ((modifiers & OSystem::KBD_SHIFT) != 0) { - _addButton->setLabel("Mass Add..."); - _addButton->draw(); - } + updateButtons(); } void LauncherDialog::handleKeyUp(uint16 ascii, int keycode, int modifiers) { - _modifiers = modifiers; Dialog::handleKeyUp(ascii, keycode, modifiers); - - if ((modifiers & OSystem::KBD_SHIFT) == 0) { - _addButton->setLabel("Add Game..."); - _addButton->draw(); - } + updateButtons(); } void LauncherDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { @@ -869,6 +863,17 @@ void LauncherDialog::updateButtons() { _removeButton->setEnabled(enable); _removeButton->draw(); } + + // Update the label of the "Add" button depending on whether shift is pressed or not + int modifiers = g_system->getEventManager()->getModifierState(); + const char *newAddButtonLabel = ((modifiers & OSystem::KBD_SHIFT) != 0) + ? "Mass Add..." + : "Add Game..."; + + if (_addButton->getLabel() != newAddButtonLabel) { + _addButton->setLabel(newAddButtonLabel); + _addButton->draw(); + } } void LauncherDialog::reflowLayout() { diff --git a/gui/launcher.h b/gui/launcher.h index 41550db992..0ea7c5995c 100644 --- a/gui/launcher.h +++ b/gui/launcher.h @@ -58,7 +58,6 @@ protected: #endif StringList _domains; BrowserDialog *_browser; - byte _modifiers; virtual void reflowLayout(); |