Gestion des clics souris

Sous GEM il est très simple de gérer l'attente de clic bouton droit, bouton gauche ou des deux boutons à la fois. Il n'a cependant pas été prévue d'attendre un clic bouton droit OU un clic bouton gauche.

Cependant, chez Atari, on a toujours eu l'habitude de laisser trainer des bugs un peu partout et il y en a un qui va nous servir. (ne craignez rien, il a été découvert mais conservé car il était bien utile, on peut donc utiliser ce "bug" dans toutes les versions de l'AES, y compris sous Magic).

Fonction concernée

Ce bug se trouve être lié à la fonction evnt_multi.

Ce sont les paramètres 2, 3 et 4 de cette fonction - respectivement "ev_mbclicks", "ev_mbmask" et "ev_mbstate" qui sont concernés par cette "bidouille" officielle.

Valeurs possibles

ev_mbclicks = nombre maximum de clics atendus

ev_mbmask = touche attendue (1 - gauche, 2 - droite, 3 - les deux, 0 - aucune)

ev_mbstate = état de la souris pour déclenchement de l'événement (0 - bouton relâché, 1 - bouton enfoncé).

Clic gauche OU clic droit

Pour obtenir ce type d'événement, il faut :

- ajouter 256 à ev_mbclicks (si 2 clics maximums, on obtient 258)

- positionner ev_mbmask à 3 (attente clic des deux boutons)

- positionner ev_mbstate à 0

on obtient :

evnt_multi (masque d'événement dont MU_BUTTON, 258, 3, 0, ...)

Voilà, maintenant vous pouvez cliquer avec le bouton droit, le bouton gauche ou les deux... comme vous le souhaitez.

Conclusion

Si mes explications vous paraissent peu claires, sachez tout de même que cette solution marche très bien. St-magazine a d'ailleurs publié un article à ce sujet il y a un certain temps...

Philippe Castella