Hello Guys !
Have a way to detect if the user clicked on an item or clicked on the white area?
[ TreeGadget ] How to detect if the user clicked on an item or clicked on the white area?
- skinkairewalker
- Enthusiast
- Posts: 627
- Joined: Fri Dec 04, 2015 9:26 pm
Re: [ TreeGadget ] How to detect if the user clicked on an item or clicked on the white area?
Hi
For Windows
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,#PB_Tree_CheckBoxes)
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)
GetCursorPos_(p.POINT)
ScreenToClient_ (GadgetID(0), p)
If p\x > r\right Or p\x < r\left Or p\y > r\bottom Or p\y < r\top
Debug "Out"
Else
Debug GetGadgetState(0)
EndIf
EndSelect
EndSelect
EndSelect
Until Quit = 1
EndIf
Egypt my love
- skinkairewalker
- Enthusiast
- Posts: 627
- Joined: Fri Dec 04, 2015 9:26 pm
Re: [ TreeGadget ] How to detect if the user clicked on an item or clicked on the white area?
You are welcome
You can also change to for speed
You can also change to for speed
Code: Select all
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)
GetCursorPos_(p.POINT)
ScreenToClient_ (GadgetID(0), p)
If PtInRect_(r,p\y << 32 + p\x)
Debug GetGadgetState(0)
Else
Debug "Out"
EndIf
EndSelect
Egypt my love