70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**
 | |
|  *
 | |
|  * @file    event.hpp
 | |
|  * @author  Alexandre Sollier
 | |
|  * @date    Décembre 2019
 | |
|  * @version 1.0
 | |
|  * @brief   Différents types utile pour le gestionnaire d'événements
 | |
|  *
 | |
|  **/
 | |
| 
 | |
| #ifndef EVENT_HPP
 | |
| #define EVENT_HPP
 | |
| 
 | |
| /**
 | |
|  * @namespace nsEvent
 | |
|  * @brief Espace de nom pour la gestion d'événements
 | |
|  */
 | |
| namespace nsEvent {
 | |
| 
 | |
| /**
 | |
|  * @brief EventType_t : Liste de tout les types d'événements
 | |
|  */
 | |
| enum EventType_t {
 | |
|     MouseClick, /**< L'utilisateur a cliqué sur un des boutons de la souris */
 | |
|     MouseMove /**< Le curseur s'est déplacé */,
 | |
|     MouseDrag, /**< Le curseur s'est déplacé pendant qu'un des boutons de la souris était pressé */
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * @struct MouseClickData_t
 | |
|  * @brief Possède des données pour un événement MouseClick
 | |
|  */
 | |
| struct MouseClickData_t {
 | |
|     int button; /**< ID numérique du bouton */
 | |
|     int state; /**< Nouvel état du bouton */
 | |
|     int x; /**< Coordonnée X du curseur, relative au coin supérieur-gauche de la fenêtre */
 | |
|     int y; /**< Coordonnée Y du curseur, relative au coin supérieur-gauche de la fenêtre */
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * @struct MouseMoveData_t
 | |
|  * @brief Possède des données pour un événement MouseMove/MouseDrag
 | |
|  */
 | |
| struct MouseMoveData_t {
 | |
|     int x; /**< Coordonnée X du curseur, relative au coin supérieur-gauche de la fenêtre */
 | |
|     int y; /**< Coordonnée Y du curseur, relative au coin supérieur-gauche de la fenêtre */
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * @union EventData_t
 | |
|  * @brief Union contenant les données d'un événement
 | |
|  */
 | |
| union EventData_t {
 | |
|     MouseClickData_t clickData; /**< Données pour un événement MouseClick */
 | |
|     MouseMoveData_t moveData; /**< Données pour un événment MouseMove/MouseDrag */
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * @struct Event_t
 | |
|  * @brief Possède des données pour un événement
 | |
|  */
 | |
| struct Event_t {
 | |
|     EventType_t eventType; /**< Type de l'événement */
 | |
|     EventData_t eventData; /**< Données de l'événement */
 | |
| };
 | |
| 
 | |
| } // namespace nsEvent
 | |
| 
 | |
| #endif // EVENT_HPP
 |