Page 1 of 1

QtScript TreeGadget events

Posted: Sun Mar 17, 2019 11:44 am
by wombats
Hi,

How can we determine which item the event is from? GetGadgetState() doesn't return the right position in all cases.

Code: Select all

Runtime Procedure QtSignalHandler()
  MessageRequester("", "Item collapsed")
EndProcedure  

If OpenWindow(0, 0, 0, 320, 250, "FrameGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  TreeGadget(0, 10,  10, 300, 230)
  
  AddGadgetItem(0, -1, "Folder")
  AddGadgetItem(0, -1, "Item", 0, 1)
  AddGadgetItem(0, -1, "Folder", 0, 1)
  AddGadgetItem(0, -1, "Item", 0, 2)
  AddGadgetItem(0, -1, "Item", 0, 0)
  
  Define i
  For i = 0 To CountGadgetItems(0) - 1
    If GetGadgetItemText(0, i) = "Folder"
      SetGadgetItemState(0, i, #PB_Tree_Expanded)
    EndIf
  Next
  
  QtScript(~"gadget(0).itemCollapsed.connect(function() { runtime.call(\"QtSignalHandler()\"); })")    
  
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf