Anyone else interested in this being in loki_utils or SDL?
typedef void (SdlKeyEnumFunc)( SDLKey, char, void* );
#define SDL_KEY_ENUM_ALL 0x00
#define SDL_KEY_ENUM_FORMAT 0x01
#define SDL_KEY_ENUM_ASCII 0x02
#define SDL_KEY_ENUM_WORLD 0x04
#define SDL_KEY_ENUM_KEYPAD 0x08
#define SDL_KEY_ENUM_ARROWS 0x10
#define SDL_KEY_ENUM_FUNCTION 0x20
#define SDL_KEY_ENUM_STATE 0x40
#define SDL_KEY_ENUM_MISC 0x80
/*
-
Le Abstraction Violation.
/
void sdl_EnumerateKeys( SdlKeyEnumFunc func, int mask, void data )
{if( !( mask & SDL_KEY_ENUM_FORMAT ) ) {
/* Goofy scattered keys. */
func( SDLK_BACKSPACE, SDL_GetKeyName( SDLK_BACKSPACE ), data );
func( SDLK_TAB, SDL_GetKeyName( SDLK_TAB ), data );
func( SDLK_CLEAR, SDL_GetKeyName( SDLK_CLEAR ), data );
func( SDLK_RETURN, SDL_GetKeyName( SDLK_RETURN ), data );
func( SDLK_PAUSE, SDL_GetKeyName( SDLK_PAUSE ), data );
func( SDLK_ESCAPE, SDL_GetKeyName( SDLK_ESCAPE ), data );
}if( !( mask & SDL_KEY_ENUM_ASCII ) ) {
for( SDLKey index = SDLK_SPACE; index <= SDLK_AT; ( (int) index
)++ ) {if( (int) index != 37 ) { func( index, SDL_GetKeyName( index ), data ); } } for( SDLKey index = SDLK_LEFTBRACKET; index <= SDLK_z;
( (int) index )++ ) {
func( index, SDL_GetKeyName( index ), data );
}
func( SDLK_DELETE, SDL_GetKeyName( SDLK_DELETE ), data );
}
if( !( mask & SDL_KEY_ENUM_WORLD ) ) {
for( SDLKey index = SDLK_WORLD_0; index <= SDLK_WORLD_95; ( (int)
index )++ ) {
func( index, SDL_GetKeyName( index ), data );
}
}
if( !( mask & SDL_KEY_ENUM_KEYPAD ) ) {
for( SDLKey index = SDLK_KP0; index <= SDLK_KP_EQUALS; ( (int)
index )++ ) {
func( index, SDL_GetKeyName( index ), data );
}
}
if( !( mask & SDL_KEY_ENUM_ARROWS ) ) {
for( SDLKey index = SDLK_F1; index <= SDLK_F15; ( (int) index )++
) {
func( index, SDL_GetKeyName( index ), data );
}
}
if( !( mask & SDL_KEY_ENUM_STATE ) ) {
for( SDLKey index = SDLK_NUMLOCK; index <= SDLK_MODE; ( (int)
index )++ ) {
func( index, SDL_GetKeyName( index ), data );
}
}
if( !( mask & SDL_KEY_ENUM_MISC ) ) {
for( SDLKey index = SDLK_HELP; index <= SDLK_EURO; ( (int) index
)++ ) {
func( index, SDL_GetKeyName( index ), data );
}
}
}
m.–
Programmer "I wrote a song about dental floss,
Loki Entertainment Software but did anyone’s teeth get cleaner?"
http://lokigames.com/~briareos/ - Frank Zappa, re: the PMRC