SDL_keysym(3)
NAME
SDL_keysym - Keysym structure
STRUCTURE DEFINITION
- typedef struct{
- Uint8 scancode;
SDLKey sym;
SDLMod mod;
Uint16 unicode; - } SDL_keysym;
STRUCTURE DATA
scancode Hardware specific scancode
sym SDL virtual keysym
mod Current key modifiers
unicode Translated character
DESCRIPTION
The SDL_keysym structure is used by reporting key presses and releases since it is a part of the SDL_KeyboardEvent.
The scancode field should generally be left alone, it is the hardware
dependent scancode returned by the keyboard. The sym field is extremely
useful. It is the SDL-defined value of the key (see SDL Key Syms. This
field is very useful when you are checking for certain key presses,
like so:
- .
.
while(SDL_PollEvent(&event)){ - switch(event.type){
case SDL_KEYDOWN:if(event.key.keysym.sym==SDLK_LEFT)move_left();break;.
.
. - }
- }
.
.
mod stores the current state of the keyboard modifiers as explained in- SDL_GetModState. The unicode is only used when UNICODE translation is enabled with SDL_EnableUNICODE. If unicode is non-zero then this a the UNICODE character corresponding to the keypress. If the high 9 bits of the character are 0, then this maps to the equivalent ASCII character:
- char ch;
if ( (keysym.unicode & 0xFF80) == 0 ) { - ch = keysym.unicode & 0x7F;
- }
else { - printf("An International Character.
- ");
}
UNICODE translation does have a slight overhead so don't enable it- unless its needed.
SEE ALSO
- SDLKey