La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Programmation événementielle. Logiciel traditionnel, sans interface utilisateur { Lire les entrées d’un fichier Effectuer des calculs Écrire les sorties.

Présentations similaires


Présentation au sujet: "Programmation événementielle. Logiciel traditionnel, sans interface utilisateur { Lire les entrées d’un fichier Effectuer des calculs Écrire les sorties."— Transcription de la présentation:

1 Programmation événementielle

2 Logiciel traditionnel, sans interface utilisateur { Lire les entrées d’un fichier Effectuer des calculs Écrire les sorties dans un fichier }

3 … avec interface utilisateur minimale { Lire les entrées du clavier Effectuer des calculs Écrire les sorties sur l’écran }

4 … dans une boucle Répéter { Afficher l’invite de commandes Lire la commande Exécuter la commande Écrire les sorties sur l’écran }

5 Logiciel événementiel (« event-driven program») Répéter { Attendre un événement Traiter l’événement }

6 Logiciel événementiel pour une interface graphique Afficher l’interface (fenêtre(s), etc.) Répéter { Attendre un événement d’entrée e switch(e.type) { case KEY_PRESS:... case MOUSE_BUTTON:... case MOUSE_MOTION:... } Si nécessaire, mettre à jour l’affichage } Boucle d’événements

7 Logiciel traditionnel: Le logiciel « a le contrôle ». Le logiciel peut prendre le temps nécessaire pour traiter les entrées. L’utilisateur doit attendre. Les entrées sont limitées aux chaînes de caractères. Logiciel graphique interactif: L’utilisateur doit (avoir l’impression de) « avoir le contrôle ». Le logiciel doit traiter chaque événement assez rapidement pour répondre en temps réel. L’utilisateur peut générer différents événements à tout moment.

8 Structure, ou classe, d’événement Event { unsigned long int timestamp; int type; // KEY_PRESS, MOUSE_... int x, y; int key; boolean flag...... }

9 Sortes d’événements (1) KEY_DOWN ou …_PRESS (touche appuyée), KEY_UP ou …_RELEASE (touche relâchée), KEY_TYPED (synonyme pour DOWN + UP) – Attributs: temps, caractère ASCII (‘a’, ‘b’, ‘c’, …), touche de clavier (F1, F2, PageUp, Esc, …), s’il s’agit d’une auto-répétition ou non, coordonnées (x, y) de la souris, état des touches de modification (Ctrl, Shift, etc.)

10 Sortes d’événements (2) MOUSE_DOWN ou …_PRESS (bouton appuyé), MOUSE_UP ou …_RELEASE (bouton relâché), MOUSE_CLICK (synonyme pour DOWN + UP) MOUSE_DOUBLE_CLICK, MOUSE_MOTION ou …_MOVEMENT (mouvement), MOUSE_DRAG (glissement) – Attributs: temps, bouton (1-5) (gauche, droit, milieu, …), coordonnées (x, y), état de tous les boutons (utile pour les combinaisons), état des touches de modification (Ctrl, Shift, etc.) – Taux d’échantillonnage de la position dépend habituellement de la charge CPU

11 Autres sortes d’événements?

12

13 Sortes d’événements (3) RESIZE (redimensionnement), MAXIMIZE, MINIMIZE – Attributs: temps, nouvelles dimensions (width, height) WINDOW_CLOSE – Permet au logiciel de sauvegarder ses données, faire le ménage, etc.

14 Autres sortes d’événements?

15 Sortes d’événements (4) MOUSE_ENTER (souris entre dans la fenêtre), MOUSE_LEAVE ou …_EXIT (souris sort de la fenêtre) – Attributs: semblable à ceux des autres événements de souris REDRAW ou EXPOSE ou PAINT (demande de redessiner) – Peut être généré par un redimensionnement, un mouvement d’une autre fenêtre, ou par une demande du client même – Attributs: rectangle(s) à redessiner (x, y, width, height), c.-à-d. les rectangles endommagés (« damaged »)

16 Rectangles endommagés

17 Référence Cette présentation est une partie de la présentation complète de Michael Mcguffin sur la programmation événementielle que l’on peut trouver à cet endroit: http://profs.etsmtl.ca/mmcguffin/diapos/ETS-mcguffin- evenementielle.ppt http://profs.etsmtl.ca/mmcguffin/diapos/ETS-mcguffin- evenementielle.ppt


Télécharger ppt "Programmation événementielle. Logiciel traditionnel, sans interface utilisateur { Lire les entrées d’un fichier Effectuer des calculs Écrire les sorties."

Présentations similaires


Annonces Google