local aceDBOptions = LibStub("AceDBOptions-3.0") function Vect:GetVectOptions() local db = self.db.profile; local options = { type = "group", name = "Vect", childGroups = "tab", args = { enabled = { type = "toggle", name = "Enabled", desc = "Enable/Disable the addon", order = 0, get = function() return Vect:isEnabled() end, set = function(_, v) Vect:setEnabledOrDisabled(v); end }, lock = { type = "toggle", name = "Lock", desc = "Uncheck to move the frames", order = 1, get = function() return Vect:isLocked() end, set = function(_, v) db.locked = v; if v then Vect:LockFrames() else Vect:UnlockFrames() end; end }, targetandfocus = { type = "group", name = "CDs", desc = "Cooldown frame's settings.", childGroups = "tab", order = 2, args = Vect:getTargetandFocusOptions(); }, droptions = { type = "group", name = "DRs", desc = "DR frame's settings.", childGroups = "tab",order = 3, args = Vect:getDROptions(); }, selfdr = { type = "group", name = "Self DRs", desc = "Self DR frame's settings.", childGroups = "tab",order = 4, args = Vect:getSelfDROptions() }, debugoptions = { type = "group", name = "Debug", desc = "Debug settings.", childGroups = "tab", order = 5, args = Vect:getDebugOptions(); }, profileoptions = aceDBOptions:GetOptionsTable(self.db) } } return options; end --order 10-20 function Vect:getTargetandFocusOptions() local args = { targetHeader = { type = "header", name = "Target's settings", order = 10 }, targettoggle = { type = "toggle", name = "Target", desc = "Enable/Disable showing the target's cooldowns", order = 11, get = function() return Vect:isPartEnabled("target") end, set = function(_, v) Vect:SetPartEnabledOrDisabled("target", v); end }, targetrange = { type = "range", name = "Target's size", order = 12, min = 10, max = 150, step = 1, get = function() return Vect:getFrameSize("target") end, set = function(_, v) Vect:setFrameSize("target", v); end }, targetGrowSelect = { type = "select", style = "dropdown", name = "targetGrow", desc = "Change which way the target's cooldowns will grow", order = 13, values = { ["1"] = "Up", ["2"] = "Right", ["3"] = "Down", ["4"] = "Left" }, get = function() return Vect:getGrowOrder("target") end, set = function(_, v) Vect:setGrowOrder("target", v); end }, targetSortSelect = { type = "select", style = "dropdown", name = "targetSortOrder", desc = "Change the target's cooldowns's sort order", order = 14, values = { ["1"] = "Ascending (CD left)", ["2"] = "Descending (CD left)", ["3"] = "Ascending (CD total)", ["4"] = "Descending (CD total)", ["5"] = "Recent first", ["6"] = "Recent Last", ["7"] = "No order" }, get = function() return Vect:getSortOrder("target") end, set = function(_, v) Vect:setSortOrder("target", v); end }, focusHeader = { type = "header", name = "Focus's settings", order = 15 }, focustoggle = { type = "toggle", name = "Focus", desc = "Enable/Disable showing the focus's cooldowns", order = 16, get = function() return Vect:isPartEnabled("focus") end, set = function(_, v) Vect:SetPartEnabledOrDisabled("focus", v); end }, focusRange = { type = "range", name = "Focus's size", order = 17, min = 10, max = 150, step = 1, get = function() return Vect:getFrameSize("focus") end, set = function(_, v) Vect:setFrameSize("focus", v); end }, focusGrowSelect = { type = "select", style = "dropdown", name = "focusGrow", desc = "Change which way the focus's cooldowns will grow", order = 18, values = { ["1"] = "Up", ["2"] = "Right", ["3"] = "Down", ["4"] = "Left" }, get = function() return Vect:getGrowOrder("focus") end, set = function(_, v) Vect:setGrowOrder("focus", v); end }, focusSortSelect = { type = "select", style = "dropdown", name = "focusSortOrder", desc = "Change the focus's cooldowns's sort order", order = 19, values = { ["1"] = "Ascending (CD left)", ["2"] = "Descending (CD left)", ["3"] = "Ascending (CD total)", ["4"] = "Descending (CD total)", ["5"] = "Recent first", ["6"] = "Recent Last", ["7"] = "No order" }, get = function() return Vect:getSortOrder("focus") end, set = function(_, v) Vect:setSortOrder("focus", v); end } } return args; end --order 20-40 function Vect:getDROptions() local args = { } return args; end --order 40-50 function Vect:getSelfDROptions() local args = { } return args; end --order 50+ function Vect:getDebugOptions() local args = { spellcast = { type = "toggle", name = "SpellCast", desc = "Enable/Disable writing out SPELL_CAST_SUCCESS events.", order = 50, get = function() return Vect:getSpellCastDebug() end, set = function(_, v) Vect:setSpellCastDebug(v); end }, spellAura = { type = "toggle", name = "SpellAura", desc = "Enable/Disablewriting out SPLL_AURA_* events", order = 51, get = function() return Vect:getSpellAuraDebug() end, set = function(_, v) Vect:setSpellAuraDebug(v); end }, allLog = { type = "toggle", name = "Uber debug", desc = "Enable/Disable writing out all combatlog events", order = 52, get = function() return Vect:getAllCDebug() end, set = function(_, v) Vect:setAllCDebug(v); end }, selfcd = { type = "toggle", name = "Self CDs", desc = "Enable/Disable registering self CDs", order = 53, get = function() return Vect:getSelfCDRegister() end, set = function(_, v) Vect:setSelfCDRegister(v); end }, debugselect = { type = "select", style = "dropdown", name = "debuglevel", desc = "Change the debuglevel", order = 54, values = { ["0"] = "No Messages", }, get = function() return Vect:getDebugLevel() end, set = function(_, v) Vect:setDebugLevel(v); end }, } return args; end