Another hit from Shardik
Thanks Shardik
Next
Maybe cross platform, who knows
Tested with PB 6.xx x86 Windows 11 x64
Code: Select all
If OpenWindow(0, 0, 0, 400, 600, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TreeGadget(0, 10, 10, 380, 580)
For a = 0 To 10
AddGadgetItem (0, -1, "Normal Item "+Str(a), 0, 0)
AddGadgetItem (0, -1, "Node "+Str(a), 0, 0)
AddGadgetItem(0, -1, "Sub-Item 1", 0, 1)
AddGadgetItem(0, -1, "Sub-Item 2", 0, 1)
AddGadgetItem(0, -1, "Sub-Item 3", 0, 1)
AddGadgetItem(0, -1, "Sub-Item 4", 0, 1)
AddGadgetItem (0, -1, "File "+Str(a), 0, 0)
Next
; LoadFont(0,"tahoma",14)
; SetGadgetFont(0,FontID(0))
; StartDrawing(WindowOutput(0))
; DrawingFont(FontID(0))
; rowheight = TextHeight("Q")+6
; StopDrawing()
; Debug rowheight
rowheight = 22 ;Default Font
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_LeftClick
yy = WindowMouseY(0)
trim = Mod(yy,rowheight)
If trim > rowheight/2
y = yy-trim
Else
y = yy-trim-rowheight
EndIf
Debug y
EndSelect
EndSelect
EndSelect
Until Quit = 1
EndIf
For Windows :
Code: Select all
If OpenWindow(0, 0, 0, 400, 600, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TreeGadget(0, 10, 10, 380, 580)
For a = 0 To 10
AddGadgetItem (0, -1, "Normal Item "+Str(a), 0, 0)
AddGadgetItem (0, -1, "Node "+Str(a), 0, 0)
AddGadgetItem(0, -1, "Sub-Item 1", 0, 1)
AddGadgetItem(0, -1, "Sub-Item 2", 0, 1)
AddGadgetItem(0, -1, "Sub-Item 3", 0, 1)
AddGadgetItem(0, -1, "Sub-Item 4", 0, 1)
AddGadgetItem (0, -1, "File "+Str(a), 0, 0)
Next
r.RECT
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_LeftClick
r\left = GadgetItemID(0, GetGadgetState(0))
SendMessage_(GadgetID(0),#TVM_GETITEMRECT,1,@r)
Debug r\top
EndSelect
EndSelect
EndSelect
Until Quit = 1
EndIf