• Sam Lantinga's avatar
    Date: Thu, 05 Jul 2007 14:02:33 -0700 · f0da180b
    Sam Lantinga authored
    From: Sam Lantinga
    Subject: SDL 1.3 keyboard plan
    
    After lots of discussion with Christian, this is what we came up with:
    
    > So, to sum up...
    > SDLK_* become the physical keys, starting at > (1<<21)
    > We create a macro SDLK_INDEX(X)
    > We have two functions SDL_GetLayoutKey(SDLKey) and SDL_GetKeyName()
    > SDL_GetLayoutKey maps to UCS4 for printable characters, and SDLK* for
      non-printable characters
    > and does so based on the OS's current keyboard layout
    > SDL_GetKeyName() handles both SDLK_* and UCS4, converting UCS4 to UTF-8 and
      converting SDLK_* into our names, which are UTF-8 for printable characters.
    > WASD folks use SDLK_*, and 'I' folks use SDL_GetLayoutKey(SDLK_*)
    
    Here is the patch he came up with, and his e-mail about it:
    
    Date: Fri, 17 Aug 2007 19:50:28 +0200
    From: Christian Walther
    Subject: Re: SDL 1.3 keyboard plan
    
    > Sounds great, go ahead and send me a patch.
    
    Here goes! Thanks for having a look. Don't hesitate to comment if
    anything does not conform to your ideas.
    
    One caveat: Committing this now may break compilability of some video
    drivers - specifically, if they use any of the SDLK_* codes that were
    obsoleted and moved into SDL_compat.h. I only tried Cocoa (which did
    break, but is already fixed) and X11 (which didn't, but then its key
    handling is #iffed out). If that's a problem, it may need to go into
    a branch.
    
      -Christian
    
    --HG--
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402630
    f0da180b
SDL_compat.h 10.5 KB