# Documentation de la bibliothèque MLV-0.6.705

- Presentation
- Téléchargement
- Installation
- Compilation
- Exemples
- API
- Liste des fonctions
- bogues
- contacts

# beginner/08_mouse_keyboard_timer.c

Ce programme montre comment il est possible d'ajouter un minuteur lorsque l'utilisateur est invité à cliquer ou appuyer sur une touche du clavier

    #include <MLV/MLV_all.h>

    //
    // Cette fonction réinitialise l'acran puis affiche un texte donnée en
    // parametre à l'écran.
    //
    void afficher_texte( char* texte, int width, int height ){
            int size_interline = 9;
            MLV_draw_filled_rectangle( 0, 0, width, height, MLV_COLOR_BLACK );
            MLV_draw_adapted_text_box (
                    10, 10, texte, size_interline,
                    MLV_COLOR_BLACK, MLV_COLOR_GREEN, MLV_COLOR_BLACK,
            MLV_TEXT_LEFT
            );
            MLV_actualise_window();
    }

    //
    // Attention !
    // Pour pouvoir compiler ce programme sous windows et sous macintosh,
    // il faut, pour la déclaration du main, respecter strictement la syntaxe
    // suivante :
    //
    int main( int argc, char *argv[] ){

            MLV_Keyboard_button sym;
            MLV_Keyboard_modifier mod;
            int unicode, mouse_x, mouse_y;
            int temps_attente = 5;

            // taille de l'écran
            int width = 640, height = 480;

            //
            // Créé et affiche la fenêtre
            //
            MLV_create_window(
                    "beginner - 8 - mouse keyboard timer", "mouse keyboard timer",
                    width, height
            );

            //
            // Tant que le temps imparti n'est pas écoulé, l'utilisateur est invité à
            // appuyer sur une touche du clavier
            //
            afficher_texte(
                    "Vous passerez à l'écran suivant en:\n    - appuyant sur une touche du clavier\n    - attendant quelques secondes.",
                    width, height
            );
            MLV_wait_keyboard_or_seconds( &sym, &mod, &unicode, temps_attente );

            //
            // Tant que le temps imparti n'est pas écoulé, l'utilisateur est invité à
            // cliquer sur le bouton gauche de la souris
            //
            afficher_texte(
                    "Vous passerez à l'écran suivant en:\n    - cliquant sur la souris\n    - attendant quelques secondes.",
                    width, height
            );
            MLV_wait_mouse_or_seconds( &mouse_x, &mouse_y, temps_attente );

            //
            // L'utilisateur est invité à appuyer sur une touche du clavier ou à
        // cliquer sur le bouton gauche de la souris.
            //
            afficher_texte(
                    "Vous passerez à l'écran suivant en:\n    - appuyant sur une touche du clavier\n    - cliquant sur la souris.",
                    width, height
            );
            MLV_wait_keyboard_or_mouse( &sym, &mod, &unicode, &mouse_x, &mouse_y );

            //
            // Tant que le temps impart n'est pas écoulé, l'utilisateur est invité à
        // appuyer sur une touche du clavier ou à cliquer sur le bouton gauche de
            // la souris.
            //
            afficher_texte(
                    "Vous passerez à l'écran suivant en:\n    - appuyant sur une touche du clavier\n    - cliquant sur la souris\n    - attendant quelques secondes.",
                    width, height
            );
            MLV_wait_keyboard_or_mouse_or_seconds(
                    &sym, &mod, &unicode, &mouse_x, &mouse_y, temps_attente
            );

            //
            // Ferme la fenêtre
            //
            MLV_free_window();

            return 0;
    }