QtScript TreeGadget events

Linux specific forum
wombats
Enthusiast
Enthusiast
Posts: 664
Joined: Thu Dec 29, 2011 5:03 pm

QtScript TreeGadget events

Post 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