[SDL] OS independent SDL_keysym.scancode
sb at biallas.net
Tue Aug 17 14:14:24 PDT 2004
I have a question concerning SDL_KeyEvent. I thought this is a fairly
frequently asked question, but I found nothing about this problem in
Let's suppose I want to program a game where the keys that are covered
with the '[' and ']' characters on an american keyboard should have a
certain meaning. Now, I can either interpret the scancode field of
SDL_keysym struct, but this would make my program platform dependent (I
would have to "#ifdef __WIN32__" etc.). Or I can use the sym field,
which provide platform independent keys, but this makes my program
dependent on the selected "locale" of the user, i.e. a german user would
have to press AltGr+'8' or AltGr+'9' for the '[' and ']' keys
respectively. Of course the later option is completely useless if the
AltGr key had also a certain meaning.
The situation gets even worse when I want to assign meta-keys or dead
keys (e.g. on my current keyboard layout the spacebar is a modifier
key). Here I can only fallback to the scancode solution.
It's not that the keyssyms are really bad, they are ok for text
input-lines etc, where the user expects his current locale, but useless
for "raw" keyboard accesses.
So, am I missing something, or am I really forced to use the platform
dependent solution for such things at the moment?
More information about the SDL