Revenir au plan du site

Une checkbox compatible avec nos nouvelles fonctions communes


Dans [ factorisation des fonctions communes ] nous avons ajouté la gestion du passage d'un champ à l'autre et une manière commune d'initialiser chaque champ.

Comment ajouter les nouvelles actions à notre ancien code de checkBox?

Pour le faire on va d'abord se servir de notre routine d'actions par défaut. Ensuite il faut renommer chaque label global en label de proximité (.flip pour l'action et .affiche pour l'affichage)

Quel est l'intérêt de faire ça?

La réponse est multiple :
- En utilisant GuiObjetActionParDefaut on se concentre sur l'essentiel sans faire de copié-collé.
- Si la navigation évolue, tous nos modules évoluent en même temps.
- Le code est plus court et plus lisible.
GUICheckBoxGestion
GuiObjetActionParDefaut (void) ; nos actions par défaut, navigation et affichage
.texte
cp ' ' : jr z,.flip ; on a une entrée clavier et c'est Espace, alors on permute la coche
ret

.flip push af : ld a,(ix+s_checkbox.valeur) : inc a : and 1 : ld (ix+s_checkbox.valeur),a : call .affiche : pop af : ret

.affiche ld a,(ix+s_gui.selectionne) : add a : add (ix+s_checkbox.valeur) ; numéro de sprite de 0 à 3
add checkboxSprites : ld (ix+s_checkbox.checkboxchar),a
ld de,ix : ld hl,s_checkbox.checkboxchar : add hl,de : ld (hl),a : exx
ld de,(ix+s_checkbox.adresse_ecran)
jp GUIDisplayString