PushZone

Définition Utilisation Exemple Côté technique
 

PushXXXX sont des classes de boutons poussoirs, genre bouton de sonnette. Lorsque l'on appuie dessus "le courant passe" et "s'arrête" si on relâche. Pour cette bibliothèque, lorsqu'on appie dessus un événement onSelect est généré et il devient actif. Lorsque l'on relâche l'appui, ou si l'appui sort de la zone d'action, un évènement onUnselect est généré et le bouton devient inactif. Bon nombre d'applications n'utilise que l'événement onSelect.

XXXXZone sont des classes de boutons sans dessin prédéfini. En principe, on affiche une image de fond qui va servir de zone visible pour les boutons de cette classe.

PushZone est donc une classe de boutons poussoirs sans dessin prédéfini.

Tous les boutons doivent dériver de cette classe

class PushZone
{
 public:
  PushZone(int x1, int y1, int x2, int y2);

Constructeur, s'insère dans la liste des contrôles gérées. x1, y1, x2, y2: zone d'action
  byte demiX1, demiY1, demiX2, demiY2;
Occupation de l'espace dans l'écran, coordonnnés absolues DIVISEES par 2
  word buttonColor;
Couleur du fond des boutons Coche et Cercle
  void (*onSelectFunction)(void);
Pointeur sur la fonction à appeler lorsque le bouton est sélectionné
  void (*onUnselectFunction)(void);
Pointeur sur la fonction à appeler lorsque le bouton est déselectionné
  PushZone *controleSuivant;
Pointeur sur le contrôle suivant dans la liste des contrôles
  void select(void);
Active un bouton. N'a aucun intérêt pour ce bouton, mais pas pour des descendants. Le bouton est automatiquement activé lorsque l'on appuie dessus
  void unselect(void);
Désactive ce bouton N'a aucun intérêt pour ce bouton, mais pas pour des descendants. Le bouton est automatiquement déactivé lorsque l'on le relâche
  boolean isSelected(void);
Informe de l'état du bouton. Pour ce bouton, il est actif tant qu'on appuie dessus
  virtual void onSelect(void);
Fonction appelée lors de la sélection. On peut surcharger cette fonction, par défaut elle est vide
  virtual void onUnselect(void);
Fonction appelée lors de la déselection. On peut surcharger cette fonction, par défaut elle est vide
  virtual void drawButton(void);
Fonction appelée lors de l'activation, la désactivation, à l'initialisation de la librairie ou sur appel de la fonction drawControles(). On peut surcharger cette fonction, par défaut elle est vide pour les boutons XXXXZone, et fait ce qu'il faut pour les autres. On peut surcharger cette méthode, mais si on veut garder le dessin par défaut, il faut appeler la méthode drawButton() de la classe mère.

PushZone doit être l'ancêtre de tous les boutons. A ce titre certaines fonctions existent pour ce bouton, mais n'ont pas d'effet ou sont inutiles. Mais ces fonctions sont utiles pour les descendants.

 

Voir aussi:
- scanEvent(); Moteur de la gestion des évènements
- pourBoutonTexte("texte"); Aide pour dessiner des boutons textes
- PushCoche; Bouton poussoir case à cocher
- PushCircle; Bouton poussoir rond
- CheckZone; Bouton bistable (va vient) sans dessin
- RadioZone; Bouton radio (un seul bouton actif parmi plusieurs) sans dessin