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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sat Jun 23 01:20:50 CEST 2007


Revision: 27640
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27640&view=rev
Author:   fingolfin
Date:     2007-06-22 16:20:50 -0700 (Fri, 22 Jun 2007)

Log Message:
-----------
Moved keyboard stuff to a separate header file

Modified Paths:
--------------
    scummvm/trunk/common/events.h

Added Paths:
-----------
    scummvm/trunk/common/keyboard.h

Modified: scummvm/trunk/common/events.h
===================================================================
--- scummvm/trunk/common/events.h	2007-06-22 23:14:33 UTC (rev 27639)
+++ scummvm/trunk/common/events.h	2007-06-22 23:20:50 UTC (rev 27640)
@@ -26,6 +26,7 @@
 #ifndef COMMON_EVENTS_H
 #define COMMON_EVENTS_H
 
+#include "common/keyboard.h"
 #include "common/rect.h"
 #include "common/system.h"
 #include "common/noncopyable.h"
@@ -67,231 +68,7 @@
 	EVENT_PREDICTIVE_DIALOG = 12
 };
 
-enum KeyCode {
-	KEYCODE_INVALID     = 0,
-
-	KEYCODE_BACKSPACE   = 8,
-	KEYCODE_TAB         = 9,
-	KEYCODE_CLEAR       = 12,
-	KEYCODE_RETURN      = 13,
-	KEYCODE_PAUSE       = 19,
-	KEYCODE_ESCAPE      = 27,
-	KEYCODE_SPACE       = 32,
-	KEYCODE_EXCLAIM     = 33,
-	KEYCODE_QUOTEDBL    = 34,
-	KEYCODE_HASH        = 35,
-	KEYCODE_DOLLAR      = 36,
-	KEYCODE_AMPERSAND   = 38,
-	KEYCODE_QUOTE       = 39,
-	KEYCODE_LEFTPAREN   = 40,
-	KEYCODE_RIGHTPAREN  = 41,
-	KEYCODE_ASTERISK    = 42,
-	KEYCODE_PLUS        = 43,
-	KEYCODE_COMMA       = 44,
-	KEYCODE_MINUS       = 45,
-	KEYCODE_PERIOD      = 46,
-	KEYCODE_SLASH       = 47,
-	KEYCODE_0           = 48,
-	KEYCODE_1           = 49,
-	KEYCODE_2           = 50,
-	KEYCODE_3           = 51,
-	KEYCODE_4           = 52,
-	KEYCODE_5           = 53,
-	KEYCODE_6           = 54,
-	KEYCODE_7           = 55,
-	KEYCODE_8           = 56,
-	KEYCODE_9           = 57,
-	KEYCODE_COLON       = 58,
-	KEYCODE_SEMICOLON   = 59,
-	KEYCODE_LESS        = 60,
-	KEYCODE_EQUALS      = 61,
-	KEYCODE_GREATER     = 62,
-	KEYCODE_QUESTION    = 63,
-	KEYCODE_AT          = 64,
-
-	KEYCODE_LEFTBRACKET = 91,
-	KEYCODE_BACKSLASH   = 92,
-	KEYCODE_RIGHTBRACKET= 93,
-	KEYCODE_CARET       = 94,
-	KEYCODE_UNDERSCORE  = 95,
-	KEYCODE_BACKQUOTE   = 96,
-	KEYCODE_a           = 97,
-	KEYCODE_b           = 98,
-	KEYCODE_c           = 99,
-	KEYCODE_d           = 100,
-	KEYCODE_e           = 101,
-	KEYCODE_f           = 102,
-	KEYCODE_g           = 103,
-	KEYCODE_h           = 104,
-	KEYCODE_i           = 105,
-	KEYCODE_j           = 106,
-	KEYCODE_k           = 107,
-	KEYCODE_l           = 108,
-	KEYCODE_m           = 109,
-	KEYCODE_n           = 110,
-	KEYCODE_o           = 111,
-	KEYCODE_p           = 112,
-	KEYCODE_q           = 113,
-	KEYCODE_r           = 114,
-	KEYCODE_s           = 115,
-	KEYCODE_t           = 116,
-	KEYCODE_u           = 117,
-	KEYCODE_v           = 118,
-	KEYCODE_w           = 119,
-	KEYCODE_x           = 120,
-	KEYCODE_y           = 121,
-	KEYCODE_z           = 122,
-	KEYCODE_DELETE      = 127,
-
-	// Numeric keypad
-	KEYCODE_KP0         = 256,
-	KEYCODE_KP1         = 257,
-	KEYCODE_KP2         = 258,
-	KEYCODE_KP3         = 259,
-	KEYCODE_KP4         = 260,
-	KEYCODE_KP5         = 261,
-	KEYCODE_KP6         = 262,
-	KEYCODE_KP7         = 263,
-	KEYCODE_KP8         = 264,
-	KEYCODE_KP9         = 265,
-	KEYCODE_KP_PERIOD   = 266,
-	KEYCODE_KP_DIVIDE   = 267,
-	KEYCODE_KP_MULTIPLY = 268,
-	KEYCODE_KP_MINUS    = 269,
-	KEYCODE_KP_PLUS     = 270,
-	KEYCODE_KP_ENTER    = 271,
-	KEYCODE_KP_EQUALS   = 272,
-
-	// Arrows + Home/End pad
-	KEYCODE_UP          = 273,
-	KEYCODE_DOWN        = 274,
-	KEYCODE_RIGHT       = 275,
-	KEYCODE_LEFT        = 276,
-	KEYCODE_INSERT      = 277,
-	KEYCODE_HOME        = 278,
-	KEYCODE_END         = 279,
-	KEYCODE_PAGEUP      = 280,
-	KEYCODE_PAGEDOWN    = 281,
-
-	// Function keys
-	KEYCODE_F1          = 282,
-	KEYCODE_F2          = 283,
-	KEYCODE_F3          = 284,
-	KEYCODE_F4          = 285,
-	KEYCODE_F5          = 286,
-	KEYCODE_F6          = 287,
-	KEYCODE_F7          = 288,
-	KEYCODE_F8          = 289,
-	KEYCODE_F9          = 290,
-	KEYCODE_F10         = 291,
-	KEYCODE_F11         = 292,
-	KEYCODE_F12         = 293,
-	KEYCODE_F13         = 294,
-	KEYCODE_F14         = 295,
-	KEYCODE_F15         = 296,
-
-	// Key state modifier keys
-	KEYCODE_NUMLOCK     = 300,
-	KEYCODE_CAPSLOCK    = 301,
-	KEYCODE_SCROLLOCK   = 302,
-	KEYCODE_RSHIFT      = 303,
-	KEYCODE_LSHIFT      = 304,
-	KEYCODE_RCTRL       = 305,
-	KEYCODE_LCTRL       = 306,
-	KEYCODE_RALT        = 307,
-	KEYCODE_LALT        = 308,
-	KEYCODE_RMETA       = 309,
-	KEYCODE_LMETA       = 310,
-	KEYCODE_LSUPER      = 311,      // Left "Windows" key
-	KEYCODE_RSUPER      = 312,      // Right "Windows" key
-	KEYCODE_MODE        = 313,      // "Alt Gr" key
-	KEYCODE_COMPOSE     = 314,      // Multi-key compose key
-
-	// Miscellaneous function keys 
-	KEYCODE_HELP        = 315,
-	KEYCODE_PRINT       = 316,
-	KEYCODE_SYSREQ      = 317,
-	KEYCODE_BREAK       = 318,
-	KEYCODE_MENU        = 319,
-	KEYCODE_POWER       = 320,      // Power Macintosh power key
-	KEYCODE_EURO        = 321,      // Some european keyboards
-	KEYCODE_UNDO        = 322       // Atari keyboard has Undo
-};
-
 /**
- * List of certan special and some fake 'ascii' values used in keyboard events.
- * The values for the function keys listed here are based on what certain SCUMM
- * games expect in their scripts.
- * @todo Get rid of the function key values, and instead enforce that engines use
- * the keycode value to handle these.
- */
-enum {
-	ASCII_BACKSPACE     = 8,
-	ASCII_TAB           = 9,
-	ASCII_RETURN        = 13,
-	ASCII_ESCAPE        = 27,
-	ASCII_SPACE         = 32,
-
-	ASCII_F1            = 315,
-	ASCII_F2            = 316,
-	ASCII_F3            = 317,
-	ASCII_F4            = 318,
-	ASCII_F5            = 319,
-	ASCII_F6            = 320,
-	ASCII_F7            = 321,
-	ASCII_F8            = 322,
-	ASCII_F9            = 323,
-	ASCII_F10           = 324,
-	ASCII_F11           = 325,
-	ASCII_F12           = 326
-};
-
-/**
- * Keyboard modifier flags, used for Event::kbd::flags.
- */
-enum {
-	KBD_CTRL  = 1 << 0,
-	KBD_ALT   = 1 << 1,
-	KBD_SHIFT = 1 << 2
-};
-
-/**
- * Keyboard status, as used in the Event struct.
- */
-struct KeyState {
-	/**
-	 * Abstract key code (will be the same for any given key regardless
-	 * of modifiers being held at the same time.
-	 * For example, this is the same for both 'A' and Shift-'A'.
-	 * @todo Document which values are to be used for non-ASCII keys
-	 * like F1-F10. For now, let's just say that our primary backend
-	 * is the SDL one, and it uses the values SDL uses... so until
-	 * we fix this, your best bet is to get a copy of SDL_keysym.h
-	 * and look at that, if you want to find out a key code.
-	 */
-	KeyCode keycode;
-	/**
-	 * ASCII-value of the pressed key (if any).
-	 * This depends on modifiers, i.e. pressing the 'A' key results in
-	 * different values here depending on the status of shift, alt and
-	 * caps lock.
-	 */
-	uint16 ascii;
-	/**
-	 * Status of the modifier keys. Bits are set in this for each
-	 * pressed modifier
-	 * @see KBD_CTRL, KBD_ALT, KBD_SHIFT
-	 */
-	byte flags;
-	
-	KeyState() { reset(); }
-	void reset() {
-		keycode = KEYCODE_INVALID;
-		ascii = flags = 0;
-	}
-};
-
-/**
  * Data structure for an event. A pointer to an instance of Event
  * can be passed to pollEvent.
  * @todo Rework/document this structure. It should be made 100% clear which

Copied: scummvm/trunk/common/keyboard.h (from rev 27634, scummvm/trunk/common/events.h)
===================================================================
--- scummvm/trunk/common/keyboard.h	                        (rev 0)
+++ scummvm/trunk/common/keyboard.h	2007-06-22 23:20:50 UTC (rev 27640)
@@ -0,0 +1,259 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef COMMON_KEYBOARD_H
+#define COMMON_KEYBOARD_H
+
+#include "common/scummsys.h"
+
+namespace Common {
+
+enum KeyCode {
+	KEYCODE_INVALID     = 0,
+
+	KEYCODE_BACKSPACE   = 8,
+	KEYCODE_TAB         = 9,
+	KEYCODE_CLEAR       = 12,
+	KEYCODE_RETURN      = 13,
+	KEYCODE_PAUSE       = 19,
+	KEYCODE_ESCAPE      = 27,
+	KEYCODE_SPACE       = 32,
+	KEYCODE_EXCLAIM     = 33,
+	KEYCODE_QUOTEDBL    = 34,
+	KEYCODE_HASH        = 35,
+	KEYCODE_DOLLAR      = 36,
+	KEYCODE_AMPERSAND   = 38,
+	KEYCODE_QUOTE       = 39,
+	KEYCODE_LEFTPAREN   = 40,
+	KEYCODE_RIGHTPAREN  = 41,
+	KEYCODE_ASTERISK    = 42,
+	KEYCODE_PLUS        = 43,
+	KEYCODE_COMMA       = 44,
+	KEYCODE_MINUS       = 45,
+	KEYCODE_PERIOD      = 46,
+	KEYCODE_SLASH       = 47,
+	KEYCODE_0           = 48,
+	KEYCODE_1           = 49,
+	KEYCODE_2           = 50,
+	KEYCODE_3           = 51,
+	KEYCODE_4           = 52,
+	KEYCODE_5           = 53,
+	KEYCODE_6           = 54,
+	KEYCODE_7           = 55,
+	KEYCODE_8           = 56,
+	KEYCODE_9           = 57,
+	KEYCODE_COLON       = 58,
+	KEYCODE_SEMICOLON   = 59,
+	KEYCODE_LESS        = 60,
+	KEYCODE_EQUALS      = 61,
+	KEYCODE_GREATER     = 62,
+	KEYCODE_QUESTION    = 63,
+	KEYCODE_AT          = 64,
+
+	KEYCODE_LEFTBRACKET = 91,
+	KEYCODE_BACKSLASH   = 92,
+	KEYCODE_RIGHTBRACKET= 93,
+	KEYCODE_CARET       = 94,
+	KEYCODE_UNDERSCORE  = 95,
+	KEYCODE_BACKQUOTE   = 96,
+	KEYCODE_a           = 97,
+	KEYCODE_b           = 98,
+	KEYCODE_c           = 99,
+	KEYCODE_d           = 100,
+	KEYCODE_e           = 101,
+	KEYCODE_f           = 102,
+	KEYCODE_g           = 103,
+	KEYCODE_h           = 104,
+	KEYCODE_i           = 105,
+	KEYCODE_j           = 106,
+	KEYCODE_k           = 107,
+	KEYCODE_l           = 108,
+	KEYCODE_m           = 109,
+	KEYCODE_n           = 110,
+	KEYCODE_o           = 111,
+	KEYCODE_p           = 112,
+	KEYCODE_q           = 113,
+	KEYCODE_r           = 114,
+	KEYCODE_s           = 115,
+	KEYCODE_t           = 116,
+	KEYCODE_u           = 117,
+	KEYCODE_v           = 118,
+	KEYCODE_w           = 119,
+	KEYCODE_x           = 120,
+	KEYCODE_y           = 121,
+	KEYCODE_z           = 122,
+	KEYCODE_DELETE      = 127,
+
+	// Numeric keypad
+	KEYCODE_KP0         = 256,
+	KEYCODE_KP1         = 257,
+	KEYCODE_KP2         = 258,
+	KEYCODE_KP3         = 259,
+	KEYCODE_KP4         = 260,
+	KEYCODE_KP5         = 261,
+	KEYCODE_KP6         = 262,
+	KEYCODE_KP7         = 263,
+	KEYCODE_KP8         = 264,
+	KEYCODE_KP9         = 265,
+	KEYCODE_KP_PERIOD   = 266,
+	KEYCODE_KP_DIVIDE   = 267,
+	KEYCODE_KP_MULTIPLY = 268,
+	KEYCODE_KP_MINUS    = 269,
+	KEYCODE_KP_PLUS     = 270,
+	KEYCODE_KP_ENTER    = 271,
+	KEYCODE_KP_EQUALS   = 272,
+
+	// Arrows + Home/End pad
+	KEYCODE_UP          = 273,
+	KEYCODE_DOWN        = 274,
+	KEYCODE_RIGHT       = 275,
+	KEYCODE_LEFT        = 276,
+	KEYCODE_INSERT      = 277,
+	KEYCODE_HOME        = 278,
+	KEYCODE_END         = 279,
+	KEYCODE_PAGEUP      = 280,
+	KEYCODE_PAGEDOWN    = 281,
+
+	// Function keys
+	KEYCODE_F1          = 282,
+	KEYCODE_F2          = 283,
+	KEYCODE_F3          = 284,
+	KEYCODE_F4          = 285,
+	KEYCODE_F5          = 286,
+	KEYCODE_F6          = 287,
+	KEYCODE_F7          = 288,
+	KEYCODE_F8          = 289,
+	KEYCODE_F9          = 290,
+	KEYCODE_F10         = 291,
+	KEYCODE_F11         = 292,
+	KEYCODE_F12         = 293,
+	KEYCODE_F13         = 294,
+	KEYCODE_F14         = 295,
+	KEYCODE_F15         = 296,
+
+	// Key state modifier keys
+	KEYCODE_NUMLOCK     = 300,
+	KEYCODE_CAPSLOCK    = 301,
+	KEYCODE_SCROLLOCK   = 302,
+	KEYCODE_RSHIFT      = 303,
+	KEYCODE_LSHIFT      = 304,
+	KEYCODE_RCTRL       = 305,
+	KEYCODE_LCTRL       = 306,
+	KEYCODE_RALT        = 307,
+	KEYCODE_LALT        = 308,
+	KEYCODE_RMETA       = 309,
+	KEYCODE_LMETA       = 310,
+	KEYCODE_LSUPER      = 311,      // Left "Windows" key
+	KEYCODE_RSUPER      = 312,      // Right "Windows" key
+	KEYCODE_MODE        = 313,      // "Alt Gr" key
+	KEYCODE_COMPOSE     = 314,      // Multi-key compose key
+
+	// Miscellaneous function keys 
+	KEYCODE_HELP        = 315,
+	KEYCODE_PRINT       = 316,
+	KEYCODE_SYSREQ      = 317,
+	KEYCODE_BREAK       = 318,
+	KEYCODE_MENU        = 319,
+	KEYCODE_POWER       = 320,      // Power Macintosh power key
+	KEYCODE_EURO        = 321,      // Some european keyboards
+	KEYCODE_UNDO        = 322       // Atari keyboard has Undo
+};
+
+/**
+ * List of certan special and some fake 'ascii' values used in keyboard events.
+ * The values for the function keys listed here are based on what certain SCUMM
+ * games expect in their scripts.
+ * @todo Get rid of the function key values, and instead enforce that engines use
+ * the keycode value to handle these.
+ */
+enum {
+	ASCII_BACKSPACE     = 8,
+	ASCII_TAB           = 9,
+	ASCII_RETURN        = 13,
+	ASCII_ESCAPE        = 27,
+	ASCII_SPACE         = 32,
+
+	ASCII_F1            = 315,
+	ASCII_F2            = 316,
+	ASCII_F3            = 317,
+	ASCII_F4            = 318,
+	ASCII_F5            = 319,
+	ASCII_F6            = 320,
+	ASCII_F7            = 321,
+	ASCII_F8            = 322,
+	ASCII_F9            = 323,
+	ASCII_F10           = 324,
+	ASCII_F11           = 325,
+	ASCII_F12           = 326
+};
+
+/**
+ * Keyboard modifier flags, used for Event::kbd::flags.
+ */
+enum {
+	KBD_CTRL  = 1 << 0,
+	KBD_ALT   = 1 << 1,
+	KBD_SHIFT = 1 << 2
+};
+
+/**
+ * Keyboard status, as used in the Event struct.
+ */
+struct KeyState {
+	/**
+	 * Abstract key code (will be the same for any given key regardless
+	 * of modifiers being held at the same time.
+	 * For example, this is the same for both 'A' and Shift-'A'.
+	 * @todo Document which values are to be used for non-ASCII keys
+	 * like F1-F10. For now, let's just say that our primary backend
+	 * is the SDL one, and it uses the values SDL uses... so until
+	 * we fix this, your best bet is to get a copy of SDL_keysym.h
+	 * and look at that, if you want to find out a key code.
+	 */
+	KeyCode keycode;
+	/**
+	 * ASCII-value of the pressed key (if any).
+	 * This depends on modifiers, i.e. pressing the 'A' key results in
+	 * different values here depending on the status of shift, alt and
+	 * caps lock.
+	 */
+	uint16 ascii;
+	/**
+	 * Status of the modifier keys. Bits are set in this for each
+	 * pressed modifier
+	 * @see KBD_CTRL, KBD_ALT, KBD_SHIFT
+	 */
+	byte flags;
+	
+	KeyState() { reset(); }
+	void reset() {
+		keycode = KEYCODE_INVALID;
+		ascii = flags = 0;
+	}
+};
+
+} // End of namespace Common
+
+#endif


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