aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorMax Horn2007-06-22 21:32:49 +0000
committerMax Horn2007-06-22 21:32:49 +0000
commit753eee6d0c25b5b3767c4ab7e7a95488753423a7 (patch)
treea7fc3e9db3277c71a244b9d88c0f526813970cd6 /common
parent2fa0a5c457e0aea4edffb49aa80a04a59b6e9994 (diff)
downloadscummvm-rg350-753eee6d0c25b5b3767c4ab7e7a95488753423a7.tar.gz
scummvm-rg350-753eee6d0c25b5b3767c4ab7e7a95488753423a7.tar.bz2
scummvm-rg350-753eee6d0c25b5b3767c4ab7e7a95488753423a7.zip
Promoted the struct inside Common::Event which captures the keystate to a full-blown independent struct named KeyState (makes it easier for engines to capture the full keystate, instead of only the keycode or only the ascii/unicode value)
svn-id: r27626
Diffstat (limited to 'common')
-rw-r--r--common/events.h57
1 files changed, 31 insertions, 26 deletions
diff --git a/common/events.h b/common/events.h
index 6eb26046ce..92a2bda647 100644
--- a/common/events.h
+++ b/common/events.h
@@ -256,6 +256,36 @@ enum {
};
/**
+ * 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;
+};
+
+/**
* 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
@@ -294,32 +324,7 @@ struct Event {
* Keyboard data; only valid for keyboard events (EVENT_KEYDOWN and
* EVENT_KEYUP). For all other event types, content is undefined.
*/
- struct {
- /**
- * 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;
- } kbd;
+ KeyState kbd;
/**
* The mouse coordinates, in virtual screen coordinates. Only valid
* for mouse events.