SDL_keysym

Langue: en

Version: 122044 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

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