--[[ Addon: Taos Group Tools Author: TProg Taonnor Created by @Taonnor ]]-- --[[ Local variables ]]-- local LOG_ACTIVE = false --[[ Table SettingsWindow ]]-- TGT_SettingsWindow = {} TGT_SettingsWindow.__index = TGT_SettingsWindow --[[ Table Members ]]-- TGT_SettingsWindow.MainMenuName = "TaosGroupToolsSettingsMainMenu" TGT_SettingsWindow.Panel = nil TGT_SettingsWindow.Options = nil function TGT_SettingsWindow.AddGroupUltimateOptions() if (LOG_ACTIVE) then logger:logTrace("TGT_SettingsWindow.AddGroupUltimateOptions") end local styleChoices = { [1] = GetString(TGT_OPTIONS_STYLE_SIMPLE), [2] = GetString(TGT_OPTIONS_STYLE_SWIM), [3] = GetString(TGT_OPTIONS_STYLE_SHORT_SWIM), } local soundChoices = { [1] = GetString(TGT_OPTIONS_NO_SOUND_LABEL), [2] = "DUEL_ACCEPTED", [3] = "ABILITY_ULTIMATE_READY", [4] = "ACHIEVEMENT_AWARDED", [5] = "DUEL_BOUNDARY_WARNING", [6] = "BATTLEGROUND_CAPTURE_FLAG_TAKEN_OWN_TEAM", [7] = "CHAMPION_POINT_GAINED", [8] = "DUEL_WON", [9] = "GENERAL_ALERT_ERROR", [10] = "LEVEL_UP", } -- for sound,description in pairs(SOUNDS) do -- soundChoices[#soundChoices + 1] = sound -- end local optionsData = { -- Submenu Group Ultimate Options { type = "submenu", name = GetString(TGT_OPTIONS_GROUP_ULTIMATE_HEADER), controls = { -- Only AvA visible { type = "checkbox", name = GetString(TGT_OPTIONS_ONLY_AVA_LABEL), tooltip = GetString(TGT_OPTIONS_ONLY_AVA_TOOLTIP), getFunc = function() return TGT_SettingsHandler.SavedVariables.OnlyAva end, setFunc = function(value) TGT_SettingsHandler.SetOnlyAvaSettings(value) end, default = TGT_DEFAULTS.OnlyAva }, -- Sorting active { type = "checkbox", name = GetString(TGT_OPTIONS_USE_SORTING_LABEL), tooltip = GetString(TGT_OPTIONS_USE_SORTING_TOOLTIP), getFunc = function() return TGT_SettingsHandler.SavedVariables.IsSortingActive end, setFunc = function(value) TGT_SettingsHandler.SetIsSortingActiveSettings(value) end, default = TGT_DEFAULTS.IsSortingActive }, -- Sounds { type = "dropdown", name = GetString(TGT_OPTIONS_SOUND_LABEL), tooltip = GetString(TGT_OPTIONS_SOUND_TOOLTIP), choices = soundChoices, getFunc = function() return soundChoices[TGT_SettingsHandler.SavedVariables.Sound[1]] end, setFunc = function(value) for index, name in ipairs(soundChoices) do if (name == value) then if (index > 1) then PlaySound(SOUNDS[value]) end TGT_SettingsHandler.SetSoundSettings(index, value) break end end end, default = soundChoices[TGT_DEFAULTS.Sound[1]] }, -- Style { type = "dropdown", name = GetString(TGT_OPTIONS_STYLE_LABEL), tooltip = GetString(TGT_OPTIONS_STYLE_TOOLTIP), choices = styleChoices, getFunc = function() return styleChoices[TGT_SettingsHandler.SavedVariables.Style] end, setFunc = function(value) for index, name in ipairs(styleChoices) do if (name == value) then TGT_SettingsHandler.SetStyleSettings(index) break end end end, default = styleChoices[TGT_DEFAULTS.Style] }, -- Visible Offset { type = "slider", name = GetString(TGT_OPTIONS_VISIBLE_OFF_LABEL), tooltip = GetString(TGT_OPTIONS_VISIBLE_OFF_TOOLTIP), min = 2, max = 24, step = 1, getFunc = function() return TGT_SettingsHandler.SavedVariables.VisibleOffset end, setFunc = function(value) TGT_SettingsHandler.SetVisibleOffsetSettings(value) end, default = TGT_DEFAULTS.VisibleOffset, }, -- Visible Swimlanes { type = "slider", name = GetString(TGT_OPTIONS_SWIMLANES_LABEL), tooltip = GetString(TGT_OPTIONS_SWIMLANES_TOOLTIP), min = 1, max = 6, step = 1, getFunc = function() return TGT_SettingsHandler.SavedVariables.Swimlanes end, setFunc = function(value) TGT_SettingsHandler.SetSwimlanesSettings(value) end, default = TGT_DEFAULTS.Swimlanes, }, -- Scaling Swimlanes { type = "slider", name = GetString(TGT_OPTIONS_SWIMLANE_SCALE_LABEL), tooltip = GetString(TGT_OPTIONS_SWIMLANE_SCALE_TOOLTIP), min = 0.1, max = 2.0, step = 0.1, decimals = 1, getFunc = function() return TGT_SettingsHandler.SavedVariables.SwimlaneScaling end, setFunc = function(value) TGT_SettingsHandler.SetSwimlaneScalingSettings(value) end, default = TGT_DEFAULTS.SwimlaneScaling, }, }, }, } -- Add options for i = 1 , #optionsData do table.insert(TGT_SettingsWindow.Options , optionsData[i]) end end function TGT_SettingsWindow.CreateOptions() if (LOG_ACTIVE) then logger:logTrace("TGT_SettingsWindow.CreateOptions") end TGT_SettingsWindow.Options = { -- Options Header { type = "header", name = GetString(TGT_OPTIONS_HEADER), width = "full" }, -- Controls Movable { type = "checkbox", name = GetString(TGT_OPTIONS_DRAG_LABEL), tooltip = GetString(TGT_OPTIONS_DRAG_TOOLTIP), getFunc = function() return TGT_SettingsHandler.SavedVariables.Movable end, setFunc = function(value) TGT_SettingsHandler.SetMovableSettings(value) end, default = TGT_DEFAULTS.Movable }, -- Enable/Disable Group Ultimate { type = "checkbox", name = GetString(TGT_OPTIONS_GROUP_ULTIMATE_LABEL), tooltip = GetString(TGT_OPTIONS_GROUP_ULTIMATE_TOOLTIP), getFunc = function() return TGT_SettingsHandler.SavedVariables.IsGroupUltimateEnabled end, setFunc = function(value) TGT_SettingsHandler.SetIsGroupUltimateEnabledSettings(value) end, default = TGT_DEFAULTS.IsGroupUltimateEnabled }, } TGT_SettingsWindow.AddGroupUltimateOptions() end --[[ Creates settings panel ]]-- function TGT_SettingsWindow.CreatePanel(major, minor, patch) if (LOG_ACTIVE) then logger:logTrace("TGT_SettingsWindow.CreatePanel") logger:logDebug("major, minor, patch", major, minor, patch) end TGT_SettingsWindow.Panel = { type = "panel", name = "Taos Group Tools", author = "TProg Taonnor", version = major .. "." .. minor .. "." .. patch, slashCommand = "/taosGroupTools", registerForDefaults = true } end --[[ Initialize creates settings window ]]-- function TGT_SettingsWindow.Initialize(logger, major, minor, patch) if (LOG_ACTIVE) then logger:logTrace("TGT_SettingsWindow.Initialize") logger:logDebug("major, minor, patch", major, minor, patch) end TGT_SettingsWindow.CreatePanel(major, minor, patch) TGT_SettingsWindow.CreateOptions() local LAM = LibStub("LibAddonMenu-2.0") LAM:RegisterAddonPanel(TGT_SettingsWindow.MainMenuName, TGT_SettingsWindow.Panel) LAM:RegisterOptionControls(TGT_SettingsWindow.MainMenuName, TGT_SettingsWindow.Options) end