diff --git a/.luacheckrc b/.luacheckrc index 5447c17..0436b31 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -165,6 +165,12 @@ globals = { "IsTestBuild", "C_Engraving", + "C_AddOns", + "C_Spell", + "C_UnitAuras", + "AuraUtil", + "Settings", + -- Wrath spell haste "GetCombatRatingBonus", "GetActiveTalentGroup", diff --git a/NugRunning.lua b/NugRunning.lua index e38adf6..835be15 100644 --- a/NugRunning.lua +++ b/NugRunning.lua @@ -31,6 +31,8 @@ if apiLevel == 3 then UnitSpellHaste = function() return GetCombatRatingBonus(CR_HASTE_SPELL) end end local GetSpecialization = isClassic and function() return nil end or _G.GetSpecialization +local LoadAddOn = LoadAddOn or C_AddOns.LoadAddOn + local NRunDB = nil local config = NugRunningConfig @@ -1764,6 +1766,15 @@ local ParseOpts = function(str) return t end +local function InterfaceOptionsFrame_OpenToCategory(categoryIDOrFrame) + if type(categoryIDOrFrame) == "table" then + local categoryID = categoryIDOrFrame.name; + return Settings.OpenToCategory(categoryID); + else + return Settings.OpenToCategory(categoryIDOrFrame); + end +end + NugRunning.Commands = { ["unlock"] = function() for name, anchor in pairs(NugRunning.anchors) do diff --git a/Options/NugRunningOptions.lua b/Options/NugRunningOptions.lua index 048459f..56d985f 100644 --- a/Options/NugRunningOptions.lua +++ b/Options/NugRunningOptions.lua @@ -13,6 +13,8 @@ local COMBATLOG_OBJECT_AFFILIATION_PARTY_OR_RAID = COMBATLOG_OBJECT_AFFILIATION_ local LSM = LibStub("LibSharedMedia-3.0") local newFeatureIcon = "|TInterface\\OptionsFrame\\UI-OptionsFrame-NewFeatureIcon:0:0:0:-1|t" +local GetSpellInfo = NugRunning.helpers.GetSpellInfo +local GetSpellTexture = NugRunning.helpers.GetSpellTexture function NugRunningGUI.SlashCmd(msg) NugRunningGUI.frame:Show() @@ -1953,6 +1955,25 @@ end +local function InterfaceOptions_AddCategory(frame, addOn, position) + -- cancel is no longer a default option. May add menu extension for this. + frame.OnCommit = frame.okay; + frame.OnDefault = frame.default; + frame.OnRefresh = frame.refresh; + + if frame.parent then + local category = Settings.GetCategory(frame.parent); + local subcategory, layout = Settings.RegisterCanvasLayoutSubcategory(category, frame, frame.name, frame.name); + subcategory.ID = frame.name; + return subcategory, category; + else + local category, layout = Settings.RegisterCanvasLayoutCategory(frame, frame.name, frame.name); + category.ID = frame.name; + Settings.RegisterAddOnCategory(category); + return category; + end +end + do local f = CreateFrame('Frame', "NugRunningOptions", InterfaceOptionsFrame) f.general = MakeGeneralOptions() -- makes the root category now