[Scummvm-cvs-logs] SF.net SVN: scummvm: [26174] scummvm/trunk/gui
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sat Mar 17 17:05:17 CET 2007
Revision: 26174
http://scummvm.svn.sourceforge.net/scummvm/?rev=26174&view=rev
Author: fingolfin
Date: 2007-03-17 09:05:16 -0700 (Sat, 17 Mar 2007)
Log Message:
-----------
Don't track the modifier state, use the eventmanager instead (this also fixes bug #1657322, GUI: 'Mass Add' button text does not revert after mass add)
Modified Paths:
--------------
scummvm/trunk/gui/about.cpp
scummvm/trunk/gui/about.h
scummvm/trunk/gui/launcher.cpp
scummvm/trunk/gui/launcher.h
Modified: scummvm/trunk/gui/about.cpp
===================================================================
--- scummvm/trunk/gui/about.cpp 2007-03-17 15:52:35 UTC (rev 26173)
+++ scummvm/trunk/gui/about.cpp 2007-03-17 16:05:16 UTC (rev 26174)
@@ -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 @@
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::open() {
_scrollTime = getMillis() + kScrollStartDelay;
_scrollPos = 0;
- _modifiers = 0;
_willClose = false;
Dialog::open();
@@ -267,11 +267,13 @@
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::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();
}
Modified: scummvm/trunk/gui/about.h
===================================================================
--- scummvm/trunk/gui/about.h 2007-03-17 15:52:35 UTC (rev 26173)
+++ scummvm/trunk/gui/about.h 2007-03-17 16:05:16 UTC (rev 26174)
@@ -35,7 +35,6 @@
uint32 _scrollTime;
StringList _lines;
uint32 _lineHeight;
- byte _modifiers;
bool _willClose;
int _xOff, _yOff;
Modified: scummvm/trunk/gui/launcher.cpp
===================================================================
--- scummvm/trunk/gui/launcher.cpp 2007-03-17 15:52:35 UTC (rev 26173)
+++ scummvm/trunk/gui/launcher.cpp 2007-03-17 16:05:16 UTC (rev 26174)
@@ -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 @@
#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 @@
// re-launch the same game again.
ConfMan.setActiveDomain("");
Dialog::open();
+
+ updateButtons();
}
void LauncherDialog::close() {
@@ -616,7 +619,8 @@
}
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::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 @@
_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() {
Modified: scummvm/trunk/gui/launcher.h
===================================================================
--- scummvm/trunk/gui/launcher.h 2007-03-17 15:52:35 UTC (rev 26173)
+++ scummvm/trunk/gui/launcher.h 2007-03-17 16:05:16 UTC (rev 26174)
@@ -58,7 +58,6 @@
#endif
StringList _domains;
BrowserDialog *_browser;
- byte _modifiers;
virtual void reflowLayout();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list