Sample TreeList tree script

From MediaMonkey Wiki
Jump to navigation Jump to search
' This scripts shows how to use SDBUITreeList control to show and control a tree of items. 

Dim lbl, VT

Sub OnStartUp()
  Dim Form

  Set Form = SDB.UI.NewForm
  Form.Common.SetRect 100, 100, 500, 440
  Form.BorderStyle = 3
  Form.FormPosition = 4
  Form.StayOnTop = True
  Form.Caption = "Test"

  Set lbl = SDB.UI.NewLabel(Form)
  lbl.Common.SetRect 10, 10, 400, 15

  Set VT = SDB.UI.NewTreeList(Form)
  VT.Common.SetRect 10, 30, 400, 300
  Set node = VT.AddNode(Nothing)
  node.UserText = "My first parent"
  Set node2 = VT.AddNode(Nothing)
  node2.UserText = "My second parent"
  Set node3 = VT.AddNode(node)
  Set node4 = VT.AddNode(node)
  node3.CheckType = 3
  node4.CheckType = 3
  node4.CheckState = 1
  node.Expanded = True
  Set node5 = VT.AddNode(node2)
  node5.CheckType = 2
  Script.RegisterEvent VT, "OnFocusChanged", "VTFocusChanged"
  Script.RegisterEvent VT, "OnExpanding", "VTExpanding"
  Script.RegisterEvent VT, "OnGetText", "VTGetText"

  Set Btn = SDB.UI.NewButton(Form)
  Btn.Common.SetRect 10, 350, 80, 25
  Btn.Caption = "Add sublevel"
  Script.RegisterEvent Btn, "OnClick", "BtnClick"

  Form.Common.Visible = True

  SDB.Objects("Form") = Form
End Sub

Sub VTFocusChanged( Node, Column)
  lbl.Caption = Node.Index & " - " & Column
End Sub

Sub VTExpanding( Node)
  VT.AddNode( node)
  VT.AddNode( node)
  VT.AddNode( node)
End Sub

Function VTGetText( Node, Column)
  If node.UserText<>"" Then
    VTGetText = node.UserText
  Else
    VTGetText = "Node index: " & node.index
  End If
End Function

Sub BtnClick
  VT.FocusedNode.HasChildren = True
  VT.Invalidate
End Sub