Sélecteur de couleur dans un ComboBoxGadget
Publié : dim. 19/févr./2012 21:31
Salut,
Vu qu'on est en plein dans les sélecteurs de couleur
http://www.purebasic.fr/french/viewtopi ... =6&t=12596
Voici une petite idée. Qu'en pensez-vous ?
Vu qu'on est en plein dans les sélecteurs de couleur
http://www.purebasic.fr/french/viewtopi ... =6&t=12596
Voici une petite idée. Qu'en pensez-vous ?
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4.60
; Explication du programme :
; Sélection de couleur
; Création de la fenêtre
If OpenWindow(0, 0, 0, 500, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
End
EndIf
Gadget_ListeCouleur = ComboBoxGadget(#PB_Any, 10, 10, 48, 24, #PB_ComboBox_Image)
#CouleurStandard_Pas_NoirBlanc = 32
#CouleurStandard_Pas_Couleur = 64
#CouleurStandard_Marqueur = "-"
Structure CouleurStandardInfo
Couleur.l
Image.l
Marque.b
EndStructure
NewList CouleurStandard.CouleurStandardInfo()
; Création de la liste des couleurs
; Nuance de gris
For i = 0 To 255 Step #CouleurStandard_Pas_NoirBlanc
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, i, i)
If i = 128
CouleurStandard()\Marque = 1
EndIf
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = $FFFFFF
; Rouge
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, 0, 0)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, 0, 0) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, i, i)
Next
; Rose
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, 0, i / 2)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, 0, 128) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, i, 128 + i / 2)
Next
; Mauve
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, 0, i)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, 0, 255) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, i, 255)
Next
; Violet
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i / 2, 0, i)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(128, 0, 255) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(128 + i / 2, i, 255)
Next
; Bleu
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, 0, i)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, 0, 255) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, i, 255)
Next
; Bleu ciel
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, i / 2, i)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, 128, 255) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, 128 + i / 2, 255)
Next
; Cyan
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, i, i)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, 255, 255) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, 255, 255)
Next
; Vert d'eau
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, i, i / 2)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, 255, 128) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, 255, 128 + i / 2)
Next
; Vert
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, i, 0)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(0, 255, 0) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, 255, i)
Next
; Vert clair
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i / 2, i, 0)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(128, 255, 0) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(128 + i / 2, 255, i)
Next
; Jaune
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, i, 0)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, 255, 0) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, 255, i)
Next
; Orange
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(i, i / 2, 0)
Next
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, 128, 0) : CouleurStandard()\Marque = 1
For i = #CouleurStandard_Pas_Couleur To 255 Step #CouleurStandard_Pas_Couleur
AddElement(CouleurStandard()) : CouleurStandard()\Couleur = RGB(255, 128 + i / 2, i)
Next
; Remplissage de la liste des couleur
ForEach CouleurStandard()
CouleurStandard()\Image = CreateImage(#PB_Any, 16, 16, 24)
StartDrawing(ImageOutput(CouleurStandard()\Image))
Box(0, 0, 16, 16, CouleurStandard()\Couleur)
StopDrawing()
If CouleurStandard()\Marque
AddGadgetItem(Gadget_ListeCouleur, -1, #CouleurStandard_Marqueur, ImageID(CouleurStandard()\Image))
Else
AddGadgetItem(Gadget_ListeCouleur, -1, " ", ImageID(CouleurStandard()\Image))
EndIf
Next
Gadget_AffichageSelection = TextGadget(#PB_Any, 10, 40, 200, 16, "")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget() ; Gadgets
Case Gadget_ListeCouleur
Selection = GetGadgetState(Gadget_ListeCouleur)
If Selection >= 0
SelectElement(CouleurStandard(), Selection)
SetGadgetText(Gadget_AffichageSelection, "RGB(" + Str(Red(CouleurStandard()\Couleur)) + ", " + Str(Green(CouleurStandard()\Couleur)) + ", " + Str(Blue(CouleurStandard()\Couleur)) + ")" + " ; " + "$" + RSet(Hex(CouleurStandard()\Couleur), 6, "0"))
Else
SetGadgetText(Gadget_AffichageSelection, "")
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow