-- ~~| Tree |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
localType="DiesalTree"
localVersion=4
---@class DTree : Diesal.GUI.Object.Tree
-- ~~| Tree Stylesheets |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
localStylesheet={
["content-background"]={
type="texture",
color="ffffff",
alpha=0.01,
},
}
-- ~~| Tree Locals |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
localfunctioncollapse(branch)
ifbranch.Collapsethen
branch:Collapse()
end
ifbranch.childrenandnext(branch.children)then
fori=1,#branch.childrendo
collapse(branch.children[i])
end
end
end
-- ~~| Tree Methods |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---@class Diesal.GUI.Tree.Methods
localmethods={
["OnAcquire"]=function(self)
-- self:SetStylesheet(Stylesheet)
-- self:SetStylesheet(wireFrameSheet)
self:ApplySettings()
self:Show()
end,
["OnRelease"]=function(self)end,
["ApplySettings"]=function(self)end,
["UpdateHeight"]=function(self)
localheight=0
fori=1,#self.childrendo
height=height+self.children[i].frame:GetHeight()
end
height=DiesalTools.Round(height)
ifself.settings.height~=heightthen
self.settings.height=height
self:SetHeight(height)
self:FireEvent("OnHeightChange",height)
end
end,
["CollapseAll"]=function(self,subBranches)
ifsubBranchesthen
collapse(self)
else
fori=1,#self.childrendo
self.children[i]:Collapse()
end
end
end,
["ExpandAll"]=function(self)
fori=1,#self.childrendo
self.children[i]:Expand()
end
end,
}
---@class DiesalTree : Diesal.GUI.Object.Tree
-- ~~| Tree Constructor |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~