[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