c'est juste des lines , des box ,et des circles , bref , du 100% purebasic .
Tu devais t'attendre à nettement mieux , mais ça suffit pour mes besoins (voir l'usage que j'en fais dans l'éditeur cité plus haut) .
Maintenant que j'ai vu un bout de code de nico qui montre comment obtenir la hauteur d'un texte , à l'occasion ,je vais ajouter cette fonction pour mieux gérer les textes.
Code : Tout sélectionner
;Comtois 03/12/04
;/ Définition des Gadgets 2D
;Gadget2D disponibles
Enumeration
#G2D_ButtonGadget
#G2D_ButtonImageGadget
#G2D_CheckBoxGadget
#G2D_Frame3DGadget
#G2D_ImageGadget
#G2D_OptionGadget
#G2D_ScrollBarGadget
#G2D_TextGadget
EndEnumeration
Structure Area2D
id.l
x.l
y.l
Largeur.l
Hauteur.l
Options.l
EndStructure
Structure Gadget2D
id.l
Type.l
x.l
y.l
Largeur.l
Hauteur.l
Minimum.l
Maximum.l
LongueurPage.l
Texte.s
ImageID.l
Options.l
FrameId.l ; Pour les OptionsGadgets2D
Etat.l
Focus.l
EndStructure
;/Définition souris
#SO_AucunBouton = 0
#SO_BoutonGauche = 1
#SO_BoutonDroit = 2
#SO_HorsCadre = -1
Structure Souris
x.l
y.l
PrecGauche.l
FrontMGauche.l
FrontDGauche.l
FixeGauche.l
PrecDroit.l
FrontMDroit.l
FrontDDroit.l
FixeDroit.l
EndStructure
Global Souris.Souris
Global MemFDGadgetID,MemFMGadgetID,MemFocus,MemAreaID
Global CCadre,CFond
Global Coul1,Coul2,Coul3,Coul4,Coul5
Global CoulTexte
CFond=$505050
CCadre=$FFFFFF
CoulTexte=0
Coul1=RGB(255,255,255)
Coul2=RGB(241,239,226)
Coul3=RGB(157,157,161)
Coul4=RGB(113,111,100)
Coul5=RGB(224,223,227)
;- Les procédures
ProcedureDLL G2D_Gadget2D_Init()
NewList Area2D.Area2D()
NewList Gadget2D.Gadget2D()
EndProcedure
Procedure TestZone(x1,Y1,X2,Y2)
Trouve=#False
If Souris\x>x1 And Souris\x<X2 And Souris\y>Y1 And Souris\y<Y2
Trouve=#True
EndIf
ProcedureReturn Trouve
EndProcedure
ProcedureDLL G2D_CouleurFond(Coul)
CFond=Coul
EndProcedure
ProcedureDLL G2D_CouleurCadre(Coul)
CCadre=Coul
EndProcedure
Procedure TestAreaId(id)
Trouve=#False
ForEach Area2D()
If Area2D()\id=id
Trouve=#True
Break
EndIf
Next
ProcedureReturn Trouve
EndProcedure
Procedure TestId(id)
Trouve=#False
ForEach Gadget2D()
If Gadget2D()\id=id
Trouve=#True
Break
EndIf
Next
ProcedureReturn Trouve
EndProcedure
Procedure ChercheDerniereFrame()
ForEach Gadget2D()
If Gadget2D()\Type=#G2D_Frame3DGadget
DerniereFrame=Gadget2D()\id
EndIf
Next
ProcedureReturn DerniereFrame
EndProcedure
Procedure G2D_ChangeEtatOption(Gadget,FrameId)
ForEach Gadget2D()
If Gadget2D()\id<>Gadget And Gadget2D()\Type=#G2D_OptionGadget And Gadget2D()\FrameId=FrameId
Gadget2D()\Etat=0
EndIf
Next
EndProcedure
Procedure MemoireAreaId()
MemAreaID=0
ForEach Area2D()
If Souris\x>Area2D()\x And Souris\x<Area2D()\x+Area2D()\Largeur And Souris\y>Area2D()\y And Souris\y<Area2D()\y+Area2D()\Hauteur
MemAreaID=Area2D()\id
Break
EndIf
Next
EndProcedure
Procedure MemoireFDGadgetID()
ForEach Gadget2D()
If Gadget2D()\id=MemFMGadgetID
If Souris\x>Gadget2D()\x And Souris\x<Gadget2D()\x+Gadget2D()\Largeur And Souris\y>Gadget2D()\y And Souris\y<Gadget2D()\y+Gadget2D()\Hauteur
MemFDGadgetID=Gadget2D()\id
;Mise à jour
Type=Gadget2D()\Type
Select Type
Case #G2D_ButtonGadget
If (Gadget2D()\Options & #G2D_Toggle)
Gadget2D()\Etat=1-Gadget2D()\Etat
EndIf
Case #G2D_CheckBoxGadget
Gadget2D()\Etat=1-Gadget2D()\Etat
Case #G2D_OptionGadget
Gadget2D()\Etat=1
G2D_ChangeEtatOption(Gadget2D()\id,Gadget2D()\FrameId)
EndSelect
Break
EndIf
EndIf
Next
EndProcedure
Procedure MemoireFMGadgetID()
;Cherche si le front montant de la souris est sur un gadget
ForEach Gadget2D()
If Gadget2D()\Type<>#G2D_Frame3DGadget And Souris\x>Gadget2D()\x And Souris\x<Gadget2D()\x+Gadget2D()\Largeur And Souris\y>Gadget2D()\y And Souris\y<Gadget2D()\y+Gadget2D()\Hauteur
;mémorise le gadget pour l'animation
MemFMGadgetID=Gadget2D()\id
Break
EndIf
Next
EndProcedure
Procedure G2D_AfficheCadreArea()
DrawingMode(4)
Box(Area2D()\x,Area2D()\y,Area2D()\Largeur,Area2D()\Hauteur,Coul3)
EndProcedure
Procedure G2D_AfficheCadre()
DrawingMode(0)
Coul1=RGB(255,255,255)
Coul2=RGB(241,239,226)
Coul3=RGB(157,157,161)
Coul4=RGB(113,111,100)
Coul5=RGB(224,223,227)
x=Gadget2D()\x
y=Gadget2D()\y
l=Gadget2D()\Largeur
h=x=Gadget2D()\Hauteur
If Gadget2D()\Etat=1 Or (MemFMGadgetID=Gadget2D()\id And TestZone(x,y,x+l,y+h))
Line(x,y,l-1,0,Coul4)
Line(x,y,0,h-1,Coul4)
Line(x+1,y+1,l-2,0,Coul3)
Line(x+1,y+1,0,h-2,Coul3)
Box(x+2,y+2,l-3,h-3,Coul5)
Line(x,y+h-1,l,0,Coul1)
Line(x+l-1,y,0,h,Coul1)
Line(x+1,y+h-2,l-3,0,Coul2)
Line(x+l-2,y+1,0,h-2,Coul2)
Else
Line(x,y,l-1,0,Coul1)
Line(x,y,0,h-1,Coul1)
Line(x+1,y+1,l-2,0,Coul2)
Line(x+1,y+1,0,h-2,Coul2)
Box(x+2,y+2,l-3,h-3,Coul5)
Line(x,y+h-1,l,0,Coul4)
Line(x+l-1,y,0,h,Coul4)
Line(x+1,y+h-2,l-3,0,Coul3)
Line(x+l-2,y+1,0,h-2,Coul3)
EndIf
EndProcedure
Procedure G2D_AfficheTexte()
;/Affiche le texte
;Texte à gauche
If Gadget2D()\Options & #G2D_Left
PosX=Gadget2D()\x+1
;Texte à droite
ElseIf Gadget2D()\Options & #G2D_Right
PosX=Gadget2D()\x+Gadget2D()\Largeur-TextLength(Gadget2D()\Texte)
Debug PosX
;Texte au centre
Else
PosX = Gadget2D()\x + (Gadget2D()\Largeur-TextLength(Gadget2D()\Texte))/2
EndIf
DrawingMode(1) : DrawingFont(#PB_Default)
FrontColor(Red(CoulTexte),Green(CoulTexte),Blue(CoulTexte))
Locate(PosX,Gadget2D()\y)
DrawText(Gadget2D()\Texte)
EndProcedure
Procedure G2D_AfficheTexteFrame3D()
;/Affiche le texte
DrawingFont(#PB_Default)
;Texte à gauche
If Gadget2D()\Options & #G2D_Left
PosX=Gadget2D()\x+1
;Texte à droite
ElseIf Gadget2D()\Options & #G2D_Right
PosX=Gadget2D()\x+Gadget2D()\Largeur-TextLength(Gadget2D()\Texte)
Debug PosX
;Texte au centre
Else
PosX = Gadget2D()\x + (Gadget2D()\Largeur-TextLength(Gadget2D()\Texte))/2
EndIf
;Efface la zone du texte
Line(PosX,Gadget2D()\y,TextLength(Gadget2D()\Texte),0,Coul5)
DrawingMode(1)
FrontColor(Red(CoulTexte),Green(CoulTexte),Blue(CoulTexte))
Locate(PosX,Gadget2D()\y-8)
DrawText(Gadget2D()\Texte)
EndProcedure
Procedure G2D_PresenceTexte()
;La méthode qui suit n'est pas très catholique , à revoir
If Len(Gadget2D()\Texte)
;Sauvegarde les données
memetat=Gadget2D()\Etat : memx=Gadget2D()\x : memlargeur=Gadget2D()\Largeur
;Change les données
Gadget2D()\Etat=0 : Gadget2D()\x+Gadget2D()\Hauteur+1 : Gadget2D()\Largeur-Gadget2D()\Hauteur-1
;Affiche le cadre
If Gadget2D()\Options & #G2D_Cadre
G2D_AfficheCadre()
EndIf
G2D_AfficheTexte()
;Restitue les données
Gadget2D()\Etat=memetat : Gadget2D()\x=memx : Gadget2D()\Largeur=memlargeur
EndIf
EndProcedure
Procedure G2D_AfficheButton()
G2D_AfficheCadre()
G2D_AfficheTexte()
EndProcedure
Procedure G2D_AfficheFrame3D()
DrawingMode(0)
Box(Gadget2D()\x,Gadget2D()\y,Gadget2D()\Largeur,Gadget2D()\Hauteur,Coul5)
DrawingMode(4)
Box(Gadget2D()\x,Gadget2D()\y,Gadget2D()\Largeur,Gadget2D()\Hauteur,Coul3)
If Len(Gadget2D()\Texte)
G2D_AfficheTexteFrame3D()
EndIf
EndProcedure
Procedure G2D_AfficheCheckBox()
;/Trace le cadre de la check box
DrawingMode(0)
Box(Gadget2D()\x,Gadget2D()\y,Gadget2D()\Hauteur,Gadget2D()\Hauteur,Coul5)
DrawingMode(4)
Box(Gadget2D()\x,Gadget2D()\y,Gadget2D()\Hauteur,Gadget2D()\Hauteur,Coul3)
If Gadget2D()\Etat
Moitie=Gadget2D()\Hauteur/2
CentreX=Gadget2D()\x+Moitie
CentreY=Gadget2D()\y+Moitie
Moitie/2
Line(CentreX,CentreY,-Moitie,-Moitie,#Black)
Line(CentreX,CentreY,Moitie,-Moitie,#Black)
Line(CentreX,CentreY,-Moitie,Moitie,#Black)
Line(CentreX,CentreY,Moitie,Moitie,#Black)
EndIf
;Affiche le texte
G2D_PresenceTexte()
EndProcedure
Procedure G2D_AfficheOption()
;/Trace le cercle
coulfond=CFond
coulcadre=CCadre
CentreX=Gadget2D()\x+Gadget2D()\Hauteur/2
CentreY=Gadget2D()\y+Gadget2D()\Hauteur/2
Rayon=5
DrawingMode(0)
Circle(CentreX,CentreY,Rayon,Coul5)
DrawingMode(4)
Circle(CentreX,CentreY,Rayon,Coul3)
If Gadget2D()\Etat
DrawingMode(0)
Circle(CentreX,CentreY,Rayon-2,#Black)
EndIf
;Affiche le texte
G2D_PresenceTexte()
EndProcedure
Procedure G2D_AfficheTextGadget()
G2D_AfficheCadre()
G2D_AfficheTexte()
EndProcedure
Procedure G2D_AfficheGadget()
StartDrawing(ScreenOutput())
ForEach Gadget2D()
Type = Gadget2D()\Type
Select Type
Case #G2D_ButtonGadget
G2D_AfficheButton()
Case #G2D_ButtonImageGadget
Case #G2D_CheckBoxGadget
G2D_AfficheCheckBox()
Case #G2D_ImageGadget
Case #G2D_Frame3DGadget
G2D_AfficheFrame3D()
Case #G2D_OptionGadget
G2D_AfficheOption()
Case #G2D_ScrollBarGadget
Case #G2D_TextGadget
G2D_AfficheTextGadget()
EndSelect
Next
ForEach Area2D()
If Area2D()\Options & #G2D_Cadre
G2D_AfficheCadreArea()
EndIf
Next
StopDrawing()
EndProcedure
Procedure GestionSouris()
If ExamineMouse()
Souris\x = MouseX()
Souris\y = MouseY()
Souris\FixeGauche=MouseButton(1)
Souris\FixeDroit=MouseButton(2)
Souris\FrontMGauche=0
Souris\FrontMDroit=0
Souris\FrontDGauche=0
Souris\FrontDDroit=0
If MouseButton(1) And Souris\PrecGauche=#False
Souris\FrontMGauche=#True
EndIf
If MouseButton(1)=#False And Souris\PrecGauche=#True
Souris\FrontDGauche=#True
EndIf
If MouseButton(2) And Souris\PrecDroit=#False
Souris\FrontMDroit=#True
EndIf
If MouseButton(2)=#False And Souris\PrecDroit=#True
Souris\FrontDDroit=#True
EndIf
Souris\PrecGauche=MouseButton(1)
Souris\PrecDroit=MouseButton(2)
EndIf
EndProcedure
ProcedureDLL G2D_EventGadgetID()
ProcedureReturn MemFDGadgetID
EndProcedure
ProcedureDLL G2D_EventAreaID()
ProcedureReturn MemAreaID
EndProcedure
ProcedureDLL G2D_Event()
G2D_AfficheGadget()
GestionSouris()
MemAreaID=0
MemFDGadgetID=0
;Mémorise le gadget dans lequel a lieu l'évènement
If Souris\FrontMGauche
MemoireFMGadgetID()
EndIf
;Un gadget est validé
If MemFMGadgetID
If Souris\FrontDGauche
MemoireFDGadgetID()
EndIf
EndIf
If Souris\FixeGauche=#False
MemFMGadgetID=0
EndIf
If MemFDGadgetID=0 And MemFMGadgetID=0
MemoireAreaId()
EndIf
;Un évènement est pris en compte sur un gadget sur un front descendant de la souris , s'il y a eu un front montant au préalable
If MemFDGadgetID And Souris\FrontDGauche
ProcedureReturn #G2D_Event_Gadget
ElseIf MemAreaID
ProcedureReturn #G2D_Event_Area
Else
ProcedureReturn #False
EndIf
EndProcedure
ProcedureDLL G2D_EventType()
If Souris\FrontMGauche
ProcedureReturn #G2D_EventType_LeftUp
ElseIf Souris\FrontDGauche
ProcedureReturn #G2D_EventType_LeftDown
ElseIf Souris\FixeGauche
ProcedureReturn #G2D_EventType_LeftClick
ElseIf Souris\FrontMDroit
ProcedureReturn #G2D_EventType_RightUp
ElseIf Souris\FrontDDroit
ProcedureReturn #G2D_EventType_RightDown
ElseIf Souris\FixeDroit
ProcedureReturn #G2D_EventType_RightClick
Else
ProcedureReturn 0
EndIf
EndProcedure
ProcedureDLL G2D_AreaGadget(Area, x, y, Largeur, Hauteur)
Resultat=#False
;Le gadget n'existe pas ?
If TestAreaId(Area)=#False
;Alors on peut le créer
If AddElement(Area2D())
Area2D()\id=Area
Area2D()\x=x
Area2D()\y=y
Area2D()\Largeur=Largeur
Area2D()\Hauteur=Hauteur
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_AreaGadget2(Area, x, y, Largeur, Hauteur,Options)
Resultat=#False
;Le gadget n'existe pas ?
If TestAreaId(Area)=#False
;Alors on peut le créer
If AddElement(Area2D())
Area2D()\id=Area
Area2D()\x=x
Area2D()\y=y
Area2D()\Largeur=Largeur
Area2D()\Hauteur=Hauteur
Area2D()\Options=Options
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_ButtonGadget(Gadget, x, y, Largeur, Hauteur, Texte$)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_ButtonGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=#G2D_Centre
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_ButtonGadget2(Gadget, x, y, Largeur, Hauteur, Texte$ , Options)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_ButtonGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=Options
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_ButtonImageGadget(Gadget, x, y, Largeur, Hauteur, ImageID)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_ButtonImageGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\ImageID=ImageID
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_CheckBoxGadget(Gadget, x, y, Largeur, Hauteur, Texte$)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_CheckBoxGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=#G2D_Left
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_CheckBoxGadget2(Gadget, x, y, Largeur, Hauteur, Texte$ , Options)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_CheckBoxGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=Options
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_Frame3DGadget(Gadget, x, y, Largeur, Hauteur, Texte$ , Options)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_Frame3DGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=Options
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_ImageGadget(Gadget, x, y, Largeur, Hauteur, ImageID , Options)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_ImageGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\ImageID=ImageID
Gadget2D()\Options=Options
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_OptionGadget(Gadget, x, y, Largeur, Hauteur, Texte$)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_OptionGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=#G2D_Left
Gadget2D()\FrameId=ChercheDerniereFrame()
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_OptionGadget2(Gadget, x, y, Largeur, Hauteur, Texte$,Options)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_OptionGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=Options
Gadget2D()\FrameId=ChercheDerniereFrame()
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_ScrollBarGadget(Gadget, x, y, Largeur, Hauteur, Minimum, Maximum, LongueurPage , Options)
Resultat=#False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_ScrollBarGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Minimum=Minimum
Gadget2D()\Maximum=Maximum
Gadget2D()\LongueurPage=LongueurPage
Gadget2D()\Options=Options
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_TextGadget(Gadget, x, y, Largeur, Hauteur, Texte$ , Options) ; G2D_TextGadget(Gadget, x, y, Largeur, Hauteur, Texte$ , Options)
Resultat = #False
;Le gadget n'existe pas ?
If TestId(Gadget)=#False
;Alors on peut le créer
If AddElement(Gadget2D())
Gadget2D()\Type=#G2D_TextGadget
Gadget2D()\id=Gadget
Gadget2D()\x=x
Gadget2D()\y=y
Gadget2D()\Largeur=Largeur
Gadget2D()\Hauteur=Hauteur
Gadget2D()\Texte=Texte$
Gadget2D()\Options=Options
Resultat=#True
EndIf
EndIf
ProcedureReturn Resultat
EndProcedure
ProcedureDLL G2D_GetAreaState(Area)
Etat=0
ForEach Area2D()
If Area2D()\id=Area
If Souris\x>Area2D()\x And Souris\x<Area2D()\x+Area2D()\Largeur And Souris\y>Area2D()\y And Souris\y<Area2D()\y+Area2D()\Hauteur
Etat=1
Else
Etat=0
EndIf
Break
EndIf
Next
ProcedureReturn Etat
EndProcedure
ProcedureDLL G2D_SetGadgetText(Gadget, Texte$)
ForEach Gadget2D()
If Gadget2D()\id=Gadget
If Gadget2D()\Type=#G2D_TextGadget
Gadget2D()\Texte=Texte$
EndIf
Break
EndIf
Next
EndProcedure
ProcedureDLL.s G2D_GetGadgetText(Gadget)
Texte$=""
ForEach Gadget2D()
If Gadget2D()\id=Gadget
If Gadget2D()\Type=#G2D_TextGadget
Texte$=Gadget2D()\Texte
EndIf
Break
EndIf
Next
ProcedureReturn Texte$
EndProcedure
ProcedureDLL G2D_SetGadgetState(Gadget, Etat)
ForEach Gadget2D()
If Gadget2D()\id=Gadget
If Gadget2D()\Type=#G2D_ButtonGadget And (Gadget2D()\Options & #G2D_Toggle)
Gadget2D()\Etat=Etat
ElseIf Gadget2D()\Type=#G2D_CheckBoxGadget
Gadget2D()\Etat=Etat
ElseIf Gadget2D()\Type=#G2D_OptionGadget
Gadget2D()\Etat=Etat
If Etat
G2D_ChangeEtatOption(Gadget,Gadget2D()\FrameId)
EndIf
EndIf
Break
EndIf
Next
EndProcedure
ProcedureDLL G2D_GetGadgetState(Gadget)
Etat=0
ForEach Gadget2D()
If Gadget2D()\id=Gadget
Etat=Gadget2D()\Etat
Break
EndIf
Next
ProcedureReturn Etat
EndProcedure
ProcedureDLL G2D_GadgetX(Gadget)
x=-1
ForEach Gadget2D()
If Gadget2D()\id=Gadget
x=Gadget2D()\x
Break
EndIf
Next
ProcedureReturn x
EndProcedure
ProcedureDLL G2D_GadgetY(Gadget)
y=-1
ForEach Gadget2D()
If Gadget2D()\id=Gadget
y=Gadget2D()\y
Break
EndIf
Next
ProcedureReturn y
EndProcedure
ProcedureDLL G2D_GadgetWidth(Gadget)
Largeur=0
ForEach Gadget2D()
If Gadget2D()\id=Gadget
Largeur=Gadget2D()\Largeur
Break
EndIf
Next
ProcedureReturn Largeur
EndProcedure
ProcedureDLL G2D_GadgetHeight(Gadget)
Hauteur=0
ForEach Gadget2D()
If Gadget2D()\id=Gadget
Hauteur=Gadget2D()\Hauteur
Break
EndIf
Next
ProcedureReturn Hauteur
EndProcedure
ProcedureDLL G2D_Gadget2D_end()
ClearList(Area2D())
ClearList(Gadget2D())
EndProcedure