Ardu? No!PxGraphRéférenceMTobjectsGestion des zones cliquables ≫ MTpushZone

MTpushZone,
zone poussoir

Bibliothèque graphique pour shield Uno/Mega

Un objet MTpushZone est l'équivalent d'un bouton poussoir sur une zone de touchpad.

Cet object n'appartient pas à la bibliothèque PxGraph, mais est un objet de la bibliothèque MTobjects à cause de la gestion par interruption. Mais il n'a d'intérêt qu'avec une bibliothèque graphique comme celle-ci. C'est pourquoi il est décrit dans ces pages et les exemples intéressants utilisent aussi PxGraph.

Include à rajouter

#include <MTobjects.h> // Voir http://arduino.dansetrad.fr/MTobjects

Je conseille fortement de laisser le commentaire, si une autre personne voulait essayer le programme, elle aurait directement un lien de téléchargement. C'est valable pour toutes les bibliothèques que vous utilisez.

Commentaires utiles

x_mini
y_mini
x_maxi
y_maxi

Ces commentaires sont des mots que l'on peut rajouter n'importe où et qui sont ignorés par le compilateur.

Constructeur

MTpushZone(x_mini int xMini, y_mini int yMini, x_maxi int xMaxi, y_maxi int yMaxi, // Coordonnée de la zone à cliquer
      void (*drawFunction)(boolean, x_mini int, y_mini int, x_maxi int, y_maxi int) = PAS_D_ACTION, // Pour se dessiner 
      void (*onSelectFunction)(void) = PAS_D_ACTION, // Si on appuie sur la zone
      void (*onUnselectFunction)(void) = PAS_D_ACTION); // Si n'appuie pas sur la zone

Fonctions utiles

boolean isTouch(void);
void draw(void);

isTouch: renvoie true si un stylet est appuyé sur la zone
draw: dessine la zone

Fonctions bonus

setDrawFunction(void (*drawFunction)(boolean, x_mini int, y_mini int, x_maxi int, y_maxi int) = PAS_D_ACTION);
void setOnSelectFunction(void (*onSelectFunction)(void) = PAS_D_ACTION);
void setOnUnselectFunction(void (*onUnselectFunction)(void) = PAS_D_ACTION);;

setDrawFunction: change la fonction appelée si on veut dessiner la zone
setDrawFunction: sans paramètres supprime la fonction appelée pour dessiner la zone
setOnSelectFunction: change la fonction appelée lors d'un appui dans la zone
setOnSelectFunction: sans paramètres supprime la fonction appelée lors d'un appui dans la zone
setOnUnselectFunction: change la fonction appelée lors de la sortie de la zone ou du soulèvement du stylet
setOnUnselectFunction: sans paramètres supprime la fonction appelée lors de la sortie de la zone ou du soulèvement du stylet

Initialisation

On peut déclarer l'objet en tout début de programme. A ce moment-là, la bibliothèque graphique n'est pas encore en place et il n'est pas possible de dessiner l'objet. La fonction setGraphMode() prend environ 180ms, il faut qu'elle soit terminée avant le dessin de la MTpushZone. Pour cela, il faut assez tôt initialiser l'écran en mettant plutôt setGraphMode() en début de setup(). Le dessin d'initialisation des MTpushZone est retardé d'environ 250ms. Si l'initialisation intervient trop tard, il faudra appeler la fonction MTpushZone.draw() manuellement.

Exemples