You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.1 KiB

---@type Diesal.GUI
local DiesalGUI = LibStub("DiesalGUI-2.0")
---@type Diesal.Tools
local DiesalTools = LibStub("DiesalTools-2.0")
---@type Diesal.Style
local DiesalStyle = LibStub("DiesalStyle-2.0")
local Type = "DiesalAccordian"
local Version = 2
---@type Diesal.Style.Stylesheet
local Stylesheet = {
["frame-background"] = {
type = "texture",
color = "FF0000",
},
}
---@class Diesal.GUI.Accordian.Methods
local methods = {
---@param self DiesalAccordian
OnAcquire = function(self)
-- self:SetStylesheet(Stylesheet)
-- self:SetStylesheet(wireFrameSheet)
self:ResetSettings(true)
self:Show()
end,
---@param self DiesalAccordian
OnRelease = function(self) end,
---@param self DiesalAccordian
ApplySettings = function(self) end,
---@param self DiesalAccordian
CollapseAll = function(self)
for i = 1, #self.children do
self.children[i]:Collapse()
end
end,
---@param self DiesalAccordian
ExpandAll = function(self)
for i = 1, #self.children do
self.children[i]:Expand()
end
end,
}
---@class DiesalAccordian : Diesal.GUI.Object.Accordian
local function Constructor()
---@class Diesal.GUI.Object.Accordian : Diesal.GUI.ObjectBase, Diesal.GUI.Accordian.Methods
---@field content Frame
---@field children DiesalAccordianSection[]
local self = DiesalGUI:Create(Type, true)
self.isContainer = true
---@class SelfFrame
local frame = CreateFrame("Frame", nil, DiesalGUI.UIParent)
self.frame = frame
self.defaults = {}
-- Events
-- OnAcquire, OnRelease, OnHeightSet, OnWidthSet
-- OnHeightChange
local content = self:CreateRegion("Frame", "content", frame)
content:SetAllPoints()
-- ~~ Methods ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
self:SetMethods(methods)
--[[ for method, func in pairs(methods) do
self[method] = func
end ]]
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
self:SetObj(self.frame)
return self
end
DiesalGUI:RegisterObjectConstructor(Type, Constructor, Version)