
Si quelqu'un à ca sous la main je suis preneur. Merci d'avance

Code : Tout sélectionner
#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
Code : Tout sélectionner
;-GESTION DES EVENTS
Enumeration $FF
#GUI_Event_Gadget
EndEnumeration
Structure sEvent
type.w
*gadget
EndStructure
;-GESTION DES GADGETS
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
;-GESTION DE LA GUI
Structure sGui
List event.sEvent()
List gadgetList.sGadget()
EndStructure
Procedure.i initializeGUI()
*g.sGui = AllocateMemory(SizeOf(sGui))
InitializeStructure(*g,sGui)
ProcedureReturn *g
EndProcedure
Procedure renderGui(*g.sGui, output)
If *g
;
; gestion des event
;
ForEach *g\gadgetList()
CallCFunctionFast(*g\gadgetList()\func_event,*g\gadgetList())
Next
;
; affichage ( rendu off screen )
;
ForEach *g\gadgetList()
CallCFunctionFast(*g\gadgetList()\func_render,*g\gadgetList())
Next
;
; affichage ( rendu output ) canvas , sprite , screen, etc...
;
StartDrawing(output)
ForEach *g\gadgetList()
DrawImage(ImageID( *g\gadgetList()\imageID ), *g\gadgetList()\position\x, *g\gadgetList()\position\y)
Next
StopDrawing()
StartDrawing(output)
StopDrawing()
EndIf
EndProcedure