SDL_KeyboardEvent
Nom
SDL_KeyboardEvent -- Structure pour les évènements clavier
Définition de la Structure
typedef struct{
Uint8 type;
Uint8 state;
SDL_keysym keysym;
} SDL_KeyboardEvent;
Structure Data
type |
SDL_KEYDOWN or SDL_KEYUP |
state |
SDL_PRESSED ou SDL_RELEASED |
keysym |
Contient les informations de la touche pressée dans la structure SDL_keysym |
Description
SDL_KeyboardEvent fait partie de l'union SDL_Event et est utilisé quand un évènement du type SDL_KEYDOWN ou SDL_KEYUP arrive.
type et state contiennent en fait la même info (touche pressée ou relachée), mais ils utilisent différentes constantes pour le faire. Un SDL_KeyboardEvent arrive généralement quand une touche est relachée (type=SDL_KEYUP ou state=SDL_RELEASED) ou quand une touche est pressée (type=SDL_KEYDOWN ou state=SDL_PRESSED). Les renseignements sur la touche pressée ou relachée sont dans la structure keysym de SDL_KeyboardEvent.
Les touches SDL_CAPSLOCK et SDL_NUMLOCK keys sont spéciales et envoient un SDL_KEYDOWN quand pressées pour la première fois, puis un SDL_RELEASED quand relachées puis pressées de nouveau. Pour ces touches, les évènements KEYUP et KEYDOWN sont ainsi analogues à l'état de de leur DELs (lumières sur le clavier) plutot qu'à leur position (pressée/relachée). Ces exceptions sont requises pour une compatibilité avec les station Sun, mais peuvent êtres modifiée pour la plupart des utilisateurs grace à des ajustements vers les lignes 403 et 449 de src/events/SDL_keyboard.c. Une manière plus simple pour savoir leur état est d'utiliser SDL_GetModState ou SDL_GetKeyState.
Note: Des évènements SDL_KEYDOWN vont se répéter si la touche reste pressée et le key repeat activé (voir SDL_EnableKeyRepeat).
Voir aussi
SDL_Event, SDL_keysym, SDL_EnableKeyRepeat, SDL_EnableUNICODE
