Code: Select all
Procedure TreeGadgetItemNumber(gadget, itemID)
count = CountGadgetItems(gadget)
For i = 0 To count
If GadgetItemID(gadget, i) = itemID
ProcedureReturn i
EndIf
Next i
ProcedureReturn -1
EndProcedure
Procedure.s GetGadgetTree(treeGadget, index, seperator$)
hParent = SendMessage_(GadgetID(treeGadget), #TVM_GETNEXTITEM,
#TVGN_PARENT, GadgetItemID(treeGadget, index))
If hParent
ProcedureReturn GetGadgetTree(treeGadget, TreeGadgetItemNumber(treeGadget, hParent),
seperator$) + seperator$ + GetGadgetItemText(treeGadget, index, 0)
Else
ProcedureReturn GetGadgetItemText(treeGadget, index, 0)
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 200, 200, "Get Tree Hierarchy",
#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(1, 10, 10, 180, 20, "double-click to display hierarchy...")
TreeGadget(0, 10, 35, 180, 155)
AddGadgetItem (0, -1, "Level 1.1", 0, 0)
AddGadgetItem (0, -1, "Level 1.2 Parent", 0, 0)
AddGadgetItem(0, -1, "Level 2.1", 0, 1)
AddGadgetItem(0, -1, "Level 2.2", 0, 1)
AddGadgetItem(0, -1, "Level 2.3 Parent", 0, 1)
AddGadgetItem(0, -1, "Level 3.1", 0, 2)
AddGadgetItem(0, -1, "Level 3.2", 0, 2)
AddGadgetItem(0, -1, "Level 3.3", 0, 2)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
appQuit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_LeftDoubleClick
Debug GetGadgetTree(0, GetGadgetState(0), ",")
EndSelect
EndSelect
EndSelect
Until appQuit = 1
EndIf
Quite simple actually. Do you think there is really a new command needed for this?