Documentation de la bibliothèque MLV-0.5

Énumérations | Fonctions

Référence du fichier MLV_event.h

Ce fichier définit les prototypes des fonctions permettant d'utiliser les èvenements dans la librairie MLV. Plus de détails...

Aller au code source de ce fichier.

Énumérations

enum  MLV_Event {
  MLV_NONE = 0, MLV_KEY = 1, MLV_PROMPT = 2, MLV_MOUSE_BUTTON = 3,
  MLV_MOUSE_MOTION = 4
}
 

Enumère les différents types d'évènement de la librairie MLV.

Plus de détails...
enum  MLV_State { MLV_PRESSED, MLV_RELEASED }
 

Enumère les différents états possibles d'un bouton clavier ou souris.

Plus de détails...

Fonctions

MLV_Event MLV_get_event (int *key_sym, int *key_mod, int *unicode, char **texte, MLV_Prompt **prompt, int *mouse_x, int *mouse_y, int *mouse_button, int *state)
 Cette fonction récupère un évènement dans la file d'attente, remplit en fonction de l'évènement récupéré une partie des paramètres de la fonction et renvoie un entier codant le type de l'évènement qui a été récupéré.
MLV_Event MLV_wait_event (int *key_sym, int *key_mod, int *unicode, char **texte, MLV_Prompt **prompt, int *mouse_x, int *mouse_y, int *mouse_button, int *state)
 Cette fonction suspends l'éxecution du programme jusqu'à ce qu'un évènement apparaît dans la file d'attente. Dans ce cas, la fonction s'endort de nouveau si les paramètre passé en argument ne concerne pas l'évènement récupéré. Par contre, si les paramètres passés en argument est en relation avec l'évènement récupéré, alors la fonction remplit les paramètres et renvoie un entier codant le type de l'évènement qui a été récupéré.
MLV_Event MLV_wait_event_or_seconds (int *key_sym, int *key_mod, int *unicode, char **texte, MLV_Prompt **prompt, int *mouse_x, int *mouse_y, int *mouse_button, int *state, int seconds)
 Cette fonction suspends l'éxecution du programme jusqu'à ce qu'un évènement apparaît dans la file d'attente ou jusq'à ce qu'un certain nombre de secondes se soient écoulées. Dans ce cas, la fonction s'endort de nouveau si les paramètre passé en argument ne concerne pas l'évènement récupéré. Par contre, si les paramètres passés en argument est en relation avec l'évènement récupéré, alors la fonction remplit les paramètres et renvoie un entier codant le type de l'évènement qui a été récupéré.
void MLV_flush_event_queue ()
 Cette fonction vide la file d'évènements.
MLV_Event MLV_wait_keyboard_or_mouse (int *sym, int *mod, int *unicode, int *mouse_x, int *mouse_y)
 Suspend l'exécution jusqu'à ce que l'utilisateur appuie sur une touche du clavier ou sur le bouton gauche de la souris.
MLV_Event MLV_wait_keyboard_or_mouse_or_seconds (int *sym, int *mod, int *unicode, int *mouse_x, int *mouse_y, int seconds)
 Suspend l'exécution jusqu'à ce que l'utilisateur appuie sur une touche du clavier, sur le bouton gauche de la souris ou qu'un certain nombre de secondes passéesn en paramètres se soient écoulées.
const char * MLV_convert_event_to_string (MLV_Event event_code)
 Convertit le code d'un évenement en une chaîne de caractère.
MLV_Event MLV_convert_string_to_event (const char *event_string)
 Convertit le nom d'un évènement en son code associé.
const char * MLV_convert_state_to_string (MLV_State state_code)
 Convertit le code d'un état en une chaîne de caractère.
MLV_State MLV_convert_string_to_state (const char *state_string)
 Convertit le nom d'un état en son code associé.

Description détaillée

Ce fichier définit les prototypes des fonctions permettant d'utiliser les èvenements dans la librairie MLV.

Auteur:
Adrien Boussicault
Marc Zipstein

Documentation du type de l'énumération

enum MLV_Event

Enumère les différents types d'évènement de la librairie MLV.

Valeurs énumérées:
MLV_NONE 

Aucun évènement

MLV_KEY 

Evnènement provenant du clavier 

MLV_PROMPT 

Evènement provenant de la validation d'un texte dans un prompt

MLV_MOUSE_BUTTON 

Evenement provenant d'un clique de souris.

MLV_MOUSE_MOTION 

Evènement provenant du déplacement de la souris.

enum MLV_State

Enumère les différents états possibles d'un bouton clavier ou souris.

Valeurs énumérées:
MLV_PRESSED 

Le bouton est appuyé

MLV_RELEASED 

Le bouton est relaché


Documentation des fonctions

const char* MLV_convert_event_to_string ( MLV_Event  event_code  ) 

Convertit le code d'un évenement en une chaîne de caractère.

Paramètres:
event_code le code de l'évenement
Renvoie:
La chaîne de caractère associé au code de l'évènement.
const char* MLV_convert_state_to_string ( MLV_State  state_code  ) 

Convertit le code d'un état en une chaîne de caractère.

Paramètres:
state_code le code de l'état
Renvoie:
La chaîne de caractère associé au code de l'état.
MLV_Event MLV_convert_string_to_event ( const char *  event_string  ) 

Convertit le nom d'un évènement en son code associé.

Paramètres:
event_string le nom de l'évènement.
Renvoie:
Le code de l'évènement associé à la chaîne de caractère.
MLV_State MLV_convert_string_to_state ( const char *  state_string  ) 

Convertit le nom d'un état en son code associé.

Paramètres:
state_string le nom de l'état.
Renvoie:
Le code de l'état associé à la chaîne de caractère.
MLV_Event MLV_get_event ( int *  key_sym,
int *  key_mod,
int *  unicode,
char **  texte,
MLV_Prompt **  prompt,
int *  mouse_x,
int *  mouse_y,
int *  mouse_button,
int *  state 
)

Cette fonction récupère un évènement dans la file d'attente, remplit en fonction de l'évènement récupéré une partie des paramètres de la fonction et renvoie un entier codant le type de l'évènement qui a été récupéré.

Le type des évènements est défini par :

MLV_Event

et peut valoir les valeurs suivantes:

Valeur ........... Signification

----------------------------------

MLV_NONE .......... Aucun évènement récupéré

MLV_KEY ........... Une touche du clavier a été appuyée ou relachée.

MLV_PROMPT ........ L'utilisateur a écrit une chaîne de caractère et validé cette chaîne par la touche entrée.

MLV_MOUSE_BUTTON .. Un des boutons de la souris a été appuyé.

MLV_MOUS_MOTION ... La souris a été déplacée.

Voici un tableau qui donne les champs modifiés en fonction de l'évènement qui a été récupéré.

Type Evenement .... Paramètres modifiés

---------------------------------------

MLV_NONE .......... AUCUN

MLV_KEY ........... key_sym, key_mod, state

MLV_PROMPT ........ texte, prompt

MLV_MOUSE_BUTTON .. mouse_x, mouse_y, mouse_button, state

MLV_MOUSE_MOTION .. mouse_x, mouse_y

L'utilisateur n'est pas obligé d'utiliser un champs s'il n'en a pas l'utilité. Dans ce cas, il peut mettre la valeur NULL. Le champs est alors ignoré.

Bogue:
Il est possible que la recuperation du caractere unicode sous windows ne fonctionne pas. En effet, aucun code de portage spécifique n'a été fait à ce sujet.
Bogue:
Les evenement utilisant les touches speciale key_mod, ne fonctionnent pas correctement sous debian et fedora, alors que tout focntionne correctement sous Ubuntu.
Paramètres:
key_sym Code de la touche qui a été appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard.
key_mod Mode dans lequel se trouve le clavier lorsqu'une touche est appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard_mod.
unicode Caractère codé en unicode de la lettre obtenue en combinant le code et le mode précédent
texte Texte récupéré par le prompt. L'allocation est affecté par la la fonction elle même. La désallocation est à la charge de l'utilisateur.
prompt Prompt qui a récupéré le texte
mouse_x Coordonnée en X de la position de la souris
mouse_y Coordonnée en Y de la position de la souris
mouse_button Bouton de la souris qui a été appuyé ou relaché. Ce champs est défini par l'énumération MLV_Button.
state Etat de la touche concernée par l'évènement. La valeur de ce champs est défini par l'énumération: MLV_State.
Exemples:
advanced/11_animation_book.c, advanced/9_animation.c, medium/1_keyboard_events.c, medium/2_mouse_events.c, medium/3_prompt_events.c, medium/4_events.c, et medium/6_colors.c.
MLV_Event MLV_wait_event ( int *  key_sym,
int *  key_mod,
int *  unicode,
char **  texte,
MLV_Prompt **  prompt,
int *  mouse_x,
int *  mouse_y,
int *  mouse_button,
int *  state 
)

Cette fonction suspends l'éxecution du programme jusqu'à ce qu'un évènement apparaît dans la file d'attente. Dans ce cas, la fonction s'endort de nouveau si les paramètre passé en argument ne concerne pas l'évènement récupéré. Par contre, si les paramètres passés en argument est en relation avec l'évènement récupéré, alors la fonction remplit les paramètres et renvoie un entier codant le type de l'évènement qui a été récupéré.

Le type des évènements est défini par :

MLV_Event

et peut valoir les valeurs suivantes:

Valeur ........... Signification

----------------------------------

MLV_NONE .......... Aucun évènement récupéré

MLV_KEY ........... Une touche du clavier a été appuyée ou relachée.

MLV_PROMPT ........ L'utilisateur a écrit une chaîne de caractère et validé cette chaîne par la touche entrée.

MLV_MOUSE_BUTTON .. Un des boutons de la souris a été appuyé.

MLV_MOUS_MOTION ... La souris a été déplacée.

Voici un tableau qui donne les champs modifiés en fonction de l'évènement qui a été récupéré.

Type Evenement .... Paramètres modifiés

---------------------------------------

MLV_NONE .......... AUCUN

MLV_KEY ........... key_sym, key_mod, state

MLV_PROMPT ........ texte, prompt

MLV_MOUSE_BUTTON .. mouse_x, mouse_y, mouse_button, state

MLV_MOUSE_MOTION .. mouse_x, mouse_y

L'utilisateur n'est pas obligé d'utiliser un champs s'il n'en a pas l'utilité. Dans ce cas, il peut mettre la valeur NULL. Le champs est alors ignoré.

Paramètres:
key_sym Code de la touche qui a été appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard.
key_mod Mode dans lequel se trouve le clavier lorsqu'une touche est appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard_mod.
unicode Caractère codé en unicode de la lettre obtenue en combinant le code et le mode précédent
texte Texte récupéré par le prompt. L'allocation est affecté par la la fonction elle même. La désallocation est à la charge de l'utilisateur.
prompt Prompt qui a récupéré le texte
mouse_x Coordonnée en X de la position de la souris
mouse_y Coordonnée en Y de la position de la souris
mouse_button Bouton de la souris qui a été appuyé ou relaché. Ce champs est défini par l'énumération MLV_Button.
state Etat de la touche concernée par l'évènement. La valeur de ce champs est défini par l'énumération: MLV_State.
MLV_Event MLV_wait_event_or_seconds ( int *  key_sym,
int *  key_mod,
int *  unicode,
char **  texte,
MLV_Prompt **  prompt,
int *  mouse_x,
int *  mouse_y,
int *  mouse_button,
int *  state,
int  seconds 
)

Cette fonction suspends l'éxecution du programme jusqu'à ce qu'un évènement apparaît dans la file d'attente ou jusq'à ce qu'un certain nombre de secondes se soient écoulées. Dans ce cas, la fonction s'endort de nouveau si les paramètre passé en argument ne concerne pas l'évènement récupéré. Par contre, si les paramètres passés en argument est en relation avec l'évènement récupéré, alors la fonction remplit les paramètres et renvoie un entier codant le type de l'évènement qui a été récupéré.

Le type des évènements est défini par :

MLV_Event

et peut valoir les valeurs suivantes:

Valeur ........... Signification

----------------------------------

MLV_NONE .......... Aucun évènement récupéré

MLV_KEY ........... Une touche du clavier a été appuyée ou relachée.

MLV_PROMPT ........ L'utilisateur a écrit une chaîne de caractère et validé cette chaîne par la touche entrée.

MLV_MOUSE_BUTTON .. Un des boutons de la souris a été appuyé.

MLV_MOUS_MOTION ... La souris a été déplacée.

Voici un tableau qui donne les champs modifiés en fonction de l'évènement qui a été récupéré.

Type Evenement .... Paramètres modifiés

---------------------------------------

MLV_NONE .......... AUCUN

MLV_KEY ........... key_sym, key_mod, state

MLV_PROMPT ........ texte, prompt

MLV_MOUSE_BUTTON .. mouse_x, mouse_y, mouse_button, state

MLV_MOUSE_MOTION .. mouse_x, mouse_y

L'utilisateur n'est pas obligé d'utiliser un champs s'il n'en a pas l'utilité. Dans ce cas, il peut mettre la valeur NULL. Le champs est alors ignoré.

Paramètres:
key_sym Code de la touche qui a été appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard.
key_mod Mode dans lequel se trouve le clavier lorsqu'une touche est appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard_mod.
unicode Caractère codé en unicode de la lettre obtenue en combinant le code et le mode précédent
texte Texte récupéré par le prompt. L'allocation est affecté par la la fonction elle même. La désallocation est à la charge de l'utilisateur.
prompt Prompt qui a récupéré le texte
mouse_x Coordonnée en X de la position de la souris
mouse_y Coordonnée en Y de la position de la souris
mouse_button Bouton de la souris qui a été appuyé ou relaché. Ce champs est défini par l'énumération MLV_Button.
state Etat de la touche concernée par l'évènement. La valeur de ce champs est défini par l'énumération: MLV_State.
seconds Nombre de secondes à attendre avant de terminer l'execution de la fonction en renvoyant MLV_NONE.
MLV_Event MLV_wait_keyboard_or_mouse ( int *  sym,
int *  mod,
int *  unicode,
int *  mouse_x,
int *  mouse_y 
)

Suspend l'exécution jusqu'à ce que l'utilisateur appuie sur une touche du clavier ou sur le bouton gauche de la souris.

Cette fonction renvoie un entier codant le type de l'évènement qui a été récupéré ( clavier ou souris )

Lorsque l'utilisateur appuie sur une touche, la fonction retourne trois valeurs ( sym, mod et unicode ) correspondant respectivement au code de la touche, au mode dans lequel se trouve le clavier (majuscule etc ...) et au caractère unicode correspondnant obtenu en combinant le mode du clavier et le code de la touche appuyée.

Lorsque l'utilisateur appuie sur le bouton gauche de la souris, la fonction remplit les parametres correspondant aux coordonnées en X et Y de la position de la souris sur l'écran.

Paramètres:
sym Code de la touche qui a été appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard.
mod Mode dans lequel se trouve le clavier lorsqu'une touche est appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard_mod.
unicode Caractère codé en unicode de la lettre obtenue en combinant le code et le mode précédent
mouse_x Coordonnée en X de la position de la souris
mouse_y Coordonnée en Y de la position de la souris
Renvoie:
un entier codant le type de l'évènement qui a été récupéré ( MLV_KEY ou MLV_MOUSE_BUTTON )
Exemples:
advanced/8_zone_click.c, et beginner/8_mouse_keyboard_timer.c.
MLV_Event MLV_wait_keyboard_or_mouse_or_seconds ( int *  sym,
int *  mod,
int *  unicode,
int *  mouse_x,
int *  mouse_y,
int  seconds 
)

Suspend l'exécution jusqu'à ce que l'utilisateur appuie sur une touche du clavier, sur le bouton gauche de la souris ou qu'un certain nombre de secondes passéesn en paramètres se soient écoulées.

Cette fonction renvoie un entier codant le type de l'évènement qui a été récupéré ( clavier ou souris )

Lorsque l'utilisateur appuie sur une touche, la fonction retourne trois valeurs ( sym, mod et unicode ) correspondant respectivement au code de la touche, au mode dans lequel se trouve le clavier (majuscule etc ...) et au caractère unicode correspondnant obtenu en combinant le mode du clavier et le code de la touche appuyée.

Lorsque l'utilisateur appuie sur le bouton gauche de la souris, la fonction remplit les parametres correspondant aux coordonnées en X et Y de la position de la souris sur l'écran.

Paramètres:
sym Code de la touche qui a été appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard.
mod Mode dans lequel se trouve le clavier lorsqu'une touche est appuyée ou relachée. La valeur de ce champs est définie par l'énumération : MLV_Keyboard_mod.
unicode Caractère codé en unicode de la lettre obtenue en combinant le code et le mode précédent
mouse_x Coordonnée en X de la position de la souris
mouse_y Coordonnée en Y de la position de la souris
seconds Le nombre de seconde à attendre avant d'arrêter la fonction
Renvoie:
un entier codant le type de l'évènement qui a été récupéré ( MLV_KEY ou MLV_MOUSE_BUTTON ), ou MLV_NONE si le temps s'est écoulé.
Exemples:
beginner/8_mouse_keyboard_timer.c.