Les gui , c'est ce qu'il y a de plus simple à programmer.
il te faut des structure commune à tout les gadgets , qui contient position , taille , parent , enfant , image.
une autre structure globale pour les evenement.
chaque gadget dérive de la 1° structure (extends) , et tu spécialises.
ex :
Code:
#EVENT_BUTTON_PRESSED = 0x01
Structure sVecteur2i
x.i
y.i
EndStructure
Structure sGadget
position.sVecteur2i ; position
size.sVecteur2i ; taille
imageID.i ; image
List event.l() ; evenement
*func_render ; fonction de rendu
*func_event
EndStructure
Global NewList eventMessage.i() ;<- fait des fct pr géré ca
;
;- BOUTON
;
Structure toggleButton Extends sGadget
state.b
EndStructure
Procedure toggleButton_event(*b.toggleButton)
If sourisclick ; <- a toi de jouer...
state = #True
AddElement(eventMessage())
eventMessage() = #EVENT_BUTTON_PRESSED
Else
state = #False
EndIf
EndProcedure
Procedure toggleButton_render(*b.toggleButton)
;dessine sur l'image du bouton
EndProcedure
Procedure createToggleButton()
*b.toggleButton = AllocateMemory(SizeOf(toggleButton))
*b\func_event = @toggleButton_event()
*b\func_render = @toggleButton_render()
EndProcedure
ensuite il faut que tu codes une structure centrale "gui" , qui stocke tout les gadgets et qui appelle les fct° d'event et de rendu , après l'image du gadget tu la rend ou tu veut, sprite , fenetre , ecran , canvas, etc...