From: <ljs...@us...> - 2006-09-23 00:49:25
|
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. |