Revision: 13
http://svn.sourceforge.net/ljsdcdev/?rev=13&view=rev
Author: ljsebald
Date: 2006-09-22 17:49:20 -0700 (Fri, 22 Sep 2006)
Log Message:
-----------
Adding in a new function to translate the characters in a KeyDown/KeyUp event to their capital forms, if the shift modifier is in effect.
Modified Paths:
--------------
CrabClaw/include/CrabClaw/Event.h
CrabClaw/src/input/Event.cc
Modified: CrabClaw/include/CrabClaw/Event.h
===================================================================
--- CrabClaw/include/CrabClaw/Event.h 2006-09-08 03:33:52 UTC (rev 12)
+++ CrabClaw/include/CrabClaw/Event.h 2006-09-23 00:49:20 UTC (rev 13)
@@ -160,6 +160,8 @@
*/
void PushEvent(Event &event)
throw(std::bad_alloc);
+
+ char TranslateKey(Event &event);
}
#endif
Modified: CrabClaw/src/input/Event.cc
===================================================================
--- CrabClaw/src/input/Event.cc 2006-09-08 03:33:52 UTC (rev 12)
+++ CrabClaw/src/input/Event.cc 2006-09-23 00:49:20 UTC (rev 13)
@@ -74,4 +74,84 @@
event_queue_tail->m_next = NULL;
}
}
+
+ char TranslateKey(Event &event) {
+ if(event.type != KeyDown && event.type != KeyUp) {
+ return 0;
+ }
+ else if(!(event.param3 & modifierShift) || event.param2 > 0x80) {
+ return event.param2;
+ }
+ else if(event.param2 > 0x60 && event.param2 < 0x7E) {
+ return (char) (event.param2 - 0x20);
+ }
+ else {
+ switch(event.param2) {
+ case '1':
+ return '!';
+
+ case '2':
+ return '@';
+
+ case '3':
+ return '#';
+
+ case '4':
+ return '$';
+
+ case '5':
+ return '%';
+
+ case '6':
+ return '^';
+
+ case '7':
+ return '&';
+
+ case '8':
+ return '*';
+
+ case '9':
+ return '(';
+
+ case '0':
+ return ')';
+
+ case '-':
+ return '_';
+
+ case '=':
+ return '+';
+
+ case '`':
+ return '~';
+
+ case '[':
+ return '{';
+
+ case ']':
+ return '}';
+
+ case '\\':
+ return '|';
+
+ case ';':
+ return ':';
+
+ case '\'':
+ return '"';
+
+ case ',':
+ return '<';
+
+ case '.':
+ return '>';
+
+ case '/':
+ return '?';
+ }
+ }
+
+ return event.param2;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|