Documentation de la bibliothèque MLV-3.1.0

medium/02_mouse_events.c

Ce programme montre comment il est possible de récupérer des informations provenant de l'utilisateur lorsqu'il utilise sa souris sans bloquer l'exécution du programme.

Pour cela il utilise le système d'évènements de la bibliothèque MLV :

À chaque fois qu'un utilisateur déplace la sourris, appuie sur les touches d'un clavier, ou entre du texte dans une boîte de saisie, un événèment est créé par la bibliothèque MLV. Cet évènement est placé dans une file d'attente. Il est possible de récupérer toutes les informations concernant ces évènements en appelant la fonction MLV_get_event(). Cette fonction supprime le dernier évènement de la pile, l'analyse et renvoie, à l'aide de ses paramètres et de sa valeur de retour, toutes les informations le concernant.

#include <MLV/MLV_all.h>
#include <stdio.h>
//
// Cette fonction affiche sur la fenêtre, le nombre de fois que la souris a été
// déplacé et la position du curseur de la souris.
//
void affichage( int nb, int x, int y, int width, int height ){
MLV_draw_text( 10, 10, "Cliquez pour quitter !", MLV_COLOR_GREEN );
10, 40,
"Nombre de fois que la souris a bougé : %i",
);
x, y,
"(%d,%d)",
x, y
);
}
//
// 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[]){
int width = 640, height = 460;
int nb= 0 ;
int x = 0, y = 0;
MLV_Event event;
//
// Créé et affiche une fenêtre
//
"medium - 2 - mouse events", "mouse events", width, height
);
//
// Affichage de la consigne, de la position de la souris et du nombre de
// fois que la souris a été déplacée
//
affichage( nb, x, y, width, height );
//
// Tant que l'utilisateur n'a pas cliqué sur la souris, on compte le
// nombre de fois que l'utilisateur a déplacé la souris.
//
do {
//
// Récupère un évènement dans la file des évènements
// non traités.
//
event = MLV_get_event(
NULL, NULL, NULL,
NULL, NULL,
&x, &y, NULL,
NULL
);
//
// Traite l'évènement s'il s'agit d'un évènement concernant
// le déplacement de la souris.
//
if( event == MLV_MOUSE_MOTION ){
//
// Compte le nombre de fois que la souris a été déplacée.
//
nb ++;
//
// Affichage de la consigne, de la position de la souris
// et du nombre fois que la souris a été déplacée
//
affichage( nb, x, y, width, height );
};
} while( event != MLV_MOUSE_BUTTON );
//
// Ferme la fenêtre
//
return 0;
}
/*
* This file is part of the MLV Library.
*
* Copyright (C) 2010,2011,2012,2013 Adrien Boussicault, Marc Zipstein
*
*
* This Library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this Library. If not, see <http://www.gnu.org/licenses/>.
*/
MLV_create_window
void MLV_create_window(const char *window_name, const char *icone_name, unsigned int width, unsigned int height)
Créé une fenêtre dont la taille, et les différents noms sont passés en paramètres.
MLV_MOUSE_MOTION
@ MLV_MOUSE_MOTION
Definition: MLV_event.h:52
MLV_Event
MLV_Event
Énumère les différents types d'évènement de la bibliothèque MLV.
Definition: MLV_event.h:46
MLV_get_event
MLV_Event MLV_get_event(MLV_Keyboard_button *key_sym, MLV_Keyboard_modifier *key_mod, int *unicode, char **texte, MLV_Input_box **input_box, int *mouse_x, int *mouse_y, MLV_Mouse_button *mouse_button, MLV_Button_state *state)
Cette fonction récupère un évènement dans la file d'attente, remplit en fonction de l'évènement récup...
MLV_free_window
void MLV_free_window()
Ferme la fenêtre de la bibliothèque MLV.
MLV_update_window
void MLV_update_window()
Met à jour l'affichage de la fenêtre.
MLV_draw_text
void MLV_draw_text(int x, int y, const char *text, MLV_Color color,...)
Imprime un texte donné à une position et une couleur données.
MLV_COLOR_GREEN
#define MLV_COLOR_GREEN
Definition: MLV_color.h:931
MLV_all.h
Fichier d'entête principal incluant tous les autres fichiers entêtes de la bibliothèque MLV.
MLV_clear_window
void MLV_clear_window(MLV_Color color)
Éfface la fenêtre et la remplace par un monochrome de la couleur donnée en paramètre.
MLV_MOUSE_BUTTON
@ MLV_MOUSE_BUTTON
Definition: MLV_event.h:51
MLV_COLOR_BLACK
#define MLV_COLOR_BLACK
Definition: MLV_color.h:379