Quantcast
local NAME, ADDON = ...

ADDON.container = {}
ADDON.container.__index = ADDON.container

local container = ADDON.container
setmetatable(container, {
    __call = function(tbl, name, parent)
        local frame = CreateFrame('FRAME', 'DJBagContainer_' .. (name or ADDON.uuid()), parent or UIParent)
        frame.name = name

        for key, value in pairs(tbl) do
            frame[key] = value
        end

        frame:Setup()

        return frame
    end
})

function container:Setup()
    local settings = ADDON.settings.container

    self:SetBackdrop({
        -- TODO remove all hardcoded shit
        bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
        edgeFile = "Interface\\Buttons\\WHITE8x8",
        tile = true,
        tileSize = 16,
        edgeSize = settings.borderWidth,
    })
    self:SetBackdropColor(unpack(settings.backgroundColor))
    self:SetBackdropBorderColor(unpack(settings.borderColor))
end