The piece of code was not intended to be functional and PB_Gadget_Objects was missing in import.
Code: Select all
Import ""
PB_Object_EnumerateStart(PB_Objects)
PB_Object_EnumerateNext(PB_Objects, *ID.Integer )
PB_Object_EnumerateAbort(PB_Objects)
PB_Gadget_Objects
EndImport
Procedure SetExplorerTheme(Theme.s)
Protected Gadget
PB_Object_EnumerateStart(PB_Gadget_Objects)
While PB_Object_EnumerateNext(PB_Gadget_Objects, @Gadget)
SetWindowTheme_(GadgetID(Gadget), @Theme, 0)
Wend
PB_Object_EnumerateAbort(PB_Gadget_Objects)
EndProcedure
Procedure ChangeTheme(DarkTheme = #False)
If DarkTheme And OSVersion() >= #PB_OS_Windows_10
BackGroundColor = $404040
FrontColor = #White
SetExplorerTheme("DarkMode_Explorer")
Else
BackGroundColor = $FFFFFF
FrontColor = #Black
SetExplorerTheme("Explorer")
EndIf
SetWindowColor(0, BackGroundColor)
SetGadgetColor(1, #PB_Gadget_BackColor, BackGroundColor)
SetGadgetColor(1, #PB_Gadget_FrontColor, FrontColor)
SetGadgetColor(2, #PB_Gadget_BackColor, BackGroundColor)
SetGadgetColor(2, #PB_Gadget_FrontColor, FrontColor)
EndProcedure
Define Event
If OpenWindow(0, 100, 100, 300, 230, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 5, 5, 290, 25, "Change Theme", #PB_Button_Toggle)
ListIconGadget(1, 5, 30, 290, 120, "Name", 270, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
AddGadgetItem(1, -1, "Line 1")
AddGadgetItem(1, -1, "Line 2")
AddGadgetItem(1, -1, "Line 3")
SetGadgetState(1, 1)
TreeGadget(2, 5, 150, 290, 75, #PB_Tree_AlwaysShowSelection)
AddGadgetItem(2, -1, "Node", 0, 0)
AddGadgetItem(2, -1, "Sub-element", 0, 1)
AddGadgetItem(2, -1, "Element", 0, 0)
SetGadgetItemState(2, 0, #PB_Tree_Expanded)
SetGadgetState(2, 1)
ChangeTheme()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 0
ChangeTheme(GetGadgetState(0))
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf