3. Programmation événementielle
Bien entendu, une application est beaucoup plus qu'un assemblage de composants
graphiques sans interactivité, sinon ce ne serait qu'une "nature morte" ! Selon les
actions effectuées par l'utilisateur, il faudra exécuter certains traitements qui peuvent
influer sur les composants affichés. On parle de programmation événementielle pour
ce type d'application (event-driven programming). Typiquement, un programme
classique de type séquentiel lit des données en entrée, exécute un traitement, produit
des données résultats et s'arrête. À l'inverse, une application de type interface
utilisateur, après initialisation, se met en attente et réagit aux événements qui se
présentent. On parle de boucle d'événements pour désigner la boucle principale qui
réceptionne les événements et les dirige vers les fonctions de traitement adéquates.
Quels sont ces événements ? En fait, il y en a beaucoup : clics et déplacements de la
souris, enfoncement/relâchement d'une touche au clavier, etc. Outre ces événements liés
aux actions de l'utilisateur, d'autres sont d'ordre programmatique : fin d'une tâche,
réception d'un message, échéance d'un certain intervalle de temps, etc. C'est par leur
biais que l'affichage peut se mettre à jour, même lorsque l'utilisateur ne fait rien : par
exemple, une barre d'avancement qui évolue, une petite enveloppe qui apparaît
lorsqu'un nouvel e-mail est arrivé ou même une balle qui rebondit dans un jeu.
La Figure 4.3 illustre le principe de la programmation événementielle : la boucle
d'événements vérifie si de nouveaux événements sont apparus ; le cas échéant, elle
appelle la fonction de traitement correspondante.
Figure 4.3 : Programmation événementielle
60
Bien entendu, une application est beaucoup plus qu'un assemblage de composants
graphiques sans interactivité, sinon ce ne serait qu'une "nature morte" ! Selon les
actions effectuées par l'utilisateur, il faudra exécuter certains traitements qui peuvent
influer sur les composants affichés. On parle de programmation événementielle pour
ce type d'application (event-driven programming). Typiquement, un programme
classique de type séquentiel lit des données en entrée, exécute un traitement, produit
des données résultats et s'arrête. À l'inverse, une application de type interface
utilisateur, après initialisation, se met en attente et réagit aux événements qui se
présentent. On parle de boucle d'événements pour désigner la boucle principale qui
réceptionne les événements et les dirige vers les fonctions de traitement adéquates.
Quels sont ces événements ? En fait, il y en a beaucoup : clics et déplacements de la
souris, enfoncement/relâchement d'une touche au clavier, etc. Outre ces événements liés
aux actions de l'utilisateur, d'autres sont d'ordre programmatique : fin d'une tâche,
réception d'un message, échéance d'un certain intervalle de temps, etc. C'est par leur
biais que l'affichage peut se mettre à jour, même lorsque l'utilisateur ne fait rien : par
exemple, une barre d'avancement qui évolue, une petite enveloppe qui apparaît
lorsqu'un nouvel e-mail est arrivé ou même une balle qui rebondit dans un jeu.
La Figure 4.3 illustre le principe de la programmation événementielle : la boucle
d'événements vérifie si de nouveaux événements sont apparus ; le cas échéant, elle
appelle la fonction de traitement correspondante.
Figure 4.3 : Programmation événementielle
60
