local Fontsize = mUI:NewModule("mUI.Modules.Actionbars.Fontsize", "AceHook-3.0")

function Fontsize:OnInitialize()
    -- Load Database
    Fontsize.db = {
        actionbars = mUI.db.profile.actionbars,
        general = mUI.db.profile.general
    }

    -- Tables
    if mUI:IsClassic() then
        Fontsize.Bars = {
            _G["MultiBarBottomLeft"],
            _G["MultiBarBottomRight"],
            _G["MultiBarRight"],
            _G["MultiBarLeft"],
        }
    else
        Fontsize.Bars = {
            _G["MultiBarBottomLeft"],
            _G["MultiBarBottomRight"],
            _G["MultiBarRight"],
            _G["MultiBarLeft"],
            _G["MultiBar5"],
            _G["MultiBar6"],
            _G["MultiBar7"],
        }
    end

    -- Functions
    function Fontsize:Update()
        for _, Bar in pairs(Fontsize.Bars) do
            for i = 1, 12 do
                local Button = _G[Bar:GetName() .. "Button" .. i]
                local Name = Button:GetName()
                local HotKey = _G[Name .. "HotKey"]
                local Count = _G[Name .. "Count"]

                if Fontsize.db.general.font ~= "None" then
                    HotKey:SetFont(Fontsize.db.general.fontpath, Fontsize.db.actionbars.fontsize, "OUTLINE")
                    Count:SetFont(Fontsize.db.general.fontpath, Fontsize.db.actionbars.fontsize, "OUTLINE")
                else
                    HotKey:SetFont(STANDARD_TEXT_FONT, Fontsize.db.actionbars.fontsize, "OUTLINE")
                    Count:SetFont(STANDARD_TEXT_FONT, Fontsize.db.actionbars.fontsize, "OUTLINE")
                end
            end
        end

        for i = 1, 12 do
            if Fontsize.db.general.font ~= "None" then
                _G["ActionButton" .. i .. "HotKey"]:SetFont(Fontsize.db.general.fontpath, Fontsize.db.actionbars
                    .fontsize, "OUTLINE")
                _G["ActionButton" .. i .. "Count"]:SetFont(Fontsize.db.general.fontpath, Fontsize.db.actionbars
                    .fontsize, "OUTLINE")
            else
                _G["ActionButton" .. i .. "HotKey"]:SetFont(STANDARD_TEXT_FONT, Fontsize.db.actionbars.fontsize,
                    "OUTLINE")
                _G["ActionButton" .. i .. "Count"]:SetFont(STANDARD_TEXT_FONT, Fontsize.db.actionbars.fontsize,
                    "OUTLINE")
            end
        end
    end
end

function Fontsize:OnEnable()
    Fontsize:Update()
end

function Fontsize:OnDisable()
    Fontsize:Update()
end
