Voici une version assez complète d'un bouton
coloré paramétrable à souhait:
--- Fonctionnalités: ---
- 4 Style de bouton au choix: Standard, Flat, Sans Bordures, 3D.
- Possibilité de choisir la Couleur du font du bouton (Alpha compris).
- Texte personnalisable: Couleur (Alpha compris), Angle, Style, Police, Taille de la police, Possibilité d'ajuster la position du texte avec 9 position possible (Fonctionne que si le texte n'est pas pivoté):
Haut Gauche, Haut Centré, Haut droite, Gauche Centré, Centré (Par Défaut), Droite Centré, Bas Gauche, Bas Centré, Bas droite.
Et aussi (OffSet X et Y).
- Possibilité de choisir des couleurs (De 2, Jusqu'à 5) pour créer un dégradé horizontale ou verticale sur le font ainsi que sur le texte du bouton.
- Possibilité de choisir le curseur de la souris du bouton quand la souris passe dessus.
- Possibilité de mettre une image avec choix de la transparence sur le bouton avec 9 position possible:
Haut Gauche (Par Défaut), Haut Centré, Haut droite, Gauche Centré, Centré, Droite Centré, Bas Gauche, Bas Centré, Bas droite.
Ainsi que la Possibilité d'ajuster la position de l'image (OffSet X et Y).
- Option Bouton A bascule.
----------------------
Note: Le Texte Multi Ligne n'est pas pris en charge
Fichier Zip contenant le code, un exemple et l'aide: http://www.aht.li/3047473/CreateButtonColor.7z
Et une ch'tite image, c'est mieux qu'un long discourt:
Code : Tout sélectionner
; Créé par Monsieur Dieppedalle David le 22/03/2017.
; Amélioré par Michel Lye (Structure + Tableau) le 24.03.2027.
; Amélioration et Optimisation par Monsieur Dieppedalle David le 24/03/2017.
; Ajouté par la suite moult fonctions et améliorations.
; Faute d'orthographe corrigée par Micoute.
;{ Structure
Structure Caracteristiques
BoutonImageID.i
Texte.s
PositionTexteBouton.i
XTexte.i
YTexte.i
CouleurTexte.i
AngleTexte.i
StyleTexte.i
PoliceTexte.s
TailleTexte.i
FontTexte.i
OffsetXTexteBouton.i
OffsetYTexteBouton.i
CouleurBouton.i
StyleBouton.i
Curseur.i
ImageBouton.i
TransparenceImageBouton.i
PositionImageBouton.i
XImageBouton.i
YImageBouton.i
OffsetXImageBouton.i
OffsetYImageBouton.i
CouleurGradientTexte1.i
CouleurGradientTexte2.i
CouleurGradientTexte3.i
CouleurGradientTexte4.i
CouleurGradientTexte5.i
CouleurGradientFond1.i
CouleurGradientFond2.i
CouleurGradientFond3.i
CouleurGradientFond4.i
CouleurGradientFond5.i
GradientModeTexte.i
GradientModeFond.i
Interrupteur.b
EndStructure
;}
;{ Variables Globales
Global NewMap ArrayButtonColor.Caracteristiques()
;}
;{ Constantes personnalisées:
; Valeurs possibles pour le Curseur:
#BC_Cursor_ARROW = 32512 ; la flèche (le curseur normal)
#BC_Cursor_IBEAM = 32513 ; curseur sélection de texte
#BC_Cursor_UPARROW = 32516 ; flèche qui pointe vers le haut
#BC_Cursor_APPSTARTING = 32650 ; curseur attente (flèche + sablier)
#BC_Cursor_WAIT = 32514 ; curseur occupé (sablier)
#BC_Cursor_CROSS = 32515 ; curseur précision de la sélection (croix)
#BC_Cursor_SIZENWSE = 32642 ; curseur de dimensionnement, pointe le NordOuest et le SudEst
#BC_Cursor_SIZENESW = 32643 ; curseur de dimensionnement, pointe le NE et le SO
#BC_Cursor_SIZEWE = 32644 ; curseur de dimensionnement, pointe le E et le O
#BC_Cursor_SIZENS = 32645 ; curseur de dimensionnement, pointe le N et le S
#BC_Cursor_SIZEALL = 32646 ; curseur de déplacement, pointe le N, S, E et O
#BC_Cursor_HELP = 32651 ; curseur aide
#BC_Cursor_HAND = 32649 ; curseur main
#BC_Cursor_NO = 32648 ; curseur "interdit" (panneau d'interdiction)
; Valeurs possibles pour les Fontes:
#BC_Font_Bold = #PB_Font_Bold
#BC_Font_Italic = #PB_Font_Italic
#BC_Font_Underline = #PB_Font_Underline
#BC_Font_StrikeOut = #PB_Font_StrikeOut
; Valeurs possibles pour les AAttributs:
#BC_TextColor = 1
#BC_GradiantTextMode = 2
#BC_GradiantTextColor1 = 3
#BC_GradiantTextColor2 = 4
#BC_GradiantTextColor3 = 5
#BC_GradiantTextColor4 = 6
#BC_GradiantTextColor5 = 7
#BC_TextPosition = 8
#BC_TextX = 9
#BC_TextY = 10
#BC_TextOffSetX = 11
#BC_TextOffSetY = 12
#BC_BackColor = 13
#BC_GradiantFondMode = 14
#BC_GradiantBackColor1 = 15
#BC_GradiantBackColor2 = 16
#BC_GradiantBackColor3 = 17
#BC_GradiantBackColor4 = 18
#BC_GradiantBackColor5 = 19
#BC_AngleText = 20
#BC_Cursor = 21
#BC_Image = 22
#BC_ImageTransparence = 23
#BC_ImageX = 24
#BC_ImageY = 25
#BC_ImageOffSetX = 26
#BC_ImageOffSetY = 27
#BC_ImagePosition = 28
#BC_Toogle = 29
#BC_Style = 30
; Valeurs possibles pour les Styles:
#BC_Style_Default = 31
#BC_Style_Flat = 32
#BC_Style_NoBorder = 33
#BC_Style_3D = 34
;}
;{ Procédures
; Procédure pour changer le curseur de la souris au dessus d'un gadget.
; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
Procedure SetGadgetCursor_SubClassProc(hwnd, msg, wparam, lparam)
Protected oldproc, Cursor
oldproc = GetProp_(hwnd, "oldproc")
Select msg
Case #WM_NCDESTROY
RemoveProp_(hwnd, "oldproc")
RemoveProp_(hwnd, "cursor")
Case #WM_SETCURSOR
Cursor = GetProp_(hwnd, "cursor")
SetCursor_(Cursor)
ProcedureReturn 0
EndSelect
ProcedureReturn CallWindowProc_(oldproc, hwnd, msg, wparam, lparam)
EndProcedure
; Change le curseur de la souris au dessus d'un Gadget.
Procedure SetGadgetCursor(Gadget, Cursor)
If IsGadget(Gadget)
If GetProp_(GadgetID(Gadget), "cursor")
RemoveProp_(GadgetID(Gadget), "cursor")
EndIf
SetProp_(GadgetID(Gadget), "cursor", Cursor)
If GetProp_(GadgetID(Gadget), "oldproc") = 0
SetProp_(GadgetID(Gadget), "oldproc", SetWindowLongPtr_(GadgetID(Gadget), #GWL_WNDPROC, @SetGadgetCursor_SubClassProc()))
EndIf
SendMessage_(GadgetID(Gadget), #WM_SETCURSOR , 0, 0)
EndIf
EndProcedure
; Créer un nouveau Bouton Coloré.
Procedure.b CreateButtonColor(Gadget.i, X.i, Y.i, Largeur.i, Hauteur.i, Texte.s, CouleurTexte.i = 0, CouleurBouton.i = 0, Interrupteur.b = #False, Curseur.i = #BC_Cursor_ARROW)
If Largeur.i > 9 And Hauteur.i > 9
With ArrayButtonColor(Str(Gadget.i))
If CouleurTexte.i = 0
CouleurTexte.i = RGBA(0, 0, 0, 255)
EndIf
\Texte = Texte.s
\CouleurTexte = CouleurTexte.i
\CouleurBouton = CouleurBouton.i
\Interrupteur = Interrupteur.b
\Curseur = Curseur.i
If IsImage(\BoutonImageID)
FreeImage(\BoutonImageID)
EndIf
ButtonImage.i = CreateImage(#PB_Any, Largeur.i - 7, Hauteur.i - 7, 32, #PB_Image_Transparent)
If IsImage(ButtonImage.i)
\BoutonImageID = ButtonImage.i
If Not IsFont(\FontTexte)
ButtonFont.i = LoadFont(#PB_Any, "", 8, #PB_Font_HighQuality)
If IsFont(ButtonFont.i)
\PoliceTexte = ""
\TailleTexte = 8
\StyleTexte = #PB_Font_HighQuality
\FontTexte = ButtonFont.i
EndIf
EndIf
If StartDrawing(ImageOutput(ButtonImage.i))
DrawingMode(#PB_2DDrawing_AlphaBlend)
Box(0, 0, ImageWidth(ButtonImage.i), ImageHeight(ButtonImage.i), CouleurBouton.i)
If \GradientModeFond = 1
DrawingMode(#PB_2DDrawing_Gradient)
; Dégradé en Horizontal.
LinearGradient(ImageWidth(ButtonImage.i), 0, 0, 0)
ElseIf \GradientModeFond = 2
DrawingMode(#PB_2DDrawing_Gradient)
; Dégradé en Vertical.
LinearGradient(0, ImageHeight(ButtonImage.i), 0, 0)
EndIf
If \GradientModeFond = 1 Or \GradientModeFond = 2
If \CouleurGradientFond1 <> -1 And \CouleurGradientFond2 <> -1 And \CouleurGradientFond3 <> -1 And \CouleurGradientFond4 <> -1 And \CouleurGradientFond5 <> -1
GradientColor(0.00, \CouleurGradientFond1)
GradientColor(0.25, \CouleurGradientFond2)
GradientColor(0.50, \CouleurGradientFond3)
GradientColor(0.75, \CouleurGradientFond4)
GradientColor(1.00, \CouleurGradientFond5)
ElseIf \CouleurGradientFond1 <> -1 And \CouleurGradientFond2 <> -1 And \CouleurGradientFond3 <> -1 And \CouleurGradientFond4 <> -1
GradientColor(0.00, \CouleurGradientFond1)
GradientColor(0.33, \CouleurGradientFond2)
GradientColor(0.66, \CouleurGradientFond3)
GradientColor(1.00, \CouleurGradientFond4)
ElseIf \CouleurGradientFond1 <> -1 And \CouleurGradientFond2 <> -1 And \CouleurGradientFond3 <> -1
GradientColor(0.00, \CouleurGradientFond1)
GradientColor(0.50, \CouleurGradientFond2)
GradientColor(1.00, \CouleurGradientFond3)
ElseIf \CouleurGradientFond1 <> -1 And \CouleurGradientFond2 <> -1
GradientColor(0.00, \CouleurGradientFond1)
GradientColor(1.00, \CouleurGradientFond2)
Else
DrawingMode(#PB_2DDrawing_AlphaBlend)
EndIf
EndIf
Box(0, 0, ImageWidth(ButtonImage.i), ImageHeight(ButtonImage.i), CouleurBouton.i)
DrawingMode(#PB_2DDrawing_AlphaBlend)
If IsFont(\FontTexte)
DrawingFont(FontID(\FontTexte))
EndIf
AngleTexte.i = (\AngleTexte - \AngleTexte - \AngleTexte)
If AngleTexte.i = 0
Select \PositionTexteBouton
Case 0 ; Centre
XTexte.i = (ImageWidth(ButtonImage.i) - TextWidth(Texte.s)) / 2 + \OffsetXTexteBouton
YTexte.i = (ImageHeight(ButtonImage.i) - TextHeight(Texte.s)) / 2 + \OffsetYTexteBouton
Case 1 ; Haut Gauche
XTexte.i = 1 + \OffsetXTexteBouton
YTexte.i = \OffsetYTexteBouton - 2
Case 2 ; Haut centre
XTexte.i = 1 + (ImageWidth(ButtonImage.i) - TextWidth(Texte.s)) / 2 + \OffsetXTexteBouton
YTexte.i = \OffsetYTexteBouton - 2
Case 3 ; Haut droite
XTexte.i = ImageWidth(ButtonImage.i) - TextWidth(Texte.s) + \OffsetXTexteBouton - 1
YTexte.i = \OffsetYTexteBouton - 2
Case 4 ; Gauche centre
XTexte.i = 1 + \OffsetXTexteBouton
YTexte.i = (ImageHeight(ButtonImage.i) - TextHeight(Texte.s)) / 2 + \OffsetYTexteBouton
Case 5 ; Droite centre
XTexte.i = (ImageWidth(ButtonImage.i) - TextWidth(Texte.s)) + \OffsetXTexteBouton - 1
YTexte.i = (ImageHeight(ButtonImage.i) - TextHeight(Texte.s)) / 2 + \OffsetYTexteBouton
Case 6 ; Bas gauche
XTexte.i = 1 + \OffsetXTexteBouton
YTexte.i = (ImageHeight(ButtonImage.i) - TextHeight(Texte.s)) + \OffsetYTexteBouton
Case 7 ; Bas centre
XTexte.i = 1 + (ImageWidth(ButtonImage.i) - TextWidth(Texte.s)) / 2 + \OffsetXTexteBouton
YTexte.i = (ImageHeight(ButtonImage.i) - TextHeight(Texte.s)) + \OffsetYTexteBouton
Case 8 ; Bas droite
XTexte.i = ImageWidth(ButtonImage.i) - TextWidth(Texte.s) + \OffsetXTexteBouton - 1
YTexte.i = (ImageHeight(ButtonImage.i) - TextHeight(Texte.s)) + \OffsetYTexteBouton
Default ; Centre
XTexte.i = (ImageWidth(ButtonImage.i) - TextWidth(Texte.s)) / 2 + \OffsetXTexteBouton
YTexte.i = (ImageHeight(ButtonImage.i) - TextHeight(Texte.s)) / 2 + \OffsetYTexteBouton
EndSelect
Else
XTexte.i = (ImageWidth(ButtonImage.i) - TextWidth(\Texte) * Cos(Radian(AngleTexte.i)) - TextHeight(\Texte) * Sin(Radian(AngleTexte.i))) / 2
YTexte.i = (ImageHeight(ButtonImage.i) + TextWidth(\Texte) * Sin(Radian(AngleTexte.i)) - TextHeight(\Texte) * Cos(Radian(AngleTexte.i))) / 2
XTexte.i + \OffsetXTexteBouton
YTexte.i + \OffsetYTexteBouton
EndIf
\XTexte = XTexte.i
\YTexte = YTexte.i
If IsImage(\ImageBouton)
Select \PositionImageBouton
Case 0 ; Haut Gauche
XImage.i = 1
YImage.i = 1
Case 1 ; Haut centre
XImage.i = (ImageWidth(ButtonImage.i) - ImageWidth(\ImageBouton)) / 2 + \OffSetXImageBouton
YImage.i = 1 + \OffSetYImageBouton
Case 2 ; Haut droite
XImage.i = (ImageWidth(ButtonImage.i) - ImageWidth(\ImageBouton)) - 1 + \OffSetXImageBouton
YImage.i = 1 + \OffSetYImageBouton
Case 3 ; Gauche centre
XImage.i = 1 + \OffSetXImageBouton
YImage.i = (ImageHeight(ButtonImage.i) - ImageHeight(\ImageBouton)) / 2 + \OffSetYImageBouton
Case 4 ; Centre
XImage.i = (ImageWidth(ButtonImage.i) - ImageWidth(\ImageBouton)) / 2 + \OffSetXImageBouton
YImage.i = (ImageHeight(ButtonImage.i) - ImageHeight(\ImageBouton)) / 2 + \OffSetYImageBouton
Case 5 ; Droite centre
XImage.i = (ImageWidth(ButtonImage.i) - ImageWidth(\ImageBouton)) - 1 + \OffSetXImageBouton
YImage.i = (ImageHeight(ButtonImage.i) - ImageHeight(\ImageBouton)) / 2 + \OffSetYImageBouton
Case 6 ; Bas gauche
XImage.i = 1 + \OffSetXImageBouton
YImage.i = ImageHeight(ButtonImage.i) - ImageHeight(\ImageBouton) - 1 + \OffSetYImageBouton
Case 7 ; Bas centre
XImage.i = (ImageWidth(ButtonImage.i) - ImageWidth(\ImageBouton)) / 2 + \OffSetXImageBouton
YImage.i = ImageHeight(ButtonImage.i) - ImageHeight(\ImageBouton) - 1 + \OffSetYImageBouton
Case 8 ; Bas droite
XImage.i = ImageWidth(ButtonImage.i) - ImageWidth(\ImageBouton) - 1 + \OffSetXImageBouton
YImage.i = ImageHeight(ButtonImage.i) - ImageHeight(\ImageBouton) - 1 + \OffSetYImageBouton
Default ; Haut Gauche
XImage.i = 1 + \OffSetXImageBouton
YImage.i = 1 + \OffSetYImageBouton
EndSelect
\XImageBouton = XImage.i
\YImageBouton = YImage.i
DrawAlphaImage(ImageID(\ImageBouton), XImage.i, YImage.i, \TransparenceImageBouton)
EndIf
ResetGradientColors()
If \GradientModeTexte = 1 Or \GradientModeTexte = 2
DrawingMode(#PB_2DDrawing_AlphaBlend | #PB_2DDrawing_Gradient)
If \GradientModeTexte = 1
; Dégradé en Horizontal.
LinearGradient(XTexte.i, YTexte.i, TextWidth(Texte.s), YTexte.i)
ElseIf \GradientModeTexte = 2
; Dégradé en Vertical.
LinearGradient(XTexte.i, YTexte.i, XTexte.i, YTexte.i + TextHeight(Texte.s))
EndIf
If \CouleurGradientTexte1 <> -1 And \CouleurGradientTexte2 <> -1 And \CouleurGradientTexte3 <> -1 And \CouleurGradientTexte4 <> -1 And \CouleurGradientTexte5 <> -1
GradientColor(0.00, \CouleurGradientTexte1)
GradientColor(0.25, \CouleurGradientTexte2)
GradientColor(0.50, \CouleurGradientTexte3)
GradientColor(0.75, \CouleurGradientTexte4)
GradientColor(1.00, \CouleurGradientTexte5)
ElseIf \CouleurGradientTexte1 <> -1 And \CouleurGradientTexte2 <> -1 And \CouleurGradientTexte3 <> -1 And \CouleurGradientTexte4 <> -1
GradientColor(0.00, \CouleurGradientTexte1)
GradientColor(0.33, \CouleurGradientTexte2)
GradientColor(0.66, \CouleurGradientTexte3)
GradientColor(1.00, \CouleurGradientTexte4)
ElseIf \CouleurGradientTexte1 <> -1 And \CouleurGradientTexte2 <> -1 And \CouleurGradientTexte3 <> -1
GradientColor(0.00, \CouleurGradientTexte1)
GradientColor(0.50, \CouleurGradientTexte2)
GradientColor(1.00, \CouleurGradientTexte3)
ElseIf \CouleurGradientTexte1 <> -1 And \CouleurGradientTexte2 <> -1
GradientColor(0.00, \CouleurGradientTexte1)
GradientColor(1.00, \CouleurGradientTexte2)
Else
DrawingMode(#PB_2DDrawing_AlphaBlend)
EndIf
EndIf
If AngleTexte.i = 0
DrawText(XTexte.i, YTexte.i, Texte.s, CouleurTexte.i, 0)
Else
DrawRotatedText(XTexte.i, YTexte.i, Texte.s, AngleTexte.i, CouleurTexte.i)
EndIf
StopDrawing()
Else
ProcedureReturn 0
EndIf
If Interrupteur.b = #True
ButtonImageGadget(Gadget.i, X.i, Y.i, Largeur.i, Hauteur.i, ImageID(ButtonImage.i), #PB_Button_Toggle)
Else
ButtonImageGadget(Gadget.i, X.i, Y.i, Largeur.i, Hauteur.i, ImageID(ButtonImage.i))
EndIf
Else
ProcedureReturn 0
EndIf
Select \StyleBouton
Case #BC_Style_Flat
SetWindowLong_(GadgetID(Gadget.i), #GWL_STYLE, #BS_FLAT | GetWindowLong_(GadgetID(Gadget.i), #GWL_STYLE))
SetWindowTheme_(GadgetID(Gadget), @" ", @" ")
Case #BC_Style_NoBorder
SetWindowLong_(GadgetID(Gadget.i), #GWL_STYLE, #BS_USERBUTTON | GetWindowLong_(GadgetID(Gadget.i), #GWL_STYLE))
SetWindowTheme_(GadgetID(Gadget.i), @" ", @" ")
Case #BC_Style_3D
SetWindowLong_(GadgetID(Gadget.i), #GWL_STYLE, 0 | GetWindowLong_(GadgetID(Gadget.i), #GWL_STYLE))
SetWindowTheme_(GadgetID(Gadget.i), @" ", @" ")
EndSelect
Select Curseur.i
Case #BC_Cursor_APPSTARTING, #BC_Cursor_ARROW, #BC_Cursor_CROSS, #BC_Cursor_HAND, #BC_Cursor_HELP, #BC_Cursor_IBEAM, #BC_Cursor_NO, #BC_Cursor_SIZEALL, #BC_Cursor_SIZENESW, #BC_Cursor_SIZEWE, #BC_Cursor_SIZENS, #BC_Cursor_SIZENWSE, #BC_Cursor_UPARROW, #BC_Cursor_WAIT
Default
Curseur.i = #BC_Cursor_ARROW
EndSelect
SetGadgetCursor(Gadget.i, LoadCursor_(0, Curseur.i)) ; Applique le curseur au gadget
ProcedureReturn 1
EndWith
Else
ProcedureReturn 0
EndIf
EndProcedure
; Change le texte du bouton.
Procedure.b SetButtonColorText(Gadget.i, Texte.s)
If IsGadget(Gadget.i)
With ArrayButtonColor(Str(Gadget.i))
\Texte = Texte.s
CreateButtonColor(Gadget.i, GadgetX(Gadget.i), GadgetY(Gadget.i), GadgetWidth(Gadget.i), GadgetHeight(Gadget.i), Texte.s, \CouleurTexte, \CouleurBouton, \Interrupteur, \Curseur)
ProcedureReturn 1
EndWith
Else
ProcedureReturn 0
EndIf
EndProcedure
; Change la police du bouton.
Procedure.b SetGadgetColorFont(Gadget.i, PoliceTexte.s, TailleTexte.i = 10, StyleTexte.i = 0)
; StyleTexte: #BC_Font_Bold | #BC_Font_Italic | #BC_Font_Underline | #BC_Font_StrikeOut
If IsGadget(Gadget.i)
With ArrayButtonColor(Str(Gadget.i))
If IsFont(\FontTexte)
FreeFont(\FontTexte)
EndIf
ButtonFont.i = LoadFont(#PB_Any, PoliceTexte.s, TailleTexte.i, StyleTexte.i | #PB_Font_HighQuality)
If IsFont(ButtonFont.i)
\PoliceTexte = PoliceTexte.s
\TailleTexte = TailleTexte.i
\StyleTexte = StyleTexte.i | #PB_Font_HighQuality
\FontTexte = ButtonFont.i
Else
ProcedureReturn 0
EndIf
CreateButtonColor(Gadget.i, GadgetX(Gadget.i), GadgetY(Gadget.i), GadgetWidth(Gadget.i), GadgetHeight(Gadget.i), \Texte, \CouleurTexte, \CouleurBouton, \Interrupteur, \Curseur)
ProcedureReturn 1
EndWith
Else
ProcedureReturn 0
EndIf
EndProcedure
; Change les couleurs gradient du texte du bouton.
Procedure.b SetButtonColorGradientTextColor(Gadget.i, Mode.i, Couleur1.i, Couleur2.i, Couleur3.i, Couleur4.i, Couleur5.i)
If IsGadget(Gadget.i)
With ArrayButtonColor(Str(Gadget.i))
If Mode.i < 1
Mode.i = 1
ElseIf Mode.i > 2
Mode.i = 2
EndIf
\GradientModeTexte = Mode.i
\CouleurGradientTexte1 = Couleur1.i
\CouleurGradientTexte2 = Couleur2.i
\CouleurGradientTexte3 = Couleur3.i
\CouleurGradientTexte4 = Couleur4.i
\CouleurGradientTexte5 = Couleur5.i
CreateButtonColor(Gadget.i, GadgetX(Gadget.i), GadgetY(Gadget.i), GadgetWidth(Gadget.i), GadgetHeight(Gadget.i), \Texte, \CouleurTexte, \CouleurBouton, \Interrupteur, \Curseur)
ProcedureReturn 1
EndWith
Else
ProcedureReturn 0
EndIf
EndProcedure
; Change les couleurs gradient du fond du bouton.
Procedure.b SetButtonColorGradientBackColor(Gadget.i, Mode.i, Couleur1.i, Couleur2.i, Couleur3.i, Couleur4.i, Couleur5.i)
If IsGadget(Gadget.i)
With ArrayButtonColor(Str(Gadget.i))
If Mode.i < 1
Mode.i = 1
ElseIf Mode.i > 2
Mode.i = 2
EndIf
\GradientModeFond = Mode.i
\CouleurGradientFond1 = Couleur1.i
\CouleurGradientFond2 = Couleur2.i
\CouleurGradientFond3 = Couleur3.i
\CouleurGradientFond4 = Couleur4.i
\CouleurGradientFond5 = Couleur5.i
CreateButtonColor(Gadget.i, GadgetX(Gadget.i), GadgetY(Gadget.i), GadgetWidth(Gadget.i), GadgetHeight(Gadget.i), \Texte, \CouleurTexte, \CouleurBouton, \Interrupteur, \Curseur)
ProcedureReturn 1
EndWith
Else
ProcedureReturn 0
EndIf
EndProcedure
; Change un attribut du bouton.
Procedure.b SetButtonColorAttribute(Gadget.i, Attribut.i, Valeur.i)
If IsGadget(Gadget.i)
With ArrayButtonColor(Str(Gadget.i))
Select Attribut.i
Case #BC_TextColor
\CouleurTexte = Valeur.i
Case #BC_TextPosition
\PositionTexteBouton = Valeur.i
Case #BC_TextOffSetX
\OffsetXTexteBouton = Valeur.i
Case #BC_TextOffSetY
\OffsetYTexteBouton = Valeur.i
Case #BC_BackColor
\CouleurBouton = Valeur.i
Case #BC_AngleText
\AngleTexte = Valeur.i
Case #BC_Cursor ; #BC_Cursor_APPSTARTING, #BC_Cursor_ARROW, #BC_Cursor_CROSS, #BC_Cursor_HAND, #BC_Cursor_HELP, #BC_Cursor_IBEAM, #BC_Cursor_NO, #BC_Cursor_SIZEALL, #BC_Cursor_SIZENESW, #BC_Cursor_SIZEWE, #BC_Cursor_SIZENS, #BC_Cursor_SIZENWSE, #BC_Cursor_UPARROW, #BC_Cursor_WAIT
\Curseur = Valeur.i
Case #BC_Image
\TransparenceImageBouton = 255
\ImageBouton = Valeur.i
Case #BC_ImageTransparence
\TransparenceImageBouton = Valeur.i
Case #BC_ImagePosition
\PositionImageBouton = Valeur.i
Case #BC_ImageOffSetX
\OffsetXImageBouton = Valeur.i
Case #BC_ImageOffSetY
\OffsetYImageBouton = Valeur.i
Case #BC_Toogle
If Valeur.i <> 0 And Valeur.i <> 1
Valeur.i = #False
EndIf
\Interrupteur = Valeur.i
Case #BC_Style ; #BC_Style_Default, #BC_Style_Flat, #BC_Style_NoBorder, #BC_Style_3D
\StyleBouton = Valeur.i
EndSelect
CreateButtonColor(Gadget.i, GadgetX(Gadget.i), GadgetY(Gadget.i), GadgetWidth(Gadget.i), GadgetHeight(Gadget.i), \Texte, \CouleurTexte, \CouleurBouton, \Interrupteur, \Curseur)
ProcedureReturn 1
EndWith
Else
ProcedureReturn 0
EndIf
EndProcedure
; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Retourne le numéro d'identification de l'image (ImageID) qui compose le bouton.
Procedure.i GetButtonColorImageID(Gadget.i)
If IsGadget(Gadget.i)
ProcedureReturn ArrayButtonColor(Str(Gadget.i))\BoutonImageID
Else
ProcedureReturn 0
EndIf
EndProcedure
; Retourne le texte du bouton.
Procedure.s GetButtonColorText(Gadget.i)
If IsGadget(Gadget.i)
ProcedureReturn ArrayButtonColor(Str(Gadget.i))\Texte
Else
ProcedureReturn ""
EndIf
EndProcedure
; Retourne le nom de la police du bouton.
Procedure.s GetButtonColorFontName(Gadget.i)
If IsGadget(Gadget.i)
ProcedureReturn ArrayButtonColor(Str(Gadget.i))\PoliceTexte
Else
ProcedureReturn ""
EndIf
EndProcedure
; Retourne la taille de la police du bouton.
Procedure.i GetButtonColorFontSize(Gadget.i)
If IsGadget(Gadget.i)
ProcedureReturn ArrayButtonColor(Str(Gadget.i))\TailleTexte
Else
ProcedureReturn 0
EndIf
EndProcedure
; Retourne le style de la police du bouton.
Procedure.i GetButtonColorFontStyle(Gadget.i)
If IsGadget(Gadget.i)
ProcedureReturn ArrayButtonColor(Str(Gadget.i))\StyleTexte
Else
ProcedureReturn 0
EndIf
EndProcedure
; Retourne un attribut du bouton.
Procedure.i GetButtonColorAttribute(Gadget.i, Attribut.i)
If IsGadget(Gadget.i)
With ArrayButtonColor(Str(Gadget.i))
Select Attribut.i
Case #BC_TextColor
ProcedureReturn \CouleurTexte
Case #BC_GradiantTextMode
ProcedureReturn \GradientModeTexte
Case #BC_GradiantTextColor1
ProcedureReturn \CouleurGradientTexte1
Case #BC_GradiantTextColor2
ProcedureReturn \CouleurGradientTexte2
Case #BC_GradiantTextColor3
ProcedureReturn \CouleurGradientTexte3
Case #BC_GradiantTextColor4
ProcedureReturn \CouleurGradientTexte4
Case #BC_GradiantTextColor5
ProcedureReturn \CouleurGradientTexte5
Case #BC_TextX
ProcedureReturn \XTexte
Case #BC_TextY
ProcedureReturn \YTexte
Case #BC_TextPosition
ProcedureReturn \PositionTexteBouton
Case #BC_TextOffSetX
ProcedureReturn \OffsetXTexteBouton
Case #BC_TextOffSetY
ProcedureReturn \OffsetYTexteBouton
Case #BC_BackColor
ProcedureReturn \CouleurBouton
Case #BC_GradiantFondMode
ProcedureReturn \GradientModeFond
Case #BC_GradiantBackColor1
ProcedureReturn \CouleurGradientFond1
Case #BC_GradiantBackColor2
ProcedureReturn \CouleurGradientFond2
Case #BC_GradiantBackColor3
ProcedureReturn \CouleurGradientFond3
Case #BC_GradiantBackColor4
ProcedureReturn \CouleurGradientFond4
Case #BC_GradiantBackColor5
ProcedureReturn \CouleurGradientFond5
Case #BC_AngleText
ProcedureReturn \AngleTexte
Case #BC_Cursor
ProcedureReturn \Curseur
Case #BC_Image
ProcedureReturn \ImageBouton
Case #BC_ImageTransparence
ProcedureReturn \TransparenceImageBouton
Case #BC_ImageX
ProcedureReturn \XImageBouton
Case #BC_ImageY
ProcedureReturn \YImageBouton
Case #BC_ImageOffSetX
ProcedureReturn \OffsetXImageBouton
Case #BC_ImageOffSetY
ProcedureReturn \OffsetYTexteBouton
Case #BC_ImagePosition
ProcedureReturn \PositionImageBouton
Case #BC_Toogle
ProcedureReturn \Interrupteur
Case #BC_Style
ProcedureReturn \StyleBouton
Default
ProcedureReturn 0
EndSelect
EndWith
Else
ProcedureReturn 0
EndIf
EndProcedure
;}
; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Exemple d'utilisation
; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;{ Aide
; ---------------------------
; Aide Fonction ButtonColor:
; ---------------------------
; - Crée un nouveau bouton coloré.
; - CouleurTexte.i ainsi que CouleurBouton.i doivent être des couleurs au format RGBA().
; - Curseur possible: #BC_Cursor_APPSTARTING, #BC_Cursor_ARROW (Par défaut), #BC_Cursor_CROSS, #BC_Cursor_HAND, #BC_Cursor_HELP, #BC_Cursor_IBEAM, #BC_Cursor_NO
; #BC_Cursor_SIZEALL, #BC_Cursor_SIZENESW, #BC_Cursor_SIZEWE, #BC_Cursor_SIZENS, #BC_Cursor_SIZENWSE, #BC_Cursor_UPARROW, #BC_Cursor_WAIT.
; Largeur.i ainsi que Hauteur.i doivent être supérieures ou égales à 10.
; CreateButtonColor(Gadget.i, X.i, Y.i, Largeur.i, Hauteur.i, Texte.s, CouleurTexte.i = 0, CouleurBouton.i = 0, Interrupteur.b = #False, Curseur.i = #BC_Cursor_ARROW)
; - Change le texte du bouton.
; SetButtonColorText(Gadget.i, Texte.s)
; - Change la police du Bouton.
; - StyleTexte: #BC_Font_Bold | #BC_Font_Italic | #BC_Font_Underline | #BC_Font_StrikeOut.
; SetGadgetColorFont(Gadget.i, PoliceTexte.s, TailleTexte.i, StyleTexte.i)
; - Change les couleurs gradient du texte du bouton.
; - -1 peut être indiqué pour ne pas utiliser de couleur, mais doit être utilisé à la fin:
; - Ex: Couleur1.i, Couleur2.i, Couleur3.i, Couleur4.i, -1
; - Ex: Couleur1.i, Couleur2.i, Couleur3.i, -1, -1
; - Ex: Couleur1.i, Couleur2.i, -1, -1, -1
; - Mode: 1 = dégradé horizontal, 2 = dégradé vertical
; SetButtonColorGradientTextColor(Gadget.i, Mode.i, Couleur1.i, Couleur2.i, Couleur3.i, Couleur4.i, Couleur5.i)
; - Change les couleurs gradient du fond du bouton.
; - -1 peut être indiqué pour ne pas utiliser de couleur, mais doit être utilisé à la fin:
; - Ex: Couleur1.i, Couleur2.i, Couleur3.i, Couleur4.i, -1
; - Ex: Couleur1.i, Couleur2.i, Couleur3.i, -1, -1
; - Ex: Couleur1.i, Couleur2.i, -1, -1, -1
; - Mode: 1 = dégradé horizontal, 2 = dégradé vertical
; SetButtonColorGradientBackColor(Gadget.i, Mode.i, Couleur1.i, Couleur2.i, Couleur3.i, Couleur4.i, Couleur5.i)
; - Change un attribut du bouton.
; SetButtonColorAttribute(Gadget.i, Attribut.i, Valeur.i)
; Note: Toutes les fonctions Setxxx retournent 1 si celles-ci ont été exécutées correctement ou 0 si elles ont échoué.
; chaque fonction recrée ensuite le bouton si elle a été exécutée correctement.
; ------------------------------
; Aide SetButtonColorAttribute:
; ------------------------------
; Attributs possibles: #BC_TextColor, #BC_TextPosition, #BC_TextOffSetX, #BC_TextOffSetY, #BC_BackColor, #BC_AngleText,
; #BC_Cursor, #BC_Image, #BC_ImageTransparence, #BC_ImagePosition, #BC_ImageOffSetX, #BC_ImageOffSetY, #BC_Toogle, #BC_Style.
; Attributs: #BC_TextX et #BC_TextY
; Valeurs possibles: Position en X et en Y du texte sur le bouton.
; Attributs: #BC_TextColor:
; Valeur Possible: Couleur au Format RGBA().
; Attributs: #BC_TextPosition:
; Valeurs possibles: Position du texte, 0 = Centré (Par Défaut), Haut Gauche, 1 = Haut Centré, 2 = Haut droite, 3 = Gauche Centré,
; 4 = Droite Centré, 5 = Bas Gauche, 6 = Bas Centré, 7 = Droite bas.
; Attributs: #BC_TextOffSetX et #BC_TextOffSetY:
; Valeur possible: Position de justification du texte en X et Y, Valeur Positif = le Texte se décale à Droite
; pour X et en Bas pour Y, Valeur Négatif = le Texte se décale à Gauche pour X et en Haut pour Y.
; Attributs: #BC_BackColor:
; Valeur Possible: Couleur au Format RGBA().
; Attributs: #BC_AngleText:
; Valeur Possible: Valeur de 0 à 360 ou -0 à -360.
; Attributs: #BC_Cursor:
; Curseurs possibles: #BC_Cursor_APPSTARTING, #BC_Cursor_ARROW, #BC_Cursor_CROSS, #BC_Cursor_HAND, #BC_Cursor_HELP, #BC_Cursor_IBEAM,
; #BC_Cursor_NO, #BC_Cursor_SIZEALL, #BC_Cursor_SIZENESW, #BC_Cursor_SIZEWE, #BC_Cursor_SIZENS, #BC_Cursor_SIZENWSE,
; #BC_Cursor_UPARROW, #BC_Cursor_WAIT.
; Attributs: #BC_Image:
; Valeur possible: Numéro Identifiant de l'image (ImageID).
; Attributs: #BC_ImageTransparence:
; Valeurs possibles: Valeur entre 0 et 255.
; Attributs: #BC_ImageX et #BC_ImageY
; Valeurs possibles: Position en X et en Y de l'image additionnel du bouton.
; Attributs: #BC_ImagePosition:
; Valeurs Possibles: Position de l'image additionnelle, 0 = Haut Gauche, 1 = Haut Centré, 2 = Haut droite, 3 = Gauche Centré,
; 4 = Centré (Par Défaut), 5 = Droite Centré, 6 = Bas Gauche, 7 = Bas Centré, 8 = droite.
; Attributs: #BC_ImageOffSetX et #BC_ImageOffSetY:
; Valeurs possibles: Position de justification de l'image additionnelle en X et Y, Valeur positive = l'image se décale à droite
; pour X et en bas pour Y, Valeur négative = l'image se décale à gauche pour X et en haut pour Y.
; Attributs: #BC_Toogle:
; Valeurs possibles: 0 ou 1.
; Attributs: #BC_Style:
; Styles Boutons possibles: #BC_Style_Default, #BC_Style_Flat, #BC_Style_NoBorder, #BC_Style_3D.
; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; - Retourne le numéro d'identification de l'image (ImageID) qui compose le bouton.
; GetButtonColorImageID(Gadget.i)
; - Retourne le texte du bouton.
; GetButtonColorText(Gadget.i)
; - Retourne le nom de la police du bouton.
; GetButtonColorFontName(Gadget.i)
; - Retourne la taille de la police du bouton.
; GetButtonColorFontSize(Gadget.i)
; - Retourne le style de la police du bouton.
; GetButtonColorFontStyle(Gadget.i)
; - Retourne un attribut du bouton.
; GetButtonColorAttribute(Gadget.i, Attribut.i)
; ------------------------------
; Aide GetButtonColorAttribute:
; ------------------------------
; Attributs possibles: #BC_TextColor, #BC_GradiantTextMode, #BC_GradiantTextColor1, #BC_GradiantTextColor2, #BC_GradiantTextColor3,
; #BC_GradiantTextColor4, #BC_GradiantTextColor5, #BC_TextX, #BC_TextY, #BC_TextPosition;#BC_TextOffSetX,
; #BC_TextOffSetY, #BC_BackColor, #BC_GradiantFondMode, #BC_GradiantBackColor1, #BC_GradiantBackColor2,
; #BC_GradiantBackColor3, #BC_GradiantBackColor4, #BC_GradiantBackColor5, #BC_AngleText, #BC_Cursor, #BC_Image,
; #BC_ImageTransparence, #BC_ImageX, #BC_ImageY, #BC_ImageOffSetX, #BC_ImageOffSetY, #BC_ImagePosition, #BC_Toogle, #BC_Style
; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;}
Enumeration Fenetres
#Fenetre
EndEnumeration
Enumeration Gadgets
#ButonGadgetColor0
#ButonGadgetColor1
#ButonGadgetColor2
#ButonGadgetColor3
#ButonGadgetColor4
#ButonGadgetColor5
#ButonGadgetColor6
#ButonGadgetColor7
#ButonGadgetColor8
#ButonGadgetColor9
#ButonGadgetColor10
#ButonGadgetColor11
#ButonGadgetColor12
#ButonGadgetColor13
#ButonGadgetColor14
#ButonGadgetColor15
#ButonGadgetColor16
#ButonGadgetColor17
#ButonGadgetColor18
#ButonGadgetColor19
#ButonGadgetColor20
EndEnumeration
;{ DataSection
DataSection
Piece_d_or:
; size : 684 bytes
Data.q $0A1A0A0D474E5089,$524448490D000000,$1100000011000000,$476D3B0000000608,$474B6206000000FA,$A0FF00FF00FF0044,$700900000093A7BD,$00130B0000735948,$189C9A0001130B00,$454D497407000000
Data.q $120B1B171408E007,$4939020000CC9D16,$3194ADCB38544144,$724FFFC718511A68,$D04F155A82292742,$A97493A1D9ED06E5,$4B240D6388643A04,$C1A86249926866C6,$43B10B17474B8845,$D2E34BA2E8648706
Data.q $34AA152DE0EA5E0C,$0EBE42F51D520346,$B86E0FB1D4F4EF2F,$BEFBFFFF7BF7DEFB,$62C64AD5611118FB,$899B95B1A68A814B,$2AAA6D2AAA6CF2C8,$11110CBD268CF2B5,$C5B11233CAD40351,$EC5D00DC9980259C
Data.q $0580D401CFB57449,$462C649D84C79F36,$1CC50824A13FF7B9,$75E01FFB0849F1E0,$E8CA6E307688E005,$EFBBD00575E177DD,$82A2DECCE5F5FD22,$92A346795A893D8B,$7A4D00D44C92A34C,$A6C92A3432F49A19
Data.q $DDC4D68A987DABAA,$FD84301FA88F8728,$CF5EBC20386D3CCC,$74E080E182767DA0,$14229E22ED5E98F3,$8EEF4C6C26D73C6A,$778804C00090D7F1,$C3FEA19BA7002BAF,$C58C906F6F8FB05A,$3B3ED0824A0006C8
Data.q $3FAFC0005E579BC1,$B818EC6C6444886B,$0AEBC0ED11C2CD3E,$9283D1BDF093E3C0,$8949EA788655E820,$239A7114FC070EA0,$D6B3DD380CBD41DA,$7A98192E781ADFE8,$FED9BEC5B6451632,$038E62818EC6C19C
Data.q $9BFC825195990494,$2440CBD4865D9FBD,$329B8C59FBDA37C2,$97E701CC55B72094,$0FC788EB6869531D,$C69A2A413F2F511F,$1C1957A4B4D5350A,$01ADFE866E9C0ED1,$29E39BE412824F8F,$54D428C777A62A98
Data.q $3B2FCE76998D3454,$4DD841252066A788,$897E6E9C03FF6103,$7D6CF0CABD0CA6E3,$7D8E964B33A7D71B,$2AF4079A6EC1BA17,$023ADA1ECA2BCB33,$6AB6B7C590F97C00,$0948058BFF9B2C76,$789F17F60AA2E972
Data.q $9600B0DFF4180EE5,$C912C4C04023F320,$1FE4F31FFB0246AB,$6EE9E4CC506B93A8,$444E454900000000
Data.b $AE,$42,$60,$82
Lingot_d_or:
; size : 537 bytes
Data.q $0A1A0A0D474E5089,$524448490D000000,$1600000015000000,$D7832F0000000608,$474B620600000038,$A0FF00FF00FF0044,$700900000093A7BD,$00130B0000735948,$189C9A0001130B00,$454D497407000000
Data.q $1B2320171408E007,$49A60100000EDA11,$2D95ADCB38544144,$34DEDF861450C26F,$596405425B34CC35,$1C310F92AD85921A,$98609BE090431313,$1999D044986FC101,$082721D9899216FC,$D54101510C4C2C16
Data.q $5BDBDEE3F4A274D4,$E4F379EF4D31D920,$441E79E4AD26E79C,$2E7CC7E6C48C34D5,$20EFA8E034E4A521,$D344BA6773A9D553,$E43E022CB034BC30,$AA4BA670EB54C817,$60A9276528EAA997,$EA7C70F855DE0222
Data.q $1E1C9243D4217652,$A387584E1660B202,$FE285C55C60423BE,$A9A877D461AC6DF3,$3C0868DE1750ED09,$F64FBE580040862B,$FAE5439A721D239E,$C00AA259773DC00B,$A72284F09B90E444,$681FB9371B3D0384
Data.q $6031DEC00102A721,$5E5DA5FA1DE133C6,$9AAFACFFE2B3C0F1,$72A10786E4A80A2B,$D486E4A0F75DD35A,$91B8DD9897BAEE06,$D9ECC47F53342153,$AF281AE767856002,$3B8FD66543BF4A9A,$54DD82303DDDDBD4
Data.q $9C238D3A06D6FEFC,$D0606930300081C6,$79CBBB7AC0E0DADF,$22FD82B9AA875996,$EA27127E778B3C61,$8771CB3D638BFC34,$8E55A160AD42D303,$16F75FCFFA7EBDFC,$C15A8152ABE16579,$2EF6B30A49FBF89F
Data.q $40AD5FCE3C047EB6,$D3041870247366BB,$D9AEF32AD02A69FC,$FECE0BF09E79E49C,$B1DE4801FDCD8EEC,$0000006899C0CBDE,$6042AE444E454900
Data.b $82
EndDataSection
;}
UsePNGImageDecoder()
OpenWindow(#Fenetre, 327, 177, 496, 320, "Exemple bouton coloré...", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_TitleBar)
CreateButtonColor(#ButonGadgetColor0, 10, 10, 150, 30, "")
CreateButtonColor(#ButonGadgetColor1, 160, 10, 150, 30, "Bouton coloré simple")
CreateButtonColor(#ButonGadgetColor2, 310, 10, 175, 30, "Bouton coloré simple bleu", RGBA(0, 0, 255, 255))
CreateButtonColor(#ButonGadgetColor3, 10, 40, 150, 30, "Bouton coloré alpha", RGBA(255, 0, 0, 100), RGBA(255, 200, 0, 50))
CreateButtonColor(#ButonGadgetColor4, 160, 40, 150, 30, "", RGBA(0, 0, 0, 0), RGBA(0, 255, 0, 255))
CreateButtonColor(#ButonGadgetColor5, 310, 40, 175, 30, "Bouton coloré + curseur", RGBA(255, 255, 0, 255), RGBA(255, 0, 0, 255), #False, #BC_Cursor_HAND)
CreateButtonColor(#ButonGadgetColor6, 10, 70, 150, 30, "Bouton coloré interrupteur", RGBA(0, 100, 0, 255), RGBA(0, 0, 0, 0), #True)
CreateButtonColor(#ButonGadgetColor7, 160, 70, 150, 30, "Bouton coloré avec font", RGBA(255, 255, 255, 255), RGBA(0, 0, 255, 25))
SetGadgetColorFont(#ButonGadgetColor7, "Times New Roman", 8, #BC_Font_Bold | #BC_Font_Italic)
CreateButtonColor(#ButonGadgetColor8, 310, 70, 175, 30, "Bouton coloré mix 1", RGBA(255, 0, 255, 255), RGBA(0, 255, 255, 25), #True, #BC_Cursor_WAIT)
SetGadgetColorFont(#ButonGadgetColor8, "Arial", 8, #BC_Font_Italic | #BC_Font_Underline)
CreateButtonColor(#ButonGadgetColor9, 10, 100, 300, 30, "Bouton coloré avec un joli texte dégradé horizontal", 0, RGBA(0, 0, 0, 50))
SetButtonColorGradientTextColor(#ButonGadgetColor9, 1, RGBA(0, 0, 255, 255), RGBA(0, 255, 0, 255), RGBA(255, 255, 0, 255), RGBA(255, 0, 0, 255), RGBA(0, 0, 255, 255))
CreateButtonColor(#ButonGadgetColor10, 10, 130, 300, 30, "Bouton coloré avec un joli texte dégradé vertical", 0, RGBA(0, 0, 0, 125))
SetButtonColorGradientTextColor(#ButonGadgetColor10, 2, RGBA(0, 0, 255, 255), RGBA(0, 255, 0, 255), RGBA(255, 255, 0, 255), RGBA(255, 0, 0, 255), RGBA(0, 0, 255, 255))
CreateButtonColor(#ButonGadgetColor11, 310, 100, 175, 60, "Bouton coloré + icône", RGBA(0, 0, 255, 100))
SetButtonColorAttribute(#ButonGadgetColor11, #BC_Image, CatchImage(#PB_Any, ?Lingot_d_or))
SetButtonColorAttribute(#ButonGadgetColor11, #BC_ImageTransparence, 75)
SetButtonColorAttribute(#ButonGadgetColor11, #BC_ImagePosition, 3)
SetButtonColorAttribute(#ButonGadgetColor11, #BC_ImageOffSetX, 10)
SetButtonColorAttribute(#ButonGadgetColor11, #BC_TextOffSetX, 15)
CreateButtonColor(#ButonGadgetColor12, 10, 160, 300, 30, "Bouton coloré avec un joli fond dégradé horizontal", RGBA(0, 0, 0, 112), RGBA(0, 0, 0, 100))
SetButtonColorGradientBackColor(#ButonGadgetColor12, 1, RGBA(0, 0, 255, 255), RGBA(0, 255, 0, 255), RGBA(255, 255, 0, 255), RGBA(255, 0, 0, 255), RGBA(0, 0, 255, 255))
CreateButtonColor(#ButonGadgetColor13, 10, 190, 300, 30, "Bouton coloré avec un joli fond dégradé vertical", RGBA(0, 0, 0, 112), RGBA(0, 0, 0, 100))
SetButtonColorGradientBackColor(#ButonGadgetColor13, 2, RGBA(0, 0, 255, 255), RGBA(0, 255, 0, 255), RGBA(255, 255, 0, 255), RGBA(255, 0, 0, 255), RGBA(0, 0, 255, 255))
CreateButtonColor(#ButonGadgetColor14, 310, 160, 175, 60, "Bouton coloré + texte pivoté", RGBA(255, 0, 0, 125))
SetButtonColorAttribute(#ButonGadgetColor14, #BC_AngleText, 12)
CreateButtonColor(#ButonGadgetColor15, 10, 220, 300, 30, "Bouton coloré + texte cadré à droite", RGBA(0, 0, 255, 255), RGBA(0, 255, 0, 75))
SetButtonColorAttribute(#ButonGadgetColor15, #BC_TextPosition, 5)
SetButtonColorAttribute(#ButonGadgetColor15, #BC_TextOffSetX, -5)
CreateButtonColor(#ButonGadgetColor16, 310, 220, 175, 30, "Bouton coloré désactivé", RGBA(100, 100, 0, 150))
DisableGadget(#ButonGadgetColor16, #True)
CreateButtonColor(#ButonGadgetColor17, 11, 251, 150, 28, "Bouton coloré type flat", RGBA(255, 255, 255, 255), RGBA(255, 0, 0, 255))
SetButtonColorAttribute(#ButonGadgetColor17, #BC_Style, #BC_Style_Flat)
CreateButtonColor(#ButonGadgetColor18, 163, 251, 146, 28, "Bouton coloré type 3D", RGBA(255, 0, 0, 255), RGBA(255, 200, 0, 255))
SetButtonColorAttribute(#ButonGadgetColor18, #BC_Style, #BC_Style_3D)
CreateButtonColor(#ButonGadgetColor19, 311, 251, 173, 55, "Bouton coloré mix 2", 0, RGBA(0, 0, 0, 255))
SetButtonColorAttribute(#ButonGadgetColor19, #BC_Cursor, #BC_Cursor_HAND)
SetGadgetColorFont(#ButonGadgetColor19, "Times New Roman", 9, #BC_Font_Bold | #BC_Font_Italic | #BC_Font_Underline)
SetButtonColorAttribute(#ButonGadgetColor19, #BC_Style, #BC_Style_Flat)
SetButtonColorGradientTextColor(#ButonGadgetColor19, 2, RGBA(255, 0, 0, 255), RGBA(255, 150, 0, 255), RGBA(255, 0, 0, 255), -1, -1)
SetButtonColorGradientBackColor(#ButonGadgetColor19, 2, RGBA(0, 0, 255, 255), RGBA(0, 255, 0, 255), RGBA(255, 255, 0, 255), RGBA(255, 0, 0, 255), RGBA(0, 0, 255, 255))
SetButtonColorAttribute(#ButonGadgetColor19, #BC_Image, CatchImage(#PB_Any, ?Piece_d_or))
SetButtonColorAttribute(#ButonGadgetColor19, #BC_ImagePosition, 5)
SetButtonColorAttribute(#ButonGadgetColor19, #BC_ImageOffSetX, -15)
SetButtonColorAttribute(#ButonGadgetColor19, #BC_ImageOffSetY, 10)
SetButtonColorAttribute(#ButonGadgetColor19, #BC_TextPosition, 4)
SetButtonColorAttribute(#ButonGadgetColor19, #BC_TextOffSetX, 15)
SetButtonColorAttribute(#ButonGadgetColor19, #BC_TextOffSetY, 10)
CreateButtonColor(#ButonGadgetColor20, 10, 280, 300, 30, "Bouton coloré type sans bordure", RGBA(255, 255, 255, 255), RGBA(0, 0, 255, 100))
SetButtonColorAttribute(#ButonGadgetColor20, #BC_Style, #BC_Style_NoBorder)
Repeat ; Départ de la boucle des évènements.
Event = WaitWindowEvent(1) ; Cette ligne attend pendant (Minuteur) qu'un évènement soit reçu par la fenêtre.
EventGadget = EventGadget(); Pour savoir sur quel gadget s'est produit l'évènement.
Select Event
Case #PB_Event_Gadget
Select EventGadget
Case 0
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow ; Fin de la boucle des évènements.