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

-------------------------------------------------------------------------------------------------
-- VARIABLES --
-------------------------------------------------------------------------------------------------
local SummonAssistant = SummonAssistant

-------------------------------------------------------------------------------------------------
-- PRIVATE FUNCTIONS --
-------------------------------------------------------------------------------------------------
function SummonAssistant:HoykeyCreateSelections()
    for _, _value in ipairs(SummonAssistant.OrderedTypes) do
        if IsCollectibleUnlocked(_value.Id) then
            ZO_CreateStringId(_value.KeyBinding, _value.Name)
        end
    end
end

function SummonAssistant:HoykeyGetKey(keyBinding)
    local result = ""
    if keyBinding then
        local keyBindingTable = {GetHighestPriorityActionBindingInfoFromName("SummonAssistant_" .. keyBinding)}
        for _, keyValue in pairs(keyBindingTable) do
            if keyValue > 0 then
                result = SummonAssistant:HotkeyGetKeyName(result, keyValue)
            end
        end
    end
    return result
end

function SummonAssistant:HotkeyGetKeyName(result, keyValue)
    if keyValue > 0 then
        if result ~= "" then
            result = string.format("%s+%s", result, GetKeyName(keyValue))
        else
            result = GetKeyName(keyValue)
        end
    end
    return result
end

function SummonAssistant:HotkeyUpdateColor(frame)
    local fontColor = SummonAssistant.Saved.FontColor
    frame:SetColor(fontColor.r, fontColor.g, fontColor.b, fontColor.a)
end

function SummonAssistant:HotKeyGetLocationValue(value)
    local result
    if value == "bottom" then
        result = BOTTOM
    elseif value == "bottomleft" then
        result = BOTTOMLEFT
    elseif value == "bottomright" then
        result = BOTTOMRIGHT
    elseif value == "center" then
        result = CENTER
    elseif value == "left" then
        result = LEFT
    elseif value == "right" then
        result = RIGHT
    elseif value == "top" then
        result = TOP
    elseif value == "topleft" then
        result = TOPLEFT
    elseif value == "topright" then
        result = TOPRIGHT
    end
    return result
end

function SummonAssistant:HotKeyGetLocationText(value)
    local result
    if value == BOTTOM then
        result = "bottom"
    elseif value == BOTTOMLEFT then
        result = "bottomleft"
    elseif value == BOTTOMRIGHT then
        result = "bottomright"
    elseif value == CENTER then
        result = "center"
    elseif value == LEFT then
        result = "left"
    elseif value == RIGHT then
        result = "right"
    elseif value == TOP then
        result = "top"
    elseif value == TOPLEFT then
        result = "topleft"
    elseif value == TOPRIGHT then
        result = "topright"
    end
    return result
end