Gestion de la souris
Préambule
La lecture des coordonnées de la souris peut se faire de trois manières.
Ici, les explications porteront sur l'utilisation des fonctions du VDI, AES ou du line-A.
Position de la souris, état des boutons
Pour connaître la position de la souris ainsi que l'état des boutons, vous utiliserez la fonction VDI n° 124
En sortie, vous obtiendrez les positions de la souris en x dans ptsout, en y dans ptsout+2
L'état des boutons sera reçu dans intout: 0 pas de bouton, 1 pour le bouton gauche, 2 pour le bouton droit, 3 pour les deux (1 + 2).
Montrer/Cacher le curseur de la souris
Il existe trois façons de cacher ou d'afficher le curseur de la souris:
- Soit les fonctions VDI ou du Line-A. Ces deux fonctions utilisent éventuellement un compteur où l'opération pour cacher ou montrer le curseur dépendra de la valeur de ce compteur à 0, l'opération sera effectuée, sinon aucun changement de l'état du curseur.
Pour cacher la souris, vous utiliserez la fonction 123 du vdi ou $A00A du line-A
Pour la montrer, vous utiliserez la fonction 122 du vdi ou $A009 du line-A
- Soit la fonction AES n°78 qui sert normalement à changer la forme du curseur
En passant la valeur 256 dans INTIN(0) pour cacher le curseur alors que la valeur 257 affichera le curseur.
Pour l'exemple, voir plus bas...
Utiliser une forme pré-définie du curseur
Il y a 8 formes pré-définies pour le curseur de la souris:
Vous utiliserez la fonction AES n°78 en mettant dans INTIN(0) la valeur du curseur que vous voulez voir afficher.
Définir sa propre forme du curseur
Là, vous utiliserez la fonction 111 du VDI. Il faut définir la forme (pas de mélande de couleurs possible, votre image sera forcément monochrome), mais aussi son masque. Le masque ne devra pas être de la même couleur que l'image du curseur ! Car il va permettre de faire apparaître le contour du curseur si celui-ci passe sur un fond de la même couleur que celui du curseur.
Exemple
Voici un exemple en assembleur illustrant comment cacher/montrer le curseur et utiliser une forme pré-définie ou personnalisée:
Et les includes
qui initialisent la TPA et l'AES/VDI
Les fonctions pour cacher/montrer la souris se nomment:
souroff/souron pour les fonctions VDI,
sourofflinea/souronlinea pour les fonctions du line-A
La fonction formepre permettant de cacher/montrer la souris via l'AES ou de changer la forme du curseur avec une forme pré-définie.