Beaucoup d'informations sont données pour le bouton CheckZone
qui ne sont pas toutes reprises ici. Un lecture de CheckZone est
une bonne idée.
CheckXXXX sont des classes de cases à cocher, genre "j'ai lu les conditions de vente". Comme
bouton, c'est comme un bouton de lumière avec télérupteur, a la limite un interupteur va et vient. Lorsque
l'on appuie dessus il change d'état. Pour cette bibliothèque, lorsqu'on appuie dessus, si il n'est pas
actif, il le devient, et un événement onSelect est généré. Si il était déja actif, il se désactive
et un événement onUnselect est généré. Lorsque l'on relâche l'appui, ou si l'appui sort de la zone
d'action, il ne se passe rien.
XXXXCircle sont des classes de boutons ronds qui changent de couleur quand ils sont actifs. Le
disque visible mesure 11 pixels de diamètre, mais la zone sur laquelle on peut pointer est définie par les
paramètres passés au constructeur. Elle peut être plus grande ou plus petite. Le disque se positionne au
milieu, ce n'est qu'un dessin.
CheckCircle est donc une classe de cases à cocher dessinées avec des cercles.
class CheckCircle
{
public:
CheckCircle(x1, y1, x2, y2);
Constructeur, s'insère dans la liste des contrôles gérées. x1, y1, x2, y2: zone d'action
demiX1, demiY1, demiX2, demiY2;
Occupation de l'espace dans l'écran, coordonnnés absolues DIVISEES par 2
buttonColor;
Couleur du fond des boutons (Bordure et disque central sont de la couleur opposée)
*onSelectFunction;
Pointeur sur la fonction à appeler lorsque le bouton est sélectionné
*onUnselectFunction;
Pointeur sur la fonction à appeler lorsque le bouton est déselectionné
*controleSuivant;
Pointeur sur le contrôle suivant dans la liste des contrôles
select();
Active un bouton
unselect();
Désactive ce bouton
isSelected();
Informe de l'état du bouton (coché ou non)
onSelect();
Fonction appelée lors de la sélection. On peut surcharger cette fonction, par défaut elle est vide
onUnselect();
Fonction appelée lors de la déselection. On peut surcharger cette fonction, par défaut elle est vide
drawButton();
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.
Exemples d'utilisation:
CheckCircle:
CheckCircle bouton(0,0,LARGEUR,HAUTEUR); Crée bouton sur toute la surface de l'écran, mais le
dessin sera tout petit, au centre
CheckCircle bouton(150,100,170,120); Crée bouton au centre en mode PAYSAGE
CheckCircle bouton = new CheckCircle(100,100,120,120); Crée une instance dynamique bouton central
new CheckCircle(100,100,120,120); Crée une instance dynamique bouton central mais sans pointeur dessus
on n'a pas forcément besion d'y accéder si on a surchargéla fonction onClic()
demiX1, demiY1, demiX2, demiY2:
circle(demiX1+demiX2, demiY1+demiY2, 10); Trace un cercle de rayon 10 centré sur le bouton
onSelectFunction:
bouton.onSelectFunction = & action; Appel la fonction void action(void) lors de la sélection
onUnselectFunction:
bouton.onUnselectFunction = & action; Appel la fonction void action(void) lors de la déselection
select(), unselect()
bouton.select(); Sélectionne ce bouton
isSelect():
if (bouton.isSelect())... Si la case est cochée
onSelect(), onUnselect():
voir les exemples complets
Voir aussi:
- scanEvent(); Moteur de la gestion des évènements
- PushCircle; Bouton poussoir rond
- CheckZone; Bouton bistable (va vient) sans dessin
- CheckCoche; Bouton bistable (va vient) case à cocher
- RadioCircle; Bouton radio (un seul bouton actif parmi plusieurs) rond
|