Événement
Informations des événements gérés par le système d'exploitation.
Structure
Union de structures permettant de contenir les informations d’événement :
typedef union SDL_Event;
Scrutation
Pour scruter les informations de l'événement suivant :
bool SDL_PollEvent(SDL_Event* event);
Le booléen retourné par cette fonction indique s’il reste des événements à traiter.
Informations
Cette union de structures est très vaste puisqu'elle permet de représenter toutes les informations de tous les événements possibles.
type
Le type d’événement peut être l’un des suivants :
| Type | Description |
|---|---|
| SDL_EVENT_FIRST | Délimiteur. |
| SDL_EVENT_QUIT | Fermeture d’application. |
| SDL_EVENT_WINDOW_RESIZED | Fenêtre redimensionnée. |
| SDL_EVENT_WINDOW_CLOSE_REQUESTED | Fermeture de fenêtre demandée. |
| SDL_EVENT_KEY_DOWN | Touche enfoncée. |
| SDL_EVENT_KEY_UP | Touche relâchée. |
| SDL_EVENT_TEXT_INPUT | Saisie au clavier. |
| SDL_EVENT_MOUSE_MOTION | Mouvement de souris. |
| SDL_EVENT_MOUSE_BUTTON_DOWN | Bouton de souris enfoncé. |
| SDL_EVENT_MOUSE_BUTTON_UP | Bouton de souris relâché. |
| SDL_EVENT_MOUSE_WHEEL | Molette de souris. |
| SDL_EVENT_USER | Événement personnalisé. |
| ... | ... |
| SDL_EVENT_LAST | Délimiteur. |
window
Fenêtre de laquelle provient l'événement :
| Information | Description |
|---|---|
| windowID | Identifiant de la fenêtre. |
| data1 | Première donnée relative au type d'événement. |
| data2 | Deuxième donnée relative au type d'événement. |
motion
Informations relatives au mouvement de la souris :
| Information | Description |
|---|---|
| x | Position sur l'axe des x. |
| xrel | Mouvement relatif à l'axe des x. |
| y | Position sur l'axe des y. |
| yrel | Mouvement relatif à l'axe des y. |
button
Informations relatives aux boutons de la souris :
| Information | Description |
|---|---|
| button | Bouton enfoncé. |
| clicks | Nombre de fois enfoncé de suite. |
| ... | ... |
button
Le bouton peut être l'un des suivants :
| Bouton | Description |
|---|---|
| SDL_BUTTON_LEFT | Bouton de gauche. |
| SDL_BUTTON_MIDDLE | Bouton de la molette. |
| SDL_BUTTON_RIGHT | Bouton de droite. |
| SDL_BUTTON_X1 | Premier bouton du côté. |
| SDL_BUTTON_X2 | Deuxième bouton du côté. |
| ... | ... |
key
Informations relatives aux touches du clavier :
| Information | Description |
|---|---|
| scancode | Positions physiques des touches. |
| key | Représentations des touches. |
| ... | ... |
Représentation
La représentation des touches est selon la disposition et la langue actives du clavier. La donnée membre key contient donc le ou les caractères que représente la touche qui a été enfoncée ou relâchée.
Des constantes sont aussi disponibles pour la représentation de chacune des touches :
| Constante | Touche |
|---|---|
| SDLK_BACKSPACE | Retour en arrière. |
| SDLK_RETURN | Entrée. |
| SDLK_ESCAPE | Échappement. |
| ... | ... |
Personnalisé
Le type SDL_EVENT_USER permet de spécifier qu'il s'agit d'un événement personnalisé :
SDL_Event userEvent;
userEvent.type = SDL_EVENT_USER;
userEvent.window.windowID = 1;
Un code permettra d'identifier un événement personnalisé :
userEvent.user.code = 42;
Et celui-ci peut être déclenché en l'ajoutant à la file d'événements :
SDL_PushEvent(&userEvent);