Compare with Previous | Blame | View Log
--[[ Addon: Taos Follow Leader Author: TProg Taonnor Created by @Taonnor ]]-- --[[ Local variables ]]-- local LOG_ACTIVE = false local _panel = nil local _choosenIconTexture = nil --[[ Table TFL_SettingsWindow ]]-- TFL_SettingsWindow = {} TFL_SettingsWindow.__index = TFL_SettingsWindow --[[ Table Members ]]-- TFL_SettingsWindow.MainMenuName = "TaosFollowLeaderSettingsMainMenu" --[[ SetupLAMIcon Setups the LAM icon control "TFL_ChoosenIcon" ]]-- function TFL_SettingsHandler.SetupLAMIcon(control) if (LOG_ACTIVE) then logger:logTrace("TFL_SettingsWindow.SetupLAMIcon") end if (control == _panel) then if (_choosenIconTexture == nil) then _choosenIconTexture = WINDOW_MANAGER:CreateControl(nil, TFL_ChoosenIcon, CT_TEXTURE) _choosenIconTexture:SetAnchor(RIGHT, TFL_ChoosenIcon.dropdown:GetControl(), LEFT, -48, -2) _choosenIconTexture:SetTexture(TFL_SettingsHandler.Icons[TFL_SettingsHandler.SavedVariables.Icon].path) _choosenIconTexture:SetDimensions(48, 48) end CALLBACK_MANAGER:UnregisterCallback("LAM-PanelControlsCreated", TFL_SettingsHandler.SetupLAMIcon) end end --[[ Initialize creates settings window ]]-- function TFL_SettingsWindow.Initialize(logger, major, minor, patch) if (LOG_ACTIVE) then logger:logTrace("TFL_SettingsWindow.Initialize") logger:logDebug("major, minor, patch", major, minor, patch) end local panelData = { type = "panel", name = "Taos Follow Leader", author = "TProg Taonnor", version = major .. "." .. minor .. "." .. patch, slashCommand = "/taosfollowleader", registerForDefaults = true } -- Add icon choises local iconChoises = {} for key, val in pairs(TFL_SettingsHandler.Icons) do table.insert(iconChoises, val.name) end local optionsData = { [1] = { type = "header", name = GetString(TFL_OPTIONS_HEADER), }, [2] = { type = "dropdown", name = GetString(TFL_OPTIONS_ICONS_LABEL), tooltip = GetString(TFL_OPTIONS_ICONS_TOOLTIP), choices = iconChoises, getFunc = function() return TFL_SettingsHandler.Icons[TFL_SettingsHandler.SavedVariables.Icon].name end, setFunc = function(value) for index, icon in ipairs(TFL_SettingsHandler.Icons) do if (icon.name == value) then TFL_SettingsHandler.SetIconSettings(index) _choosenIconTexture:SetTexture(icon.path) break end end end, default = TFL_SettingsHandler.Icons[TFL_SettingsHandler.Default.Icon], reference = "TFL_ChoosenIcon", requiresReload = true, }, [3] = { type = "slider", name = GetString(TFL_OPTIONS_SIZE_LABEL), tooltip = GetString(TFL_OPTIONS_SIZE_TOOLTIP), min = 32, max = 256, getFunc = function() return TFL_SettingsHandler.SavedVariables.IconSize end, setFunc = function(value) TFL_SettingsHandler.SetIconSizeSettings(value) end, default = TFL_SettingsHandler.Default.IconSize, requiresReload = true, }, } local LAM = LibStub("LibAddonMenu-2.0") -- Create settings panal _panel = LAM:RegisterAddonPanel(TFL_SettingsWindow.MainMenuName, panelData) LAM:RegisterOptionControls(TFL_SettingsWindow.MainMenuName, optionsData) -- Register to callback for creating preview icon CALLBACK_MANAGER:RegisterCallback("LAM-PanelControlsCreated", TFL_SettingsHandler.SetupLAMIcon) end