--[[
Author: Jarth
Filename: MementoBar.lua
]] --

-------------------------------------------------------------------------------------------------
-- VARIABLES --
-------------------------------------------------------------------------------------------------
local baseModul = MementoBar

-------------------------------------------------------------------------------------------------
--  FUNCTIONS --
-------------------------------------------------------------------------------------------------

function baseModul.OnAddOnLoaded(_, addonName)
    if addonName == baseModul.Addon.Name then
        baseModul:Initialize()
    end
end

function baseModul:Initialize()
    -- Load saved values..
    baseModul.Saved = ZO_SavedVars:New("MementoBar_Character", baseModul.Addon.Version, nil, baseModul.Default)

    if baseModul.Saved.UseAccountSettings then
        baseModul.Saved = ZO_SavedVars:NewAccountWide("MementoBar_Account", baseModul.Addon.Version, nil, baseModul.Default)
    end

    MementoBar_Frame:SetHandler("OnMoveStop", baseModul.OnMoveStop)
    baseModul:RestorePanel()
    baseModul:HoykeyCreateSelections()
    baseModul:CreateSettingsWindow()

    EVENT_MANAGER:UnregisterForEvent(baseModul.Addon.Name, EVENT_ADD_ON_LOADED)
end

-------------------------------------------------------------------------------------------------
--  PRIVATE FUNCTIONS --
-------------------------------------------------------------------------------------------------

function baseModul:GetVersion(showMinor)
    if showMinor == false or ADDON_MINOR_VERSION == nil then
        return tostring(baseModul.Addon.Version)
    end

    return tostring(baseModul.Addon.Version) .. "." .. tostring(baseModul.Addon.MinorVersion)
end

function baseModul:RestorePanel()
    baseModul:SetButtonFrameWidth()
    baseModul:HotkeyUpdate()
    baseModul:InitializeButtons()
    baseModul:RestoreButtons()
    baseModul:RestorePosition()
    baseModul:UpdateMoveFrame()
    baseModul:SetFragmentBehaviour()
end

function baseModul:RestorePosition()
    local Top = baseModul.Saved.Top
    local Left = baseModul.Saved.Left

    MementoBar_Frame:ClearAnchors()
    MementoBar_Frame:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, Left, Top)
end

EVENT_MANAGER:RegisterForEvent(baseModul.Addon.Name, EVENT_ADD_ON_LOADED, baseModul.OnAddOnLoaded)