--INTERNAL FUNCTION
--creates LAM's Addon Settings panel
local function CreateAddonSettingsPanel()
local controlPanelID = "LAM_ADDON_SETTINGS_PANEL"
local controlPanelNames = {en = "Addon Settings", fr = "Réglages d'Extension", de = "Erweiterungseinstellungen"}
local controlPanelName = controlPanelNames[GetCVar("Language.2")]
--new installation, oldminor does not exists
if oldminor == nil then
ZO_OptionsWindow_AddUserPanel(controlPanelID, controlPanelName)
lam.panelID = _G[controlPanelID]
ZO_PreHook("ZO_OptionsWindow_ChangePanels", HandlePanelSwitching)
--library update, checks if updated library was older then 7. Newer versions won't need any hooks.
elseif oldminor < 7 then
local counter
ZO_PreHook(ZO_GameMenuManager, "SubmitLists", function() counter = 0 end)
ZO_PreHook(ZO_GameMenuManager, "AddEntry",
function(self, data, ...)
--skip headers
if not (data.categoryName and self.headerControls[data.categoryName]) then return end
counter = counter + 1
--versions r1-5 had entry name in english
if data.name == controlPanelNames.en then
--skip duplicate entries (return true means that hook does not call original function)
if lam.panelID ~= counter then
return true
else
--change entry name to the localized name
data.name = controlPanelName
end
end
end)
end
end