[Scummvm-cvs-logs] SF.net SVN: scummvm: [27643] scummvm/trunk

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sat Jun 23 02:05:33 CEST 2007


Revision: 27643
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27643&view=rev
Author:   fingolfin
Date:     2007-06-22 17:05:32 -0700 (Fri, 22 Jun 2007)

Log Message:
-----------
Update GUI::Key constructs

Modified Paths:
--------------
    scummvm/trunk/backends/platform/sdl/events.cpp
    scummvm/trunk/backends/platform/symbian/src/SymbianActions.cpp
    scummvm/trunk/backends/platform/wince/CEActionsPocket.cpp
    scummvm/trunk/backends/platform/wince/CEActionsSmartphone.cpp
    scummvm/trunk/backends/platform/wince/CEgui/PanelKeyboard.cpp
    scummvm/trunk/backends/platform/wince/CEkeys/EventsBuffer.cpp
    scummvm/trunk/backends/platform/wince/wince-sdl.cpp
    scummvm/trunk/gui/Key.cpp
    scummvm/trunk/gui/Key.h

Modified: scummvm/trunk/backends/platform/sdl/events.cpp
===================================================================
--- scummvm/trunk/backends/platform/sdl/events.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/backends/platform/sdl/events.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -59,7 +59,7 @@
 		return key;
 	} else if (unicode) {
 		return unicode;
-	} else if (key >= 'a' && key <= 'z' && mod & KMOD_SHIFT) {
+	} else if (key >= 'a' && key <= 'z' && (mod & KMOD_SHIFT)) {
 		return key & ~0x20;
 	} else if (key >= SDLK_NUMLOCK && key <= SDLK_EURO) {
 		return 0;

Modified: scummvm/trunk/backends/platform/symbian/src/SymbianActions.cpp
===================================================================
--- scummvm/trunk/backends/platform/symbian/src/SymbianActions.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/backends/platform/symbian/src/SymbianActions.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -122,7 +122,7 @@
 
 	// Skip
 	_action_enabled[ACTION_SKIP] = true;
-	_key_action[ACTION_SKIP].setAscii(SDLK_ESCAPE);
+	_key_action[ACTION_SKIP].setKey(SDLK_ESCAPE);
 }
 
 void SymbianActions::initInstanceGame() {
@@ -150,28 +150,27 @@
 		_action_enabled[ACTION_SAVE] = true;
 		
 		if (is_queen) {			
-			_key_action[ACTION_SAVE].setAscii(SDLK_F1); // F1 key for FOTAQ
+			_key_action[ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5); // F1 key for FOTAQ
 		} else if (is_sky) {		
-			_key_action[ACTION_SAVE].setAscii(63); 
+			_key_action[ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5); 
 		} else if (is_cine) {			
-			_key_action[ACTION_SAVE].setAscii(SDLK_F10); // F10
+			_key_action[ACTION_SAVE].setKey(Common::ASCII_F10, SDLK_F10); // F10
 		} else if (is_agi) {		
-			_key_action[ACTION_SAVE].setAscii(SDLK_ESCAPE);
+			_key_action[ACTION_SAVE].setKey(Common::ASCII_ESCAPE, SDLK_ESCAPE);
 		} else if (is_parallaction) {
-			_key_action[ACTION_SAVE].setAscii(SDLK_s);
+			_key_action[ACTION_SAVE].setKey('s', SDLK_s);
 		} else {		
-			_key_action[ACTION_SAVE].setAscii(SDLK_F5); // F5 key
+			_key_action[ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5); // F5 key
 		}
 	}
 
 	// Enable fast mode
 	_action_enabled[ACTION_FASTMODE] = true;
-	_key_action[ACTION_FASTMODE].setAscii('f');
-	_key_action[ACTION_FASTMODE].setFlags(KMOD_CTRL);
+	_key_action[ACTION_FASTMODE].setKey('f', SDLK_f, KMOD_CTRL);
 	
 	// Swap character
 	_action_enabled[ACTION_SWAPCHAR] = true;
-	_key_action[ACTION_SWAPCHAR].setAscii('b'); // b
+	_key_action[ACTION_SWAPCHAR].setKey('b'); // b
 
 	// Zone
 	_action_enabled[ACTION_ZONE] = true;
@@ -179,31 +178,30 @@
 	// Multi function key
 	_action_enabled[ACTION_MULTI] = true;
 	if (is_agi)
-		_key_action[ACTION_MULTI].setAscii(SDLK_PAUSE); // agi: show predictive dialog
+		_key_action[ACTION_MULTI].setKey(SDLK_PAUSE); // agi: show predictive dialog
 	else if (is_gob)
-		_key_action[ACTION_MULTI].setAscii(315); // bargon : F1 to start
+		_key_action[ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
 	else if (gameid == "atlantis")
-		_key_action[ACTION_MULTI].setAscii(SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+		_key_action[ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
 	else
-		_key_action[ACTION_MULTI].setAscii(86); // FT cheat : shift-V
+		_key_action[ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
 
 	// Enable debugger
 	_action_enabled[ACTION_DEBUGGER] = true;
-	_key_action[ACTION_DEBUGGER].setAscii('d');
-	_key_action[ACTION_DEBUGGER].setFlags(KMOD_CTRL);
+	_key_action[ACTION_DEBUGGER].setKey('d', SDLK_d, KMOD_CTRL);
 
 	// Skip text
 	if (!is_cine)
 		_action_enabled[ACTION_SKIP_TEXT] = true;
 
 	if (is_queen) {
-		_key_action[ACTION_SKIP_TEXT].setAscii(SDLK_SPACE);
+		_key_action[ACTION_SKIP_TEXT].setKey(SDLK_SPACE);
 	} else {
-		_key_action[ACTION_SKIP_TEXT].setAscii(SDLK_PERIOD);
+		_key_action[ACTION_SKIP_TEXT].setKey(SDLK_PERIOD);
 	}
 
 	// Pause
-	_key_action[ACTION_PAUSE].setAscii(' ');
+	_key_action[ACTION_PAUSE].setKey(' ');
 	_action_enabled[ACTION_PAUSE] = true;
 
 	// Quit

Modified: scummvm/trunk/backends/platform/wince/CEActionsPocket.cpp
===================================================================
--- scummvm/trunk/backends/platform/wince/CEActionsPocket.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/backends/platform/wince/CEActionsPocket.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -141,29 +141,29 @@
 
 	// Initialize keys for different actions
 	// Pause
-	_key_action[POCKET_ACTION_PAUSE].setAscii(VK_SPACE);
+	_key_action[POCKET_ACTION_PAUSE].setKey(VK_SPACE);
 	_action_enabled[POCKET_ACTION_PAUSE] = true;
 	// Save
 	if (is_simon || is_sword2 || is_gob || is_kyra || is_touche)
 		_action_enabled[POCKET_ACTION_SAVE] = false;
 	else if (is_queen) {
 		_action_enabled[POCKET_ACTION_SAVE] = true;
-		_key_action[POCKET_ACTION_SAVE].setAscii(286); // F1 key for FOTAQ
+		_key_action[POCKET_ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5); // F1 key for FOTAQ
 	} else if (is_sky) {
 		_action_enabled[POCKET_ACTION_SAVE] = true;
-		_key_action[POCKET_ACTION_SAVE].setAscii(63);
+		_key_action[POCKET_ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5);
 	} else if (is_cine) {
 		_action_enabled[POCKET_ACTION_SAVE] = true;
-		_key_action[POCKET_ACTION_SAVE].setAscii(291); // F10
+		_key_action[POCKET_ACTION_SAVE].setKey(Common::ASCII_F10, SDLK_F10); // F10
 	} else if (is_agi) {
 		_action_enabled[POCKET_ACTION_SAVE] = true;
-		_key_action[POCKET_ACTION_SAVE].setAscii(SDLK_ESCAPE);
+		_key_action[POCKET_ACTION_SAVE].setKey(Common::ASCII_ESCAPE, SDLK_ESCAPE);
 	} else if (is_parallaction) {
 		_action_enabled[POCKET_ACTION_SAVE] = true;
-		_key_action[POCKET_ACTION_SAVE].setAscii(SDLK_s);
+		_key_action[POCKET_ACTION_SAVE].setKey('s', SDLK_s);
 	} else {
 		_action_enabled[POCKET_ACTION_SAVE] = true;
-		_key_action[POCKET_ACTION_SAVE].setAscii(319); // F5 key
+		_key_action[POCKET_ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5); // F5 key
 	}
 	// Quit
 	_action_enabled[POCKET_ACTION_QUIT] = true;
@@ -171,9 +171,9 @@
 	if (!is_cine && !is_parallaction)
 		_action_enabled[POCKET_ACTION_SKIP] = true;
 	if (is_simon || is_sky || is_sword2 || is_queen || is_sword1 || is_gob || is_saga || is_kyra || is_touche)
-		_key_action[POCKET_ACTION_SKIP].setAscii(VK_ESCAPE);
+		_key_action[POCKET_ACTION_SKIP].setKey(VK_ESCAPE);
 	else
-		_key_action[POCKET_ACTION_SKIP].setAscii(KEY_ALL_SKIP);
+		_key_action[POCKET_ACTION_SKIP].setKey(KEY_ALL_SKIP);
 	// Hide
 	_action_enabled[POCKET_ACTION_HIDE] = true;
 	// Keyboard
@@ -195,13 +195,13 @@
 	// Multi function key
 	_action_enabled[POCKET_ACTION_MULTI] = true;
 	if (is_agi)
-		_key_action[POCKET_ACTION_MULTI].setAscii(SDLK_PAUSE); // agi: show predictive dialog
+		_key_action[POCKET_ACTION_MULTI].setKey(SDLK_PAUSE); // agi: show predictive dialog
 	else if (is_gob)
-		_key_action[POCKET_ACTION_MULTI].setAscii(315); // bargon : F1 to start
+		_key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
 	else if (gameid == "atlantis")
-		_key_action[POCKET_ACTION_MULTI].setAscii(SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+		_key_action[POCKET_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
 	else
-		_key_action[POCKET_ACTION_MULTI].setAscii(86); // FT cheat : shift-V
+		_key_action[POCKET_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
 	// Key bind method
 	_action_enabled[POCKET_ACTION_BINDKEYS] = true;
 }
@@ -242,9 +242,9 @@
 				// Note that the user can accomplish this via the virtual keyboard as well, this is just for convenience
 				GUI::MessageDialog alert("Do you want to load or save the game?", "Load", "Save");
 				if (alert.runModal() == GUI::kMessageOK)
-					_key_action[action].setAscii(SDLK_l);
+					_key_action[action].setKey(SDLK_l);
 				else
-					_key_action[action].setAscii(SDLK_s);
+					_key_action[action].setKey(SDLK_s);
 			}
 			EventsBuffer::simulateKey(&_key_action[action], true);
 			return true;

Modified: scummvm/trunk/backends/platform/wince/CEActionsSmartphone.cpp
===================================================================
--- scummvm/trunk/backends/platform/wince/CEActionsSmartphone.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/backends/platform/wince/CEActionsSmartphone.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -131,41 +131,41 @@
 		_action_enabled[SMARTPHONE_ACTION_SAVE] = false;
 	else if (is_queen) {
 		_action_enabled[SMARTPHONE_ACTION_SAVE] = true;
-		_key_action[SMARTPHONE_ACTION_SAVE].setAscii(SDLK_F5); // F1 key for FOTAQ
+		_key_action[SMARTPHONE_ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5); // F1 key for FOTAQ
 	} else if (is_sky) {
 		_action_enabled[SMARTPHONE_ACTION_SAVE] = true;
-		_key_action[SMARTPHONE_ACTION_SAVE].setAscii(SDLK_QUESTION);
+		_key_action[SMARTPHONE_ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5);
 	} else if (is_cine) {
 		_action_enabled[SMARTPHONE_ACTION_SAVE] = true;
-		_key_action[SMARTPHONE_ACTION_SAVE].setAscii(SDLK_F10); //F10
+		_key_action[SMARTPHONE_ACTION_SAVE].setKey(Common::ASCII_F10, SDLK_F10); //F10
 	} else if (is_agi) {
 		_action_enabled[SMARTPHONE_ACTION_SAVE] = true;
-		_key_action[SMARTPHONE_ACTION_SAVE].setAscii(SDLK_ESCAPE);
+		_key_action[SMARTPHONE_ACTION_SAVE].setKey(Common::ASCII_ESCAPE, SDLK_ESCAPE);
 	} else if (is_parallaction) {
 		_action_enabled[SMARTPHONE_ACTION_SAVE] = true;
-		_key_action[SMARTPHONE_ACTION_SAVE].setAscii(SDLK_s);
+		_key_action[SMARTPHONE_ACTION_SAVE].setKey('s', SDLK_s);
 	} else {
 		_action_enabled[SMARTPHONE_ACTION_SAVE] = true;
-		_key_action[SMARTPHONE_ACTION_SAVE].setAscii(Common::ASCII_F5); // F5 key
+		_key_action[SMARTPHONE_ACTION_SAVE].setKey(Common::ASCII_F5, SDLK_F5); // F5 key
 	}
 	// Skip
 	_action_enabled[SMARTPHONE_ACTION_SKIP] = true;
 	if (is_simon || is_sky || is_sword2 || is_queen || is_sword1 || is_gob || is_saga || is_kyra || is_touche)
-		_key_action[SMARTPHONE_ACTION_SKIP].setAscii(VK_ESCAPE);
+		_key_action[SMARTPHONE_ACTION_SKIP].setKey(VK_ESCAPE);
 	else
-		_key_action[SMARTPHONE_ACTION_SKIP].setAscii(KEY_ALL_SKIP);
+		_key_action[SMARTPHONE_ACTION_SKIP].setKey(KEY_ALL_SKIP);
 	// Zone
 	_action_enabled[SMARTPHONE_ACTION_ZONE] = true;
 	// Multi function key
 	_action_enabled[SMARTPHONE_ACTION_MULTI] = true;
 	if (is_agi)
-		_key_action[SMARTPHONE_ACTION_MULTI].setAscii(SDLK_PAUSE); // agi: show predictive dialog
+		_key_action[SMARTPHONE_ACTION_MULTI].setKey(SDLK_PAUSE); // agi: show predictive dialog
 	else if (is_gob)
-		_key_action[SMARTPHONE_ACTION_MULTI].setAscii(Common::ASCII_F1); // bargon : F1 to start
+		_key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1) // bargon : F1 to start
 	else if (gameid == "atlantis")
-		_key_action[SMARTPHONE_ACTION_MULTI].setAscii(SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+		_key_action[SMARTPHONE_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
 	else
-		_key_action[SMARTPHONE_ACTION_MULTI].setAscii(86); // FT cheat : shift-V
+		_key_action[SMARTPHONE_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
 	// Bind keys
 	_action_enabled[SMARTPHONE_ACTION_BINDKEYS] = true;
 }
@@ -203,9 +203,9 @@
 				// Note that the user can accomplish this via the virtual keyboard as well, this is just for convenience
 				GUI::MessageDialog alert("Do you want to load or save the game?", "Load", "Save");
 				if (alert.runModal() == GUI::kMessageOK)
-					_key_action[action].setAscii(SDLK_l);
+					_key_action[action].setKey(SDLK_l);
 				else
-					_key_action[action].setAscii(SDLK_s);
+					_key_action[action].setKey(SDLK_s);
 			}
 			EventsBuffer::simulateKey(&_key_action[action], true);
 			return true;

Modified: scummvm/trunk/backends/platform/wince/CEgui/PanelKeyboard.cpp
===================================================================
--- scummvm/trunk/backends/platform/wince/CEgui/PanelKeyboard.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/backends/platform/wince/CEgui/PanelKeyboard.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -36,8 +36,7 @@
 	PanelKeyboard::PanelKeyboard(WORD reference) : Toolbar() {
 		setBackground(reference);
 		_state = false;
-		_lastKey.setAscii(0);
-		_lastKey.setKeycode(0);
+		_lastKey.setKey(0);
 	}
 
 
@@ -78,25 +77,21 @@
 					keyCode = _lastKey.keycode();
 				}
 				_state = pushed;
-				_lastKey.setAscii(keyAscii);
-				_lastKey.setKeycode(tolower(keyCode));
+				_lastKey.setKey(keyAscii, tolower(keyCode));
 
-				key.setAscii(keyAscii);
-				key.setKeycode(tolower(keyCode));
+				key.setKey(keyAscii, tolower(keyCode));
 				return EventsBuffer::simulateKey(&key, pushed);
 			}
 			else if (_state && !pushed) { // cursor is in some forbidden region and is up
 				_state = false;
-				key.setAscii(_lastKey.ascii());
-				key.setKeycode(_lastKey.keycode());
+				key = _lastKey;
 				return EventsBuffer::simulateKey(&key, false);
 			} else
 				return false;
 		}
 		else if (_state && !pushed) { // cursor left the keyboard area and is up
 			_state = false;
-			key.setAscii(_lastKey.ascii());
-			key.setKeycode(_lastKey.keycode());
+			key = _lastKey;
 			return EventsBuffer::simulateKey(&key, false);
 		} else
 			return false;

Modified: scummvm/trunk/backends/platform/wince/CEkeys/EventsBuffer.cpp
===================================================================
--- scummvm/trunk/backends/platform/wince/CEkeys/EventsBuffer.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/backends/platform/wince/CEkeys/EventsBuffer.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -32,11 +32,10 @@
 		SDL_Event ev = {0};
 
 		if (!key->keycode())
-			key->setKeycode(key->ascii());
+			key->setKey(key->ascii(), key->ascii());
+		else if (!key->ascii())
+			key->setKey(key->keycode());
 
-		if (!key->ascii())
-			key->setAscii(key->keycode());
-
 		ev.type = (pushed ? SDL_KEYDOWN : SDL_KEYUP);
 		ev.key.keysym.mod = (SDLMod)key->flags();
 		ev.key.keysym.sym = (SDLKey)key->keycode();

Modified: scummvm/trunk/backends/platform/wince/wince-sdl.cpp
===================================================================
--- scummvm/trunk/backends/platform/wince/wince-sdl.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/backends/platform/wince/wince-sdl.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -2105,7 +2105,7 @@
 		return key;
 	} else if (unicode) {
 		return unicode;
-	} else if (key >= 'a' && key <= 'z' && mod & KMOD_SHIFT) {
+	} else if (key >= 'a' && key <= 'z' && (mod & KMOD_SHIFT)) {
 		return key & ~0x20;
 	} else if (key >= SDLK_NUMLOCK && key <= SDLK_EURO) {
 		return 0;

Modified: scummvm/trunk/gui/Key.cpp
===================================================================
--- scummvm/trunk/gui/Key.cpp	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/gui/Key.cpp	2007-06-23 00:05:32 UTC (rev 27643)
@@ -32,10 +32,30 @@
 _ascii(0), _keycode(0), _flags(0) {
 }
 
+Key::Key(int ascii) :
+_ascii(ascii), _keycode(ascii), _flags(0) {
+}
+
 Key::Key(int ascii, int keycode, int flags) :
 _ascii(ascii), _keycode(keycode), _flags(flags) {
 }
 
+void Key::setKey(int ascii) {
+	_ascii = ascii;
+	_keycode = ascii;
+}
+
+void Key::setKey(int ascii, int keycode) {
+	_ascii = ascii;
+	_keycode = keycode;
+}
+
+void Key::setKey(int ascii, int keycode, int flags) {
+	_ascii = ascii;
+	_keycode = keycode;
+	_flags = flags;
+}
+
 int Key::ascii() {
 	return _ascii;
 }
@@ -48,18 +68,4 @@
 	return _flags;
 }
 
-
-void Key::setAscii(int ascii) {
-	_ascii = ascii;
-	_keycode = ascii; // default
-}
-
-void Key::setKeycode(int keycode) {
-	_keycode = keycode;
-}
-
-void Key::setFlags(int flags) {
-	_flags = flags;
-}
-
 } // namespace GUI

Modified: scummvm/trunk/gui/Key.h
===================================================================
--- scummvm/trunk/gui/Key.h	2007-06-22 23:43:17 UTC (rev 27642)
+++ scummvm/trunk/gui/Key.h	2007-06-23 00:05:32 UTC (rev 27643)
@@ -32,13 +32,18 @@
 
 namespace GUI {
 
+// TODO/FIXME: Make use of Common::KeyState from common/keyboard.h
+
 class Key {
 public:
-	Key(int ascii, int keycode = 0, int flags = 0);
+	Key(int ascii);
+	Key(int ascii, int keycode, int flags = 0);
 	Key();
-	void setAscii(int ascii);
-	void setKeycode(int keycode);
-	void setFlags(int flags);
+
+	void setKey(int ascii);
+	void setKey(int ascii, int keycode);
+	void setKey(int ascii, int keycode, int flags);
+
 	int ascii();
 	int keycode();
 	int flags();


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