COPYRIGHT
Ce module est fourni sans copyright. Il peut être copié, et distribué et utilisé librement pour la programmation, à condition :
   - de ne pas en faire un usage commercial
   - de laisser ce fichier intact

DESCRIPTION DU MODULE
Ce module est compilé pour OCaml. Il contient une déclaration de type, « evenement », muni de trois constructeurs (« Clic_rectangle » avec pour argument un quadruplet d'entiers, « Clic_cercle » avec comme argument un triplet d'entiers et « Touche » avec comme argument un caractère) et 34 fonctions.

DESCRIPTION DES FONCTIONS
- Les fonctions plot2, plots2, point_color2, moveto2, current2_y, current2_point, lineto2, draw_rect2, draw_poly_line2, draw_poly2, draw_segments2, draw_arc2, draw_ellipse2, draw_circle2, fill_rect2, fill_poly2, fill_arc2, fill_circle2, fill_ellipse2, draw_image2, get_image2 et mouse_pos2 ont le même type que les fonctions du module Graphics et dont le nom est le même avec le « 2 » en moins. Elle ont également le même effet, sauf que les ordonnées des points sont données en partant du haut et non du bas comme avec les fonctions du module Graphics. Cependant pour les fonctions draw_rect2, fill_rect2, draw_image2 et get_image2, le point dont l'utilisateur donne les coordonnées est toujours celui en bas à gauche de la zone rectangulaire à considérer.
- La fonction wait_next_event2 est du même type que la fonction wait_next_event du module Graphics. Elle fonctionne de manière identique, sauf que dans le résultat (de type status), l'ordonnée du point est également considérée en partant du haut.
- La fonction attend_clic est de type unit -> unit et interrompt l'exécution du programme jusqu'à ce que l'utilisateur clique dans la fenêtre graphique.
- La fonction attend_touche est de type unit -> unit et interrompt l'exécution du programme jusqu'à ce que l'utilisateur appuie sur une touche quelconque du clavier.
- La fonction attend_clic_ou_touche est de type unit -> unit et interrompt l'exécution du programme jusqu'à ce que l'utilisateur clique dans la fenêtre graphique ou appuie sur une touche quelconque du clavier.
- La fonction attend est de type float -> unit et interrompt l'exécution du programme pendant la durée indiquée (en secondes).
- La fonction attend_evenement est de type evenement list -> evenement. Elle interrompt l'exécution du programme jusqu'à ce que l'utilisateur effectue un évènement parmi les possibilités données dans la liste : la syntaxe « Clic_rectangle (a,b,m,n) » correspond à un clic dans la zone rectangulaire d'angle en bas à gauche de coordonnées (a,b), de largeur m et de hauteur n, la syntaxe « Clic_circle (a,b,r) » correspond à un clic dans la zone circulaire de centre (a,b) et de rayon r et la syntaxe « Touche x » correspond à une pression de la touche x du clavier. Le résultat retourné par la fonction est l'évènement qui a été réalisé.
- La fonction attend_evenement2 est de même type. Elle fonctionne de même manière sauf que dans les syntaxes « Clic_rectangle (a,b,m,n) » et « Clic_circle (a,b,r) », l'ordonnée du point est comptée à partir du haut de la fenêtre.
- La fonction get_image_transp_choix est de type Graphics.color -> int -> int -> int -> int -> Graphics.image. Elle fonctionne comme la fonction get_image du module Graphics sauf que dans l'image obtenue, tous les pixels dont la couleur était celle donnée par l'utilisateur sont devenus transparents.
- La fonction get_image_transp_choix2 est de même type que la précédente et fonctionne identiquement sauf que l'ordonnée du point situé en bas à gauche de la zone à capturer doit être comptée en partant du haut de la fenêtre.
- La fonction get_image_transp est de même type que la fonction get_image du module Graphics et fonctionne de même sauf que tous les pixels blancs de l'image sont devenus transparents. Autrement dit, l'appel « get_image_transp a b c d » est équivalent à « get_image_transp_choix white a b c d ».
- De même, la fonction get_image_transp2 est de même type et l'appel « get_image_transp2 a b c d » est équivalent à « get_image_transp_choix2 white a b c d ».
- La fonction open_graph2 est de type int -> int -> int -> int -> unit. L'appel « open_graph2 sx sy dx dy » ouvre une fenêtre graphique de largeur sx, de hauteur sy et dont l'angle supérieur gauche est situé à dx pixels vers la droite et dy pixels vers le bas par rapport à l'angle de l'écran de l'utilisateur. La différence avec la fonction open_graph du module Graphics est que lorsque vous donnez une largeur et une hauteur à open_graph, elles seront valables pour toute la fenêtre, y compris ses bords et la barre de titre. Dans la fonction open_graph2, la largeur et la hauteur s'appliquent à la zone réelle dont vous disposez pour dessiner.

PRECAUTIONS D'EMPLOI
- Pour toutes les fonctions qui généralisent les fonction du module Graphics avec changement d'ordonnée (c'est-à-dire toutes les fonctions sauf attend, attend_clic, attend_touche, attend_clic_ou_touche, attend_evenement, attend_evenement2 et open_graph2), les effets secondaires éventuels et les précautions sont identiques à ceux de la fonction correspondante du module Graphics. Pour les fonctions attend, attend_clic, attend_touche, attend_clic_ou_touche, attend_evenement, attend_evenement2 et open_graph2, aucun effet secondaire n'est connu.
- CE MODULE UTILISE DES FONCTIONS DU MODULE GRAPHIQUE FOURNI AVEC OCAML.

(c) Le coin des amatheurs d'info, 2007. La dernière version de ce module est sur info.amatheurs.fr