et çà marche.
Merci à toute l'équipe Purebasic pour PB4.0, qui respecte largement ses engagements.
. Bug graphique avec ListIconGadget() + #PB_Gadget_LineColor.
. EditorGadget() + #PB_Gadget_FrontColor : La couleur est perdu après un SetGadgetFont()
. HyperLinkGadget() : Le fond n'est pas transparent comme spécifié dans le 'readme'
Code : Tout sélectionner
;-
Enumeration ; Gadgets
#gPanel
#gContainer1
#gString1
#gString2
#gString3
#gEditor
#gContainer2
#gText
#gHyperLink
#gComboBox
#gContainer3
#gListIcon
#gMax
EndEnumeration
;-
Procedure.l GUI_Create()
; Create the window and the graphical interface
If OpenWindow(0,0,0,640,480,#PB_Window_Invisible|#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget,"Test")
; Create the Menu
If CreateMenu(0,WindowID(0))
MenuTitle("Project")
MenuItem(1, "Open" +Chr(9)+"Ctrl+O")
MenuItem(2, "Save" +Chr(9)+"Ctrl+S")
MenuItem(3, "Save as"+Chr(9)+"Ctrl+A")
MenuBar()
MenuItem(4, "Close" +Chr(9)+"Ctrl+C")
EndIf
; Create a PopupMenu
If CreatePopupMenu(1)
EndIf
; Create the ToolBar
If CreateToolBar(0,WindowID(0))
ToolBarStandardButton(0,#PB_ToolBarIcon_New)
ToolBarStandardButton(1,#PB_ToolBarIcon_Open)
ToolBarStandardButton(2,#PB_ToolBarIcon_Save)
EndIf
; Create the Statusbar
If CreateStatusBar(0,WindowID(0))
AddStatusBarField(250)
AddStatusBarField(1000)
EndIf
; Create the GadgetList
If CreateGadgetList(WindowID(0))
If PanelGadget(#gPanel,10,30,620,400)
AddGadgetItem(#gPanel,-1,"Page 1")
If ContainerGadget(#gContainer1,5,5,350,350,#PB_Container_Single)
StringGadget(#gString1,10,10,200,22,"StringGadget()")
StringGadget(#gString2,10,40,200,22,"StringGadget()")
StringGadget(#gString3,10,70,200,22,"StringGadget()")
EditorGadget(#gEditor,10,100,200,200)
SetGadgetText(#gEditor,"EditorGadget()"+#CRLF$+"EditorGadget()")
CloseGadgetList()
EndIf
AddGadgetItem(#gPanel,-1,"Page 2")
If ContainerGadget(#gContainer2,5,5,350,350,#PB_Container_Single)
TextGadget(#gText,10,10,200,22,"TextGadget()")
HyperLinkGadget(#gHyperLink,10,40,200,22,"HyperLinkGadget()",$00ffff,#PB_HyperLink_Underline)
CloseGadgetList()
EndIf
AddGadgetItem(#gPanel,-1,"Page 3")
If ContainerGadget(#gContainer3,5,5,350,350,#PB_Container_Single)
ListIconGadget(#gListIcon,10,10,200,200,"A",20,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
For i=2 To 25
AddGadgetColumn(#gListIcon,i,Chr(65+i),20)
Next
For i=1 To 99
AddGadgetItem(#gListIcon,i,Str(i))
Next
CloseGadgetList()
EndIf
EndIf
EndIf
EndIf
ProcedureReturn #True
EndProcedure
Procedure.l GUI_Color()
; Scanning for desktop properties
If ExamineDesktops()
If DesktopDepth(0) < 16
ProcedureReturn #False
EndIf
EndIf
; Colors of the graphical interface
a.l = $000000
b.l = $ffffff
c.l = $e0e0e0
d.l = $00e0e0
e.l = $00e000
f.l = $d06060
; Colorize the window
SetWindowColor(0,c)
; Colorize the gadgetlist
For i=0 To #gMax-1
If IsGadget(i)
Select GadgetType(i)
Case #PB_GadgetType_Container
SetGadgetColor(i,#PB_Gadget_BackColor,c)
Case #PB_GadgetType_String, #PB_GadgetType_Editor
SetGadgetColor(i,#PB_Gadget_FrontColor,f)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_Text
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,c)
Case #PB_GadgetType_ListIcon
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
SetGadgetColor(i,#PB_Gadget_LineColor,a)
Case #PB_GadgetType_ListView
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_HyperLink
SetGadgetColor(i,#PB_Gadget_FrontColor,c)
Case #PB_GadgetType_ScrollArea
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_Calendar, #PB_GadgetType_Date
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
SetGadgetColor(i,#PB_Gadget_TitleBackColor,a)
SetGadgetColor(i,#PB_Gadget_TitleFrontColor,d)
SetGadgetColor(i,#PB_Gadget_GreyTextColor,a)
Case #PB_GadgetType_Tree
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
SetGadgetColor(i,#PB_Gadget_LineColor,a)
Case #PB_GadgetType_ExplorerList
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_ExplorerTree
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_ProgressBar
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_Spin
SetGadgetColor(i,#PB_Gadget_FrontColor,a)
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_MDI
SetGadgetColor(i,#PB_Gadget_BackColor,d)
Case #PB_GadgetType_Splitter, #PB_GadgetType_ScrollBar, #PB_GadgetType_TrackBar, #PB_GadgetType_ComboBox, #PB_GadgetType_Panel
; Not Supported
Default
; Unknown Gadget Type
EndSelect
EndIf
Next
ProcedureReturn #True
EndProcedure
Procedure.l GUI_Font()
; Load Fonts
LoadFont(0,"Arial", 8,#Null)
LoadFont(1,"Arial", 8,#PB_Font_Bold)
LoadFont(2,"Arial",14,#PB_Font_Bold)
; Apply to the graphical interface
For i=0 To #gMax-1
If IsGadget(i)
Select GadgetType(i)
Case #PB_GadgetType_Button: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Calendar: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_CheckBox: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_ComboBox: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Container : SetGadgetFont(i,FontID(0))
Case #PB_GadgetType_Date: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Editor: SetGadgetFont(i,FontID(2))
Case #PB_GadgetType_ExplorerList: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_ExplorerTree: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_ExplorerCombo: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Frame3D: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_HyperLink: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Image: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_IPAddress: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_ListIcon: SetGadgetFont(i,FontID(0))
Case #PB_GadgetType_ListView: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_MDI: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Option: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Panel: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_ProgressBar: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_ScrollArea: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_ScrollBar: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Spin: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Splitter: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_String: SetGadgetFont(i,FontID(2))
Case #PB_GadgetType_Text: SetGadgetFont(i,FontID(2))
Case #PB_GadgetType_TrackBar: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Tree: SetGadgetFont(i,FontID(1))
Case #PB_GadgetType_Web: SetGadgetFont(i,FontID(1))
Default
EndSelect
EndIf
Next
ProcedureReturn #True
EndProcedure
Procedure.l GUI_Main()
; Main Loop
HideWindow(0,#False)
Repeat
; Process events
Select WaitWindowEvent(50)
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Menu
Debug EventMenu()
Case #PB_Event_Gadget
Debug EventGadget()
Case #WM_MOUSEMOVE
StatusBarText(0,1,"Mouse("+Str(WindowMouseX(0))+","+Str(WindowMouseY(0))+")")
EndSelect
; After events
StatusBarText(0,0,FormatDate("%dd/%mm/%yyyy, %hh:%ii:%ss",Date()))
ForEver
CloseWindow(0)
ProcedureReturn #True
EndProcedure
;-
If GUI_Create()
GUI_Color()
GUI_Font() ; <-------- La couleur #PB_Gadget_FrontColor de l'EditorGadget() est perdue.
GUI_Main()
EndIf
;-
If GUI_Create()
GUI_Font() ; <-------- Là non c'est ok.
GUI_Color()
GUI_Main()
EndIf
;-