LeoTrainer.craftNames = {"Blacksmith", "Clothing", "Woodworking", "Jewelry"} LeoTrainer_Settings = ZO_Object:Subclass() local LAM = LibStub("LibAddonMenu-2.0") function LeoTrainer_Settings:New(...) local object = ZO_Object.New(self) object:Initialize(...) return object end function LeoTrainer_Settings:Initialize() end function LeoTrainer_Settings:CreatePanel() local OptionsName = "LeoTrainerOptions" local panelData = { type = "panel", name = LeoTrainer.name, displayName = "|c39B027"..LeoTrainer.displayName.."|r", author = "@LeandroSilva", version = LeoTrainer.version, registerForRefresh = false, registerForDefaults = false, slashCommand = "/leotraineroptions", website = "http://www.esoui.com/downloads/info2162-LeosTrainer.html", --resetFunc = function() end } LAM:RegisterAddonPanel(OptionsName, panelData) local charNames = { "Anyone" } for _, char in pairs(LeoAltholic.GetCharacters()) do table.insert(charNames, char.bio.name) end local optionsData = { { type = "header", name = "|c3f7fff"..GetString(SI_GAMEPAD_OPTIONS_MENU).."|r" },{ type = "checkbox", name = zo_strformat(GetString(SI_GAMEPAD_ALCHEMY_USE_REAGENT), GetString(SI_ITEMTRAITTYPE25)), default = false, getFunc = function() return LeoTrainer.savedVariables.trainNirnhoned end, setFunc = function(value) LeoTrainer.savedVariables.trainNirnhoned = value end, },{ type = "checkbox", name = "Look for items in bags and bank", default = false, getFunc = function() return LeoTrainer.savedVariables.researchItems end, setFunc = function(value) LeoTrainer.savedVariables.researchItems = value end, },{ type = "checkbox", name = "Only marked with research by FCOItemSaver", default = false, getFunc = function() return LeoTrainer.savedVariables.onlyResearchFCO end, setFunc = function(value) LeoTrainer.savedVariables.onlyResearchFCO = value end, }, { type = "header", name = "|c3f7fffCharacters|r" },{ type = "dropdown", name = "Prefered Trainer", tooltip = "This character will be selected as the default trainer if knows the trait.", choices = charNames, default = "Anyone", getFunc = function() return LeoTrainer.savedVariables.defaultTrainer end, setFunc = function(value) LeoTrainer.savedVariables.defaultTrainer = value end },{ type = "description", text = "Select which crafting skills will be available for each char and which ones will be used when filling empty research slots" },{ type = "custom", reference = OptionsName .. "Characters" } } LAM:RegisterOptionControls(OptionsName, optionsData) end function LeoTrainer_Settings:AddCharacters() if LeoTrainerOptionsCharactersSection then return end local control = CreateControlFromVirtual("$(parent)", LeoTrainerOptionsCharacters, "LeoTrainer_SettingsCharacters", "Section") self.container = control:GetNamedChild("Container") local last for i, char in ipairs(LeoAltholic.GetCharacters()) do last = self:AddCharacter(i, char, last) end end function LeoTrainer_Settings_OnMouseEnter(control, tooltip) InitializeTooltip(InformationTooltip, control, BOTTOMLEFT, 0, -2, TOPLEFT) SetTooltipText(InformationTooltip, tooltip) end local function Toggle(checkbox, checked) local control = checkbox:GetParent() LeoTrainer.setTrackingSkill(control.data.charName, checkbox.data.craftId, checked) end local function ToggleFill(checkbox, checked) local control = checkbox:GetParent() LeoTrainer.setFillSlotWithSkill(control.data.charName, checkbox.data.craftId, checked) end function LeoTrainer_Settings:AddCharacter(id, char, last) local control = CreateControlFromVirtual("$(parent)", self.container, "LeoTrainer_SettingsCharacter", id) if last then control:SetAnchor(TOPLEFT, last, BOTTOMLEFT, 0, 0) control:SetAnchor(BOTTOMRIGHT, last, BOTTOMRIGHT, 0, 30) else control:SetAnchor(TOPLEFT, LeoTrainer_SettingsCharactersIconsST_Label, TOPLEFT, 0, 30) control:SetAnchor(BOTTOMRIGHT, LeoTrainer_SettingsCharactersIconsST_Label, TOPRIGHT, 0, 60) end control.data = control.data or {} control.data.charName = char.bio.name control.label = control:GetNamedChild("Name") control.label:SetText(char.bio.name) control.label:SetColor(ZO_SELECTED_TEXT:UnpackRGBA()) for k,craftId in pairs(LeoAltholic.craftResearch) do local checkbox = control:GetNamedChild("ST_" .. craftId) checkbox.data = checkbox.data or {} checkbox.data.craftId = craftId checkbox.data.tooltipText = nil ZO_CheckButton_SetCheckState(checkbox, LeoTrainer.isTrackingSkill(char.bio.name, craftId)) ZO_CheckButton_SetToggleFunction(checkbox, Toggle) checkbox = control:GetNamedChild("FS_" .. craftId) checkbox.data = checkbox.data or {} checkbox.data.craftId = craftId checkbox.data.tooltipText = nil ZO_CheckButton_SetCheckState(checkbox, LeoTrainer.canFillSlotWithSkill(char.bio.name, craftId)) ZO_CheckButton_SetToggleFunction(checkbox, ToggleFill) end return control end function LeoTrainer_Settings:ClearCharacter(id) if self.container then local control = self.container:GetNamedChild(id) if control then control:SetHidden(true) end end end function LeoTrainer_Settings:OnSettingsControlsCreated(panel) --Each time an options panel is created, once for each addon viewed if panel:GetName() == "LeoTrainerOptions" then self:AddCharacters() end end function LeoTrainer_Settings:IsCreated() if self.container then return true else return false end end