require 'iuplua'
require 'iupluacontrols'
tree = iup.tree{}
f = iup.dialog{tree; title = "Tree Test"}
f:map()

function assoc (idx,value)
    iup.TreeSetTableId(tree,idx,{value})
end

function addbranch(self,label,value)
    self.addbranch = label
    assoc(1,value or label)
end

function addleaf(self,label,value)
    self.addleaf1 = label
    assoc(2,value or label)
end

tree.name = "Animals"
addbranch(tree,"Birds")
addbranch(tree,"Crustaceans")
addleaf(tree,"Shrimp")
addleaf(tree,"Lobster")
addbranch(tree,"Mammals")
addleaf(tree,"Horse")
addleaf(tree,"Whale")

function dump (tp,id)
    local t = iup.TreeGetTable(tree,id)
    print(tp,id,t and t[1])
end


function tree:branchopen_cb(id)
    dump('open',id)
end

function tree:selection_cb (id,woz)
    if woz == 1 then dump('select',id) end
end

f:show()

iup.MainLoop()
