How can I unfold a TreeGadget?
Posted: Sun Jun 15, 2025 10:27 am
How can I unfold all nodes of a TreeGadget?
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
Procedure OnExpandAll()
Protected i
For i = 0 To CountGadgetItems(0) - 1
SetGadgetItemState(0, i, #PB_Tree_Expanded)
Next
EndProcedure
Procedure OnCollapseAll()
Protected i
For i = 0 To CountGadgetItems(0) - 1
SetGadgetItemState(0, i, #PB_Tree_Collapsed)
Next
EndProcedure
If OpenWindow(0, 0, 0, 355, 180, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TreeGadget(0, 10, 10, 160, 160)
For a = 0 To 10
AddGadgetItem (ID, -1, "Normal Item "+Str(a), 0, 0) ; if you want to add an image, use
AddGadgetItem (ID, -1, "Node "+Str(a), 0, 0) ; ImageID(x) as 4th parameter
AddGadgetItem(ID, -1, "Sub-Item 1", 0, 1) ; These are on the 1st sublevel
AddGadgetItem(ID, -1, "Sub-Item 2", 0, 1)
AddGadgetItem(ID, -1, "Sub-Item 3", 0, 1)
AddGadgetItem(ID, -1, "Sub-Item 4", 0, 1)
AddGadgetItem (ID, -1, "File "+Str(a), 0, 0) ; sublevel 0 again
Next
ButtonGadget(1, 180, 10, 125, 25, "Expand All")
ButtonGadget(2, 180, 40, 125, 25, "Collapse All")
BindGadgetEvent(1, @OnExpandAll())
BindGadgetEvent(2, @OnCollapseAll())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Code: Select all
Procedure OnExpandAll()
Protected i
SendMessage_(GadgetID(0),#WM_SETREDRAW,#False,0)
For i = 0 To CountGadgetItems(0) - 1
SetGadgetItemState(0, i, #PB_Tree_Expanded)
Next
SendMessage_(GadgetID(0),#WM_SETREDRAW,#True,0)
EndProcedure
Code: Select all
Procedure OnCollapseAll()
Protected i
SendMessage_(GadgetID(0),#WM_SETREDRAW,#False,0)
For i = 0 To CountGadgetItems(0) - 1
SetGadgetItemState(0, i, #PB_Tree_Collapsed)
Next
SendMessage_(GadgetID(0),#WM_SETREDRAW,#True,0)
EndProcedure
Code: Select all
CocoaMessage(0, GadgetID(tree), "expandItem:", #nil, "expandChildren:", #YES)
You know that it hurts my feelings (like pineapple pizza) but I forgive you