diff --git a/Titan/_Titan_Lib_Notes.txt b/Titan/_Titan_Lib_Notes.txt index db2545a..4434cde 100644 --- a/Titan/_Titan_Lib_Notes.txt +++ b/Titan/_Titan_Lib_Notes.txt @@ -1,3 +1,14 @@ +From: +Ace3 - https://www.curseforge.com/wow/addons/ace3 + +AceGUI-3.0-SharedMediaWidgets - https://www.curseforge.com/wow/addons/ace-gui-3-0-shared-media-widgets +LibSharedMedia-3.0 - https://www.curseforge.com/wow/addons/libsharedmedia-3-0 +LibUIDropDownMenu - https://www.curseforge.com/wow/addons/libuidropdownmenu + + +*** 2023-Dec *** +- Updated libs to latest +- Added back !LibUIDropDownMenu per combined Titan versions *** 2023-04-12 *** - libs created folder for Ace libraries for clarity - Moved LDB lib to libs diff --git a/Titan/libs/Ace/Ace3.toc b/Titan/libs/Ace/Ace3.toc index 1b59e11..13f0d97 100644 --- a/Titan/libs/Ace/Ace3.toc +++ b/Titan/libs/Ace/Ace3.toc @@ -1,4 +1,4 @@ -## Interface: 90001 +## Interface: 100105 ## Title: Lib: Ace3 ## Notes: AddOn development framework @@ -6,6 +6,7 @@ ## X-Website: http://www.wowace.com ## X-Category: Library ## X-License: Limited BSD +## Version: Release-r1309 LibStub\LibStub.lua CallbackHandler-1.0\CallbackHandler-1.0.xml diff --git a/Titan/libs/Ace/Ace3_TBC.toc b/Titan/libs/Ace/Ace3_TBC.toc new file mode 100644 index 0000000..3cd438e --- /dev/null +++ b/Titan/libs/Ace/Ace3_TBC.toc @@ -0,0 +1,28 @@ +## Interface: 20504 + +## Title: Lib: Ace3 +## Notes: AddOn development framework +## Author: Ace3 Development Team +## X-Website: http://www.wowace.com +## X-Category: Library +## X-License: Limited BSD +## Version: Release-r1309 + +LibStub\LibStub.lua +CallbackHandler-1.0\CallbackHandler-1.0.xml +AceAddon-3.0\AceAddon-3.0.xml +AceEvent-3.0\AceEvent-3.0.xml +AceTimer-3.0\AceTimer-3.0.xml +AceBucket-3.0\AceBucket-3.0.xml +AceHook-3.0\AceHook-3.0.xml +AceDB-3.0\AceDB-3.0.xml +AceDBOptions-3.0\AceDBOptions-3.0.xml +AceLocale-3.0\AceLocale-3.0.xml +AceConsole-3.0\AceConsole-3.0.xml +AceGUI-3.0\AceGUI-3.0.xml +AceConfig-3.0\AceConfig-3.0.xml +AceComm-3.0\AceComm-3.0.xml +AceTab-3.0\AceTab-3.0.xml +AceSerializer-3.0\AceSerializer-3.0.xml + +Ace3.lua diff --git a/Titan/libs/Ace/Ace3_Vanilla.toc b/Titan/libs/Ace/Ace3_Vanilla.toc new file mode 100644 index 0000000..1386798 --- /dev/null +++ b/Titan/libs/Ace/Ace3_Vanilla.toc @@ -0,0 +1,28 @@ +## Interface: 11403 + +## Title: Lib: Ace3 +## Notes: AddOn development framework +## Author: Ace3 Development Team +## X-Website: http://www.wowace.com +## X-Category: Library +## X-License: Limited BSD +## Version: Release-r1309 + +LibStub\LibStub.lua +CallbackHandler-1.0\CallbackHandler-1.0.xml +AceAddon-3.0\AceAddon-3.0.xml +AceEvent-3.0\AceEvent-3.0.xml +AceTimer-3.0\AceTimer-3.0.xml +AceBucket-3.0\AceBucket-3.0.xml +AceHook-3.0\AceHook-3.0.xml +AceDB-3.0\AceDB-3.0.xml +AceDBOptions-3.0\AceDBOptions-3.0.xml +AceLocale-3.0\AceLocale-3.0.xml +AceConsole-3.0\AceConsole-3.0.xml +AceGUI-3.0\AceGUI-3.0.xml +AceConfig-3.0\AceConfig-3.0.xml +AceComm-3.0\AceComm-3.0.xml +AceTab-3.0\AceTab-3.0.xml +AceSerializer-3.0\AceSerializer-3.0.xml + +Ace3.lua diff --git a/Titan/libs/Ace/Ace3_Wrath.toc b/Titan/libs/Ace/Ace3_Wrath.toc new file mode 100644 index 0000000..b26899f --- /dev/null +++ b/Titan/libs/Ace/Ace3_Wrath.toc @@ -0,0 +1,28 @@ +## Interface: 30402 + +## Title: Lib: Ace3 +## Notes: AddOn development framework +## Author: Ace3 Development Team +## X-Website: http://www.wowace.com +## X-Category: Library +## X-License: Limited BSD +## Version: Release-r1309 + +LibStub\LibStub.lua +CallbackHandler-1.0\CallbackHandler-1.0.xml +AceAddon-3.0\AceAddon-3.0.xml +AceEvent-3.0\AceEvent-3.0.xml +AceTimer-3.0\AceTimer-3.0.xml +AceBucket-3.0\AceBucket-3.0.xml +AceHook-3.0\AceHook-3.0.xml +AceDB-3.0\AceDB-3.0.xml +AceDBOptions-3.0\AceDBOptions-3.0.xml +AceLocale-3.0\AceLocale-3.0.xml +AceConsole-3.0\AceConsole-3.0.xml +AceGUI-3.0\AceGUI-3.0.xml +AceConfig-3.0\AceConfig-3.0.xml +AceComm-3.0\AceComm-3.0.xml +AceTab-3.0\AceTab-3.0.xml +AceSerializer-3.0\AceSerializer-3.0.xml + +Ace3.lua diff --git a/Titan/libs/Ace/AceAddon-3.0/AceAddon-3.0.lua b/Titan/libs/Ace/AceAddon-3.0/AceAddon-3.0.lua index 1b63bd1..f392a21 100644 --- a/Titan/libs/Ace/AceAddon-3.0/AceAddon-3.0.lua +++ b/Titan/libs/Ace/AceAddon-3.0/AceAddon-3.0.lua @@ -28,7 +28,7 @@ -- end -- @class file -- @name AceAddon-3.0.lua --- @release $Id: AceAddon-3.0.lua 1238 2020-08-28 16:18:42Z nevcairiel $ +-- @release $Id: AceAddon-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ local MAJOR, MINOR = "AceAddon-3.0", 13 local AceAddon, oldminor = LibStub:NewLibrary(MAJOR, MINOR) @@ -49,10 +49,6 @@ local select, pairs, next, type, unpack = select, pairs, next, type, unpack local loadstring, assert, error = loadstring, assert, error local setmetatable, getmetatable, rawset, rawget = setmetatable, getmetatable, rawset, rawget --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: LibStub, IsLoggedIn, geterrorhandler - --[[ xpcall safecall implementation ]] diff --git a/Titan/libs/Ace/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua b/Titan/libs/Ace/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua index 5113875..6dd6438 100644 --- a/Titan/libs/Ace/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua +++ b/Titan/libs/Ace/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua @@ -1,7 +1,7 @@ --- AceConfigCmd-3.0 handles access to an options table through the "command line" interface via the ChatFrames. -- @class file -- @name AceConfigCmd-3.0 --- @release $Id: AceConfigCmd-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $ +-- @release $Id: AceConfigCmd-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ --[[ AceConfigCmd-3.0 @@ -37,17 +37,10 @@ local error, assert = error, assert -- WoW APIs local _G = _G --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: LibStub, SELECTED_CHAT_FRAME, DEFAULT_CHAT_FRAME - - local L = setmetatable({}, { -- TODO: replace with proper locale __index = function(self,k) return k end }) - - local function print(msg) (SELECTED_CHAT_FRAME or DEFAULT_CHAT_FRAME):AddMessage(msg) end @@ -401,7 +394,7 @@ local function handle(info, inputpos, tab, depth, retfalse) return end - local str = strsub(info.input,inputpos); + local strInput = strsub(info.input,inputpos); if tab.type=="execute" then ------------ execute -------------------------------------------- @@ -414,21 +407,21 @@ local function handle(info, inputpos, tab, depth, retfalse) local res = true if tab.pattern then - if not(type(tab.pattern)=="string") then err(info, inputpos, "'pattern' - expected a string") end - if not strmatch(str, tab.pattern) then - usererr(info, inputpos, "'"..str.."' - " .. L["invalid input"]) + if type(tab.pattern)~="string" then err(info, inputpos, "'pattern' - expected a string") end + if not strmatch(strInput, tab.pattern) then + usererr(info, inputpos, "'"..strInput.."' - " .. L["invalid input"]) return end end - do_final(info, inputpos, tab, "set", str) + do_final(info, inputpos, tab, "set", strInput) elseif tab.type=="toggle" then ------------ toggle -------------------------------------------- local b - local str = strtrim(strlower(str)) + local str = strtrim(strlower(strInput)) if str=="" then b = callmethod(info, inputpos, tab, "get") @@ -465,9 +458,9 @@ local function handle(info, inputpos, tab, depth, retfalse) elseif tab.type=="range" then ------------ range -------------------------------------------- - local val = tonumber(str) + local val = tonumber(strInput) if not val then - usererr(info, inputpos, "'"..str.."' - "..L["expected number"]) + usererr(info, inputpos, "'"..strInput.."' - "..L["expected number"]) return end if type(info.step)=="number" then @@ -487,7 +480,7 @@ local function handle(info, inputpos, tab, depth, retfalse) elseif tab.type=="select" then ------------ select ------------------------------------ - local str = strtrim(strlower(str)) + local str = strtrim(strlower(strInput)) local values = tab.values if type(values) == "function" or type(values) == "string" then @@ -528,7 +521,7 @@ local function handle(info, inputpos, tab, depth, retfalse) elseif tab.type=="multiselect" then ------------ multiselect ------------------------------------------- - local str = strtrim(strlower(str)) + local str = strtrim(strlower(strInput)) local values = tab.values if type(values) == "function" or type(values) == "string" then @@ -565,7 +558,7 @@ local function handle(info, inputpos, tab, depth, retfalse) --check that the opt is valid local ok - for k,v in pairs(values) do + for k in pairs(values) do if strlower(k)==opt then opt = k -- overwrite with key (in case of case mismatches) ok = true @@ -634,7 +627,7 @@ local function handle(info, inputpos, tab, depth, retfalse) elseif tab.type=="color" then ------------ color -------------------------------------------- - local str = strtrim(strlower(str)) + local str = strtrim(strlower(strInput)) if str == "" then --TODO: Show current value return @@ -706,7 +699,7 @@ local function handle(info, inputpos, tab, depth, retfalse) elseif tab.type=="keybinding" then ------------ keybinding -------------------------------------------- - local str = strtrim(strlower(str)) + local str = strtrim(strlower(strInput)) if str == "" then --TODO: Show current value return diff --git a/Titan/libs/Ace/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua b/Titan/libs/Ace/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua index a14e07d..11254eb 100644 --- a/Titan/libs/Ace/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua +++ b/Titan/libs/Ace/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua @@ -1,13 +1,13 @@ --- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables. -- @class file -- @name AceConfigDialog-3.0 --- @release $Id: AceConfigDialog-3.0.lua 1232 2020-04-14 22:21:22Z nevcairiel $ +-- @release $Id: AceConfigDialog-3.0.lua 1296 2022-11-04 18:50:10Z nevcairiel $ local LibStub = LibStub local gui = LibStub("AceGUI-3.0") local reg = LibStub("AceConfigRegistry-3.0") -local MAJOR, MINOR = "AceConfigDialog-3.0", 79 +local MAJOR, MINOR = "AceConfigDialog-3.0", 86 local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR) if not AceConfigDialog then return end @@ -22,19 +22,13 @@ AceConfigDialog.frame.closing = AceConfigDialog.frame.closing or {} AceConfigDialog.frame.closeAllOverride = AceConfigDialog.frame.closeAllOverride or {} -- Lua APIs -local tinsert, tsort, tremove = table.insert, table.sort, table.remove +local tinsert, tsort, tremove, wipe = table.insert, table.sort, table.remove, table.wipe local strmatch, format = string.match, string.format local error = error -local pairs, next, select, type, unpack, wipe, ipairs = pairs, next, select, type, unpack, wipe, ipairs +local pairs, next, select, type, unpack, ipairs = pairs, next, select, type, unpack, ipairs local tostring, tonumber = tostring, tonumber local math_min, math_max, math_floor = math.min, math.max, math.floor --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: NORMAL_FONT_COLOR, ACCEPT, CANCEL --- GLOBALS: PlaySound, GameFontHighlight, GameFontHighlightSmall, GameFontHighlightLarge --- GLOBALS: CloseSpecialWindows, InterfaceOptions_AddCategory, geterrorhandler - local emptyTbl = {} --[[ @@ -153,6 +147,7 @@ local stringIsLiteral = { width = true, image = true, fontSize = true, + tooltipHyperlink = true } --Is Never a function or method @@ -194,9 +189,8 @@ local function GetOptionsMemberValue(membername, option, options, path, appName, --We have a function to call local info = new() --traverse the options table, picking up the handler and filling the info with the path - local handler local group = options - handler = group.handler or handler + local handler = group.handler for i = 1, #path do group = GetSubOption(group, path[i]) @@ -508,6 +502,14 @@ local function OptionOnMouseOver(widget, event) local tooltip = AceConfigDialog.tooltip tooltip:SetOwner(widget.frame, "ANCHOR_TOPRIGHT") + + local tooltipHyperlink = GetOptionsMemberValue("tooltipHyperlink", opt, options, path, appName) + if tooltipHyperlink then + tooltip:SetHyperlink(tooltipHyperlink) + tooltip:Show() + return + end + local name = GetOptionsMemberValue("name", opt, options, path, appName) local desc = GetOptionsMemberValue("desc", opt, options, path, appName) local usage = GetOptionsMemberValue("usage", opt, options, path, appName) @@ -535,8 +537,7 @@ local function OptionOnMouseLeave(widget, event) end local function GetFuncName(option) - local type = option.type - if type == "execute" then + if option.type == "execute" then return "func" else return "set" @@ -544,13 +545,15 @@ local function GetFuncName(option) end do local frame = AceConfigDialog.popup - if not frame then + if not frame or oldminor < 81 then frame = CreateFrame("Frame", nil, UIParent) AceConfigDialog.popup = frame frame:Hide() frame:SetPoint("CENTER", UIParent, "CENTER") frame:SetSize(320, 72) + frame:EnableMouse(true) -- Do not allow click-through on the frame frame:SetFrameStrata("TOOLTIP") + frame:SetFrameLevel(100) -- Lots of room to draw under it frame:SetScript("OnKeyDown", function(self, key) if key == "ESCAPE" then self:SetPropagateKeyboardInput(false) @@ -564,26 +567,17 @@ do end end) - if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then - frame:SetBackdrop({ - bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]], - edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]], - tile = true, - tileSize = 32, - edgeSize = 32, - insets = { left = 11, right = 11, top = 11, bottom = 11 }, - }) - else - local border = CreateFrame("Frame", nil, frame, "DialogBorderDarkTemplate") - border:SetAllPoints(frame) - end + local border = CreateFrame("Frame", nil, frame, "DialogBorderOpaqueTemplate") + border:SetAllPoints(frame) + frame:SetFixedFrameStrata(true) + frame:SetFixedFrameLevel(true) local text = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlight") text:SetSize(290, 0) text:SetPoint("TOP", 0, -16) frame.text = text - local function newButton(text) + local function newButton(newText) local button = CreateFrame("Button", nil, frame) button:SetSize(128, 21) button:SetNormalFontObject(GameFontNormal) @@ -594,7 +588,7 @@ do button:GetPushedTexture():SetTexCoord(0.0, 1.0, 0.0, 0.71875) button:SetHighlightTexture(130762) -- "Interface\\Buttons\\UI-DialogBox-Button-Highlight" button:GetHighlightTexture():SetTexCoord(0.0, 1.0, 0.0, 0.71875) - button:SetText(text) + button:SetText(newText) return button end @@ -681,7 +675,7 @@ local function ActivateControl(widget, event, ...) if group[funcname] ~= nil then func = group[funcname] end - handler = group.handler or handler + handler = group.handler confirm = group.confirm validate = group.validate for i = 1, #path do @@ -745,7 +739,6 @@ local function ActivateControl(widget, event, ...) end end - local rootframe = user.rootframe if not validated or type(validated) == "string" then if not validated then if usage then @@ -760,8 +753,8 @@ local function ActivateControl(widget, event, ...) end -- show validate message - if rootframe.SetStatusText then - rootframe:SetStatusText(validated) + if user.rootframe.SetStatusText then + user.rootframe:SetStatusText(validated) else validationErrorPopup(validated) end @@ -798,14 +791,14 @@ local function ActivateControl(widget, event, ...) if type(confirm) == "boolean" then if confirm then if not confirmText then - local name, desc = option.name, option.desc - if type(name) == "function" then - name = name(info) + local option_name, desc = option.name, option.desc + if type(option_name) == "function" then + option_name = option_name(info) end if type(desc) == "function" then desc = desc(info) end - confirmText = name + confirmText = option_name if desc then confirmText = confirmText.." - "..desc end @@ -1147,8 +1140,6 @@ local function FeedOptions(appName, options,container,rootframe,path,group,inlin --Control to feed local control - local name = GetOptionsMemberValue("name", v, options, path, appName) - if v.type == "execute" then local imageCoords = GetOptionsMemberValue("imageCoords",v, options, path, appName) @@ -1251,7 +1242,7 @@ local function FeedOptions(appName, options,container,rootframe,path,group,inlin end tsort(sorting, sortTblAsStrings) end - for k, value in ipairs(sorting) do + for _, value in ipairs(sorting) do local text = values[value] local radio = gui:Create("CheckBox") radio:SetLabel(text) @@ -1333,8 +1324,8 @@ local function FeedOptions(appName, options,container,rootframe,path,group,inlin control:SetWidth(width_multiplier) end --check:SetTriState(v.tristate) - for i = 1, #valuesort do - local key = valuesort[i] + for s = 1, #valuesort do + local key = valuesort[s] local value = GetOptionsMemberValue("get",v, options, path, appName, key) control:SetItemValue(key,value) end @@ -1346,8 +1337,8 @@ local function FeedOptions(appName, options,container,rootframe,path,group,inlin control:PauseLayout() local width = GetOptionsMemberValue("width",v,options,path,appName) - for i = 1, #valuesort do - local value = valuesort[i] + for s = 1, #valuesort do + local value = valuesort[s] local text = values[value] local check = gui:Create("CheckBox") check:SetLabel(text) @@ -1364,7 +1355,7 @@ local function FeedOptions(appName, options,container,rootframe,path,group,inlin elseif width == "half" then check:SetWidth(width_multiplier / 2) elseif (type(width) == "number") then - control:SetWidth(width_multiplier * width) + check:SetWidth(width_multiplier * width) elseif width == "full" then check.width = "fill" else @@ -1434,8 +1425,8 @@ local function FeedOptions(appName, options,container,rootframe,path,group,inlin end control:SetImageSize(width, height) end - local width = GetOptionsMemberValue("width",v,options,path,appName) - control.width = not width and "fill" + local controlWidth = GetOptionsMemberValue("width",v,options,path,appName) + control.width = not controlWidth and "fill" end --Common Init @@ -1690,29 +1681,29 @@ function AceConfigDialog:FeedGroup(appName,options,container,rootframe,path, isR elseif grouptype == "select" then - local select = gui:Create("DropdownGroup") - select:SetTitle(name) - InjectInfo(select, options, group, path, rootframe, appName) - select:SetCallback("OnGroupSelected", GroupSelected) + local selectGroup = gui:Create("DropdownGroup") + selectGroup:SetTitle(name) + InjectInfo(selectGroup, options, group, path, rootframe, appName) + selectGroup:SetCallback("OnGroupSelected", GroupSelected) local status = AceConfigDialog:GetStatusTable(appName, path) if not status.groups then status.groups = {} end - select:SetStatusTable(status.groups) + selectGroup:SetStatusTable(status.groups) local grouplist, orderlist = BuildSelect(group, options, path, appName) - select:SetGroupList(grouplist, orderlist) - select:SetUserData("grouplist", grouplist) - select:SetUserData("orderlist", orderlist) + selectGroup:SetGroupList(grouplist, orderlist) + selectGroup:SetUserData("grouplist", grouplist) + selectGroup:SetUserData("orderlist", orderlist) local firstgroup = orderlist[1] if firstgroup then - select:SetGroup((GroupExists(appName, options, path,status.groups.selected) and status.groups.selected) or firstgroup) + selectGroup:SetGroup((GroupExists(appName, options, path,status.groups.selected) and status.groups.selected) or firstgroup) end - select.width = "fill" - select.height = "fill" + selectGroup.width = "fill" + selectGroup.height = "fill" - container:AddChild(select) + container:AddChild(selectGroup) --assume tree group by default --if parenttype is tree then this group is already a node on that tree @@ -1940,13 +1931,13 @@ end -- convert pre-39 BlizOptions structure to the new format if oldminor and oldminor < 39 and AceConfigDialog.BlizOptions then local old = AceConfigDialog.BlizOptions - local new = {} + local newOpt = {} for key, widget in pairs(old) do local appName = widget:GetUserData("appName") - if not new[appName] then new[appName] = {} end - new[appName][key] = widget + if not newOpt[appName] then newOpt[appName] = {} end + newOpt[appName][key] = widget end - AceConfigDialog.BlizOptions = new + AceConfigDialog.BlizOptions = newOpt else AceConfigDialog.BlizOptions = AceConfigDialog.BlizOptions or {} end @@ -1979,6 +1970,7 @@ end -- @param parent The parent to use in the interface options tree. -- @param ... The path in the options table to feed into the interface options panel. -- @return The reference to the frame registered into the Interface Options. +-- @return The category ID to pass to Settings.OpenToCategory (or InterfaceOptionsFrame_OpenToCategory) function AceConfigDialog:AddToBlizOptions(appName, name, parent, ...) local BlizOptions = AceConfigDialog.BlizOptions @@ -1994,7 +1986,6 @@ function AceConfigDialog:AddToBlizOptions(appName, name, parent, ...) if not BlizOptions[appName][key] then local group = gui:Create("BlizOptionsGroup") BlizOptions[appName][key] = group - group:SetName(name or appName, parent) group:SetTitle(name or appName) group:SetUserData("appName", appName) @@ -2007,8 +1998,30 @@ function AceConfigDialog:AddToBlizOptions(appName, name, parent, ...) end group:SetCallback("OnShow", FeedToBlizPanel) group:SetCallback("OnHide", ClearBlizPanel) - InterfaceOptions_AddCategory(group.frame) - return group.frame + if Settings and Settings.RegisterCanvasLayoutCategory then + local categoryName = name or appName + if parent then + local category = Settings.GetCategory(parent) + if not category then + error(("The parent category '%s' was not found"):format(parent), 2) + end + local subcategory = Settings.RegisterCanvasLayoutSubcategory(category, group.frame, categoryName) + + -- force the generated ID to be used for subcategories, as these can have very simple names like "Profiles" + group:SetName(subcategory.ID, parent) + else + local category = Settings.RegisterCanvasLayoutCategory(group.frame, categoryName) + -- using appName here would be cleaner, but would not be 100% compatible + -- but for top-level categories it should be fine, as these are typically addon names + category.ID = categoryName + group:SetName(categoryName, parent) + Settings.RegisterAddOnCategory(category) + end + else + group:SetName(name or appName, parent) + InterfaceOptions_AddCategory(group.frame) + end + return group.frame, group.frame.name else error(("%s has already been added to the Blizzard Options Window with the given path"):format(appName), 2) end diff --git a/Titan/libs/Ace/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua b/Titan/libs/Ace/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua index f8d9225..e0f5962 100644 --- a/Titan/libs/Ace/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua +++ b/Titan/libs/Ace/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua @@ -8,10 +8,10 @@ -- :IterateOptionsTables() (and :GetOptionsTable() if only given one argument) return a function reference that the requesting config handling addon must call with valid "uiType", "uiName". -- @class file -- @name AceConfigRegistry-3.0 --- @release $Id: AceConfigRegistry-3.0.lua 1207 2019-06-23 12:08:33Z nevcairiel $ +-- @release $Id: AceConfigRegistry-3.0.lua 1296 2022-11-04 18:50:10Z nevcairiel $ local CallbackHandler = LibStub("CallbackHandler-1.0") -local MAJOR, MINOR = "AceConfigRegistry-3.0", 20 +local MAJOR, MINOR = "AceConfigRegistry-3.0", 21 local AceConfigRegistry = LibStub:NewLibrary(MAJOR, MINOR) if not AceConfigRegistry then return end @@ -83,6 +83,7 @@ local basekeys={ dialogHidden=optmethodbool, dropdownHidden=optmethodbool, cmdHidden=optmethodbool, + tooltipHyperlink=optstringfunc, icon=optstringnumberfunc, iconCoords=optmethodtable, handler=opttable, diff --git a/Titan/libs/Ace/AceHook-3.0/AceHook-3.0.lua b/Titan/libs/Ace/AceHook-3.0/AceHook-3.0.lua index d91c36f..7d26d91 100644 --- a/Titan/libs/Ace/AceHook-3.0/AceHook-3.0.lua +++ b/Titan/libs/Ace/AceHook-3.0/AceHook-3.0.lua @@ -9,8 +9,8 @@ -- make into AceHook. -- @class file -- @name AceHook-3.0 --- @release $Id: AceHook-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $ -local ACEHOOK_MAJOR, ACEHOOK_MINOR = "AceHook-3.0", 8 +-- @release $Id: AceHook-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ +local ACEHOOK_MAJOR, ACEHOOK_MINOR = "AceHook-3.0", 9 local AceHook, oldminor = LibStub:NewLibrary(ACEHOOK_MAJOR, ACEHOOK_MINOR) if not AceHook then return end -- No upgrade needed @@ -195,7 +195,6 @@ function hook(self, obj, method, handler, script, secure, raw, forceSecure, usag registry[self][method] = nil end handlers[uid], actives[uid], scripts[uid] = nil, nil, nil - uid = nil end local orig @@ -478,10 +477,10 @@ function AceHook:UnhookAll() for key, value in pairs(registry[self]) do if type(key) == "table" then for method in pairs(value) do - self:Unhook(key, method) + AceHook.Unhook(self, key, method) end else - self:Unhook(key) + AceHook.Unhook(self, key) end end end diff --git a/Titan/libs/Ace/AceLocale-3.0/AceLocale-3.0.lua b/Titan/libs/Ace/AceLocale-3.0/AceLocale-3.0.lua index e133781..d69aa73 100644 --- a/Titan/libs/Ace/AceLocale-3.0/AceLocale-3.0.lua +++ b/Titan/libs/Ace/AceLocale-3.0/AceLocale-3.0.lua @@ -1,7 +1,7 @@ --- **AceLocale-3.0** manages localization in addons, allowing for multiple locale to be registered with fallback to the base locale for untranslated strings. -- @class file -- @name AceLocale-3.0 --- @release $Id: AceLocale-3.0.lua 1035 2011-07-09 03:20:13Z kaelten $ +-- @release $Id: AceLocale-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ local MAJOR,MINOR = "AceLocale-3.0", 6 local AceLocale, oldminor = LibStub:NewLibrary(MAJOR, MINOR) @@ -12,10 +12,6 @@ if not AceLocale then return end -- no upgrade needed local assert, tostring, error = assert, tostring, error local getmetatable, setmetatable, rawset, rawget = getmetatable, setmetatable, rawset, rawget --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: GAME_LOCALE, geterrorhandler - local gameLocale = GetLocale() if gameLocale == "enGB" then gameLocale = "enUS" @@ -93,7 +89,7 @@ local writedefaultproxy = setmetatable({}, { function AceLocale:NewLocale(application, locale, isDefault, silent) -- GAME_LOCALE allows translators to test translations of addons without having that wow client installed - local gameLocale = GAME_LOCALE or gameLocale + local activeGameLocale = GAME_LOCALE or gameLocale local app = AceLocale.apps[application] @@ -111,7 +107,7 @@ function AceLocale:NewLocale(application, locale, isDefault, silent) AceLocale.appnames[app] = application end - if locale ~= gameLocale and not isDefault then + if locale ~= activeGameLocale and not isDefault then return -- nop, we don't need these translations end diff --git a/Titan/libs/Ace/AceTimer-3.0/AceTimer-3.0.lua b/Titan/libs/Ace/AceTimer-3.0/AceTimer-3.0.lua index 33b4da4..8776da2 100644 --- a/Titan/libs/Ace/AceTimer-3.0/AceTimer-3.0.lua +++ b/Titan/libs/Ace/AceTimer-3.0/AceTimer-3.0.lua @@ -15,7 +15,7 @@ -- make into AceTimer. -- @class file -- @name AceTimer-3.0 --- @release $Id: AceTimer-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $ +-- @release $Id: AceTimer-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ local MAJOR, MINOR = "AceTimer-3.0", 17 -- Bump minor on changes local AceTimer, oldminor = LibStub:NewLibrary(MAJOR, MINOR) @@ -61,11 +61,11 @@ local function new(self, loop, func, delay, ...) -- Compensate delay to get a perfect average delay, even if individual times don't match up perfectly -- due to fps differences local time = GetTime() - local delay = timer.delay - (time - timer.ends) + local ndelay = timer.delay - (time - timer.ends) -- Ensure the delay doesn't go below the threshold - if delay < 0.01 then delay = 0.01 end - C_TimerAfter(delay, timer.callback) - timer.ends = time + delay + if ndelay < 0.01 then ndelay = 0.01 end + C_TimerAfter(ndelay, timer.callback) + timer.ends = time + ndelay else activeTimers[timer.handle or timer] = nil end diff --git a/Titan/libs/Ace/CHANGES.txt b/Titan/libs/Ace/CHANGES.txt index 541e851..6a71b16 100644 --- a/Titan/libs/Ace/CHANGES.txt +++ b/Titan/libs/Ace/CHANGES.txt @@ -1,93 +1,109 @@ ------------------------------------------------------------------------ -r1240 | nevcairiel | 2020-10-13 07:59:32 +0000 (Tue, 13 Oct 2020) | 1 line +r1308 | nevcairiel | 2023-07-12 10:15:09 +0000 (Wed, 12 Jul 2023) | 1 line Changed paths: - M /trunk/Ace3.toc + M /trunk M /trunk/changelog.txt -Update changelog and TOC +Update changelog ------------------------------------------------------------------------ -r1239 | nevcairiel | 2020-09-20 10:22:02 +0000 (Sun, 20 Sep 2020) | 1 line +r1307 | funkehdude | 2023-07-12 02:24:07 +0000 (Wed, 12 Jul 2023) | 1 line Changed paths: - M /trunk/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua + M /trunk/Ace3.toc -AceGUI-3.0: DropDown: Anchor all items to the dropdown frame instead of chaining anchors, fixes anchoring on WoW 9.0 with many items +bump toc ------------------------------------------------------------------------ -r1238 | nevcairiel | 2020-08-28 16:18:42 +0000 (Fri, 28 Aug 2020) | 3 lines +r1306 | nevcairiel | 2023-06-23 14:55:09 +0000 (Fri, 23 Jun 2023) | 9 lines Changed paths: - M /trunk/AceAddon-3.0/AceAddon-3.0.lua + M /trunk + M /trunk/.luacheckrc + M /trunk/AceDB-3.0/AceDB-3.0.lua -AceAddon-3.0: Blacklist more Blizzard addons from triggering Ace3 load events +AceDB-3.0: Add fallbacks for region names -These addons can be loaded very early by UIParent, which causes issues with loading certain addons +PTRs now return region 72, instead of extending the table fallback to +GetCurrentRegionName(), and an absolute fallback if even that fails, so +AceDB does not error out on loading. + +GetCurrentRegionName() could be used as the primary source, instead of +the look-up table, however we need to confirm first that the region keys +would remain stable. ------------------------------------------------------------------------ -r1237 | nevcairiel | 2020-07-17 22:50:38 +0000 (Fri, 17 Jul 2020) | 1 line +r1305 | funkehdude | 2023-06-21 11:59:15 +0000 (Wed, 21 Jun 2023) | 1 line Changed paths: - M /trunk/AceGUI-3.0/widgets/AceGUIContainer-DropDownGroup.lua - M /trunk/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua - M /trunk/AceGUI-3.0/widgets/AceGUIContainer-InlineGroup.lua - M /trunk/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua - M /trunk/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua - M /trunk/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua - M /trunk/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua - M /trunk/AceGUI-3.0/widgets/AceGUIWidget-MultiLineEditBox.lua - M /trunk/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua - -Use BackdropTemplate in WoW 9.0 + M /trunk/Ace3_Wrath.toc + +bump wrath toc ------------------------------------------------------------------------ -r1236 | nevcairiel | 2020-04-16 07:36:45 +0000 (Thu, 16 Apr 2020) | 1 line +r1304 | nevcairiel | 2023-05-19 19:50:10 +0000 (Fri, 19 May 2023) | 1 line Changed paths: - M /trunk/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua + M /trunk + M /trunk/AceDBOptions-3.0/AceDBOptions-3.0.lua -AceGUI-3.0: DropDown: Initialize the widget with an empty item list (instead of nil), this allows AddItem to be used right away (Fixes #542) +AceDBOptions-3.0: Minor locale fixes for russian ------------------------------------------------------------------------ -r1235 | nevcairiel | 2020-04-15 10:27:55 +0000 (Wed, 15 Apr 2020) | 1 line +r1303 | nevcairiel | 2023-05-16 15:05:10 +0000 (Tue, 16 May 2023) | 3 lines Changed paths: - M /trunk/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua + M /trunk + M /trunk/AceDBOptions-3.0/AceDBOptions-3.0.lua + +AceDBOptions-3.0: Update locale strings -Cleanup debug +Fixes WoWAce #629 ------------------------------------------------------------------------ -r1234 | nevcairiel | 2020-04-15 10:14:35 +0000 (Wed, 15 Apr 2020) | 1 line +r1302 | nevcairiel | 2023-05-03 07:00:09 +0000 (Wed, 03 May 2023) | 1 line Changed paths: - M /trunk/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua + M /trunk + M /trunk/Ace3.toc -AceGUI-3.0: TreeGroup: Remove pre-8.0 compat +Update TOC for 10.1 ------------------------------------------------------------------------ -r1233 | nevcairiel | 2020-04-15 10:09:47 +0000 (Wed, 15 Apr 2020) | 1 line +r1301 | funkehdude | 2023-03-22 02:53:32 +0000 (Wed, 22 Mar 2023) | 1 line Changed paths: - M /trunk/AceGUI-3.0/widgets/AceGUIWidget-Label.lua + M /trunk/Ace3.toc -AceGUI-3.0: Label: Refresh anchoring after changing the font (Fixes #540) +bump toc ------------------------------------------------------------------------ -r1232 | nevcairiel | 2020-04-14 22:21:22 +0000 (Tue, 14 Apr 2020) | 1 line +r1300 | funkehdude | 2023-01-28 00:06:37 +0000 (Sat, 28 Jan 2023) | 1 line Changed paths: - M /trunk/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua + M /trunk/Ace3.toc -AceConfigDialog-3.0: Prevent a dialog refresh when a multiselect control is closed during release (Fixes #539) +bump toc ------------------------------------------------------------------------ -r1231 | nevcairiel | 2020-04-14 22:20:36 +0000 (Tue, 14 Apr 2020) | 1 line +r1299 | funkehdude | 2023-01-22 03:36:39 +0000 (Sun, 22 Jan 2023) | 1 line Changed paths: - M /trunk/AceGUI-3.0/AceGUI-3.0.lua + M /trunk/Ace3_Wrath.toc -AceGUI-3.0: Add a getter to allow callers to check if a widget is currently being released, which can be used as part of some callbacks to alter behavior +bump toc ------------------------------------------------------------------------ -r1230 | funkydude | 2020-01-14 17:01:25 +0000 (Tue, 14 Jan 2020) | 1 line +r1298 | nevcairiel | 2022-12-12 15:10:10 +0000 (Mon, 12 Dec 2022) | 1 line Changed paths: - M /trunk/Ace3.toc + M /trunk + M /trunk/.luacheckrc + M /trunk/CallbackHandler-1.0/CallbackHandler-1.0.lua -bump toc +Update CallbackHandler to rev 8 ------------------------------------------------------------------------ -r1229 | funkydude | 2019-10-11 20:48:50 +0000 (Fri, 11 Oct 2019) | 1 line +r1297 | funkehdude | 2022-11-15 01:19:09 +0000 (Tue, 15 Nov 2022) | 1 line Changed paths: M /trunk/Ace3.toc bump toc ------------------------------------------------------------------------ -r1228 | nevcairiel | 2019-09-06 08:51:17 +0000 (Fri, 06 Sep 2019) | 3 lines +r1296 | nevcairiel | 2022-11-04 18:50:10 +0000 (Fri, 04 Nov 2022) | 4 lines Changed paths: - M /trunk/AceGUI-3.0/AceGUI-3.0.lua + M /trunk + M /trunk/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua + M /trunk/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua -AceGUI-3.0: Avoid re-entrance into the Release function +AceConfigDialog-3.0: Add support for displaying items on hover in GameTooltip -This can happen if a frame is released in a callback fired in the release process, and may in some cases throw errors. +This adds a new element to the config table, "tooltipHyperlink", which +will be used to fill the tooltip when hovering over the element. +------------------------------------------------------------------------ +r1295 | funkehdude | 2022-10-26 01:18:39 +0000 (Wed, 26 Oct 2022) | 1 line +Changed paths: + M /trunk/Ace3.toc + +bump toc ------------------------------------------------------------------------ diff --git a/Titan/libs/Ace/CallbackHandler-1.0/CallbackHandler-1.0.lua b/Titan/libs/Ace/CallbackHandler-1.0/CallbackHandler-1.0.lua index a8377fe..6b32193 100644 --- a/Titan/libs/Ace/CallbackHandler-1.0/CallbackHandler-1.0.lua +++ b/Titan/libs/Ace/CallbackHandler-1.0/CallbackHandler-1.0.lua @@ -1,5 +1,5 @@ ---[[ $Id: CallbackHandler-1.0.lua 1186 2018-07-21 14:19:18Z nevcairiel $ ]] -local MAJOR, MINOR = "CallbackHandler-1.0", 7 +--[[ $Id: CallbackHandler-1.0.lua 1298 2022-12-12 15:10:10Z nevcairiel $ ]] +local MAJOR, MINOR = "CallbackHandler-1.0", 8 local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) if not CallbackHandler then return end -- No upgrade needed @@ -7,26 +7,16 @@ if not CallbackHandler then return end -- No upgrade needed local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end} -- Lua APIs -local tconcat = table.concat -local assert, error, loadstring = assert, error, loadstring -local setmetatable, rawset, rawget = setmetatable, rawset, rawget +local securecallfunction, error = securecallfunction, error +local setmetatable, rawget = setmetatable, rawget local next, select, pairs, type, tostring = next, select, pairs, type, tostring --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: geterrorhandler - -local xpcall = xpcall - -local function errorhandler(err) - return geterrorhandler()(err) -end local function Dispatch(handlers, ...) local index, method = next(handlers) if not method then return end repeat - xpcall(method, errorhandler, ...) + securecallfunction(method, ...) index, method = next(handlers, index) until not method end @@ -39,7 +29,7 @@ end -- UnregisterName - name of the callback unregistration API, default "UnregisterCallback" -- UnregisterAllName - name of the API to unregister all callbacks, default "UnregisterAllCallbacks". false == don't publish this API. -function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName) +function CallbackHandler.New(_self, target, RegisterName, UnregisterName, UnregisterAllName) RegisterName = RegisterName or "RegisterCallback" UnregisterName = UnregisterName or "UnregisterCallback" @@ -67,13 +57,13 @@ function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAll if registry.insertQueue and oldrecurse==0 then -- Something in one of our callbacks wanted to register more callbacks; they got queued - for eventname,callbacks in pairs(registry.insertQueue) do - local first = not rawget(events, eventname) or not next(events[eventname]) -- test for empty before. not test for one member after. that one member may have been overwritten. - for self,func in pairs(callbacks) do - events[eventname][self] = func + for event,callbacks in pairs(registry.insertQueue) do + local first = not rawget(events, event) or not next(events[event]) -- test for empty before. not test for one member after. that one member may have been overwritten. + for object,func in pairs(callbacks) do + events[event][object] = func -- fire OnUsed callback? if first and registry.OnUsed then - registry.OnUsed(registry, target, eventname) + registry.OnUsed(registry, target, event) first = nil end end diff --git a/Titan/libs/Ace/LibSharedMedia-3.0/CHANGES.txt b/Titan/libs/Ace/LibSharedMedia-3.0/CHANGES.txt index bdfc4a9..d154389 100644 --- a/Titan/libs/Ace/LibSharedMedia-3.0/CHANGES.txt +++ b/Titan/libs/Ace/LibSharedMedia-3.0/CHANGES.txt @@ -1,29 +1,9 @@ ------------------------------------------------------------------------ -r115 | funkehdude | 2020-11-23 17:12:53 +0000 (Mon, 23 Nov 2020) | 1 line +r142 | funkehdude | 2023-10-11 11:07:08 +0000 (Wed, 11 Oct 2023) | 1 line Changed paths: M /trunk/LibSharedMedia-3.0.toc + M /trunk/LibSharedMedia-3.0_Wrath.toc bump toc ------------------------------------------------------------------------ -r114 | elkano | 2019-09-13 16:12:43 +0000 (Fri, 13 Sep 2019) | 2 lines -Changed paths: - M /trunk/LibSharedMedia-3.0/LibSharedMedia-3.0.lua - -fixes registering mp3 paths -closes #23 ------------------------------------------------------------------------- -r113 | elkano | 2019-07-14 17:20:43 +0000 (Sun, 14 Jul 2019) | 1 line -Changed paths: - M /trunk/LibSharedMedia-3.0/LibSharedMedia-3.0.lua - -readded pre-8.2 compatibility for classic client ------------------------------------------------------------------------- -r112 | elkano | 2019-07-11 16:45:13 +0000 (Thu, 11 Jul 2019) | 3 lines -Changed paths: - M /trunk/LibSharedMedia-3.0/LibSharedMedia-3.0.lua - -- removed pre 8.2 compat code -- BACKGROUND, BORDER, STATUSBAR and SOUND string values are meant for file paths with 8.2 limiting file access for such media to the interface folder, paths must now start with "interface" to be registered; numeric IDs for files are fine, too -- added the solid background as option for statusbar, too ------------------------------------------------------------------------- diff --git a/Titan/libs/Ace/LibSharedMedia-3.0/CallbackHandler-1.0/CallbackHandler-1.0.lua b/Titan/libs/Ace/LibSharedMedia-3.0/CallbackHandler-1.0/CallbackHandler-1.0.lua index a8377fe..21569f4 100644 --- a/Titan/libs/Ace/LibSharedMedia-3.0/CallbackHandler-1.0/CallbackHandler-1.0.lua +++ b/Titan/libs/Ace/LibSharedMedia-3.0/CallbackHandler-1.0/CallbackHandler-1.0.lua @@ -1,5 +1,5 @@ ---[[ $Id: CallbackHandler-1.0.lua 1186 2018-07-21 14:19:18Z nevcairiel $ ]] -local MAJOR, MINOR = "CallbackHandler-1.0", 7 +--[[ $Id: CallbackHandler-1.0.lua 26 2022-12-12 15:09:39Z nevcairiel $ ]] +local MAJOR, MINOR = "CallbackHandler-1.0", 8 local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) if not CallbackHandler then return end -- No upgrade needed @@ -7,26 +7,16 @@ if not CallbackHandler then return end -- No upgrade needed local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end} -- Lua APIs -local tconcat = table.concat -local assert, error, loadstring = assert, error, loadstring -local setmetatable, rawset, rawget = setmetatable, rawset, rawget +local securecallfunction, error = securecallfunction, error +local setmetatable, rawget = setmetatable, rawget local next, select, pairs, type, tostring = next, select, pairs, type, tostring --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: geterrorhandler - -local xpcall = xpcall - -local function errorhandler(err) - return geterrorhandler()(err) -end local function Dispatch(handlers, ...) local index, method = next(handlers) if not method then return end repeat - xpcall(method, errorhandler, ...) + securecallfunction(method, ...) index, method = next(handlers, index) until not method end @@ -39,7 +29,7 @@ end -- UnregisterName - name of the callback unregistration API, default "UnregisterCallback" -- UnregisterAllName - name of the API to unregister all callbacks, default "UnregisterAllCallbacks". false == don't publish this API. -function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName) +function CallbackHandler.New(_self, target, RegisterName, UnregisterName, UnregisterAllName) RegisterName = RegisterName or "RegisterCallback" UnregisterName = UnregisterName or "UnregisterCallback" @@ -67,13 +57,13 @@ function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAll if registry.insertQueue and oldrecurse==0 then -- Something in one of our callbacks wanted to register more callbacks; they got queued - for eventname,callbacks in pairs(registry.insertQueue) do - local first = not rawget(events, eventname) or not next(events[eventname]) -- test for empty before. not test for one member after. that one member may have been overwritten. - for self,func in pairs(callbacks) do - events[eventname][self] = func + for event,callbacks in pairs(registry.insertQueue) do + local first = not rawget(events, event) or not next(events[event]) -- test for empty before. not test for one member after. that one member may have been overwritten. + for object,func in pairs(callbacks) do + events[event][object] = func -- fire OnUsed callback? if first and registry.OnUsed then - registry.OnUsed(registry, target, eventname) + registry.OnUsed(registry, target, event) first = nil end end diff --git a/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0.toc b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0.toc index 2c00d78..26614a8 100644 --- a/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0.toc +++ b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0.toc @@ -1,15 +1,15 @@ -## Interface: 90002 +## Interface: 100107 ## LoadOnDemand: 1 ## Title: Lib: SharedMedia-3.0 ## Notes: Shared handling of media data (fonts, sounds, textures, ...) between addons. ## Author: Elkano -## Version: 3.0-115 -## X-Website: http://www.wowace.com/projects/libsharedmedia-3-0/ +## Version: 3.0-142 +## X-Website: https://www.curseforge.com/wow/addons/libsharedmedia-3-0 ## X-Category: Library -## X-Revision: 115 -## X-Date: 2020-11-23T17:12:53Z +## X-Revision: 142 +## X-Date: 2023-10-11T11:07:08Z LibStub\LibStub.lua CallbackHandler-1.0\CallbackHandler-1.0.lua diff --git a/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0/LibSharedMedia-3.0.lua b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0/LibSharedMedia-3.0.lua index c66e9cc..fb3446c 100644 --- a/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0/LibSharedMedia-3.0.lua +++ b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0/LibSharedMedia-3.0.lua @@ -1,6 +1,7 @@ +--@curseforge-project-slug: libsharedmedia-3-0@ --[[ Name: LibSharedMedia-3.0 -Revision: $Revision: 114 $ +Revision: $Revision: 128 $ Author: Elkano (elkano@gmx.de) Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com) Website: http://www.wowace.com/projects/libsharedmedia-3-0/ diff --git a/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_TBC.toc b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_TBC.toc new file mode 100644 index 0000000..0c503dd --- /dev/null +++ b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_TBC.toc @@ -0,0 +1,18 @@ +## Interface: 20504 +## LoadOnDemand: 1 + +## Title: Lib: SharedMedia-3.0 +## Notes: Shared handling of media data (fonts, sounds, textures, ...) between addons. +## Author: Elkano +## Version: 3.0-142 +## X-Website: https://www.curseforge.com/wow/addons/libsharedmedia-3-0 +## X-Category: Library + +## X-Revision: 142 +## X-Date: 2023-10-11T11:07:08Z + +LibStub\LibStub.lua +CallbackHandler-1.0\CallbackHandler-1.0.lua + +LibSharedMedia-3.0\lib.xml + diff --git a/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_Vanilla.toc b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_Vanilla.toc new file mode 100644 index 0000000..7dfa670 --- /dev/null +++ b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_Vanilla.toc @@ -0,0 +1,18 @@ +## Interface: 11404 +## LoadOnDemand: 1 + +## Title: Lib: SharedMedia-3.0 +## Notes: Shared handling of media data (fonts, sounds, textures, ...) between addons. +## Author: Elkano +## Version: 3.0-142 +## X-Website: https://www.curseforge.com/wow/addons/libsharedmedia-3-0 +## X-Category: Library + +## X-Revision: 142 +## X-Date: 2023-10-11T11:07:08Z + +LibStub\LibStub.lua +CallbackHandler-1.0\CallbackHandler-1.0.lua + +LibSharedMedia-3.0\lib.xml + diff --git a/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_Wrath.toc b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_Wrath.toc new file mode 100644 index 0000000..4a9f887 --- /dev/null +++ b/Titan/libs/Ace/LibSharedMedia-3.0/LibSharedMedia-3.0_Wrath.toc @@ -0,0 +1,18 @@ +## Interface: 30403 +## LoadOnDemand: 1 + +## Title: Lib: SharedMedia-3.0 +## Notes: Shared handling of media data (fonts, sounds, textures, ...) between addons. +## Author: Elkano +## Version: 3.0-142 +## X-Website: https://www.curseforge.com/wow/addons/libsharedmedia-3-0 +## X-Category: Library + +## X-Revision: 142 +## X-Date: 2023-10-11T11:07:08Z + +LibStub\LibStub.lua +CallbackHandler-1.0\CallbackHandler-1.0.lua + +LibSharedMedia-3.0\lib.xml + diff --git a/Titan/libs/Ace/LibStub/LibStub.lua b/Titan/libs/Ace/LibStub/LibStub.lua index 0a41ac0..d50c267 100644 --- a/Titan/libs/Ace/LibStub/LibStub.lua +++ b/Titan/libs/Ace/LibStub/LibStub.lua @@ -7,24 +7,24 @@ if not LibStub or LibStub.minor < LIBSTUB_MINOR then LibStub = LibStub or {libs = {}, minors = {} } _G[LIBSTUB_MAJOR] = LibStub LibStub.minor = LIBSTUB_MINOR - + function LibStub:NewLibrary(major, minor) assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)") - minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.") - + minor = assert(tonumber(string.match(minor, "%d+")), "Minor version must either be a number or contain a number.") + local oldminor = self.minors[major] if oldminor and oldminor >= minor then return nil end self.minors[major], self.libs[major] = minor, self.libs[major] or {} return self.libs[major], oldminor end - + function LibStub:GetLibrary(major, silent) if not self.libs[major] and not silent then error(("Cannot find a library instance of %q."):format(tostring(major)), 2) end return self.libs[major], self.minors[major] end - + function LibStub:IterateLibraries() return pairs(self.libs) end setmetatable(LibStub, { __call = LibStub.GetLibrary }) end diff --git a/Titan/libs/Ace/README.md b/Titan/libs/Ace/README.md new file mode 100644 index 0000000..ea0b5a4 --- /dev/null +++ b/Titan/libs/Ace/README.md @@ -0,0 +1,26 @@ +Ace3 - AddOn development framework +================================== + +Ace3 is a comprehensive framework for WoW AddOn development to streamline many of the common tasks in developing addons. This includes lifecycles, saved variables, configuration, event handling, network communications, and more. + +Documentation +------------- + +A basic introduction to usage can be found here: +https://www.wowace.com/projects/ace3/pages/getting-started + +Documentation can be found here: +https://www.wowace.com/addons/ace3/pages/ + +Resources +--------- +A development repository is available on GitHub: +https://github.com/WoWUIDev/Ace3 + +Please note that the CurseForge/WoWAce SVN repository remains the primary authority, and what should be used in .pkgmeta to reference Ace3. + +.pkgmeta reference: +Base Path: https://repos.wowace.com/wow/ace3/trunk +Example for AceAddon-3.0: https://repos.wowace.com/wow/ace3/trunk/AceAddon-3.0 + +It is recommended to reference the specific Ace3 libraries you are using directly, instead of pulling in the entire package. diff --git a/Titan/libs/Ace/changelog.txt b/Titan/libs/Ace/changelog.txt index b00755e..97c8a31 100644 --- a/Titan/libs/Ace/changelog.txt +++ b/Titan/libs/Ace/changelog.txt @@ -1,3 +1,31 @@ +Ace3 Release - Revision r1309 (July 12th, 2023) +----------------------------------------------- +- AceDB-3.0: Fixed an issue due to a region change on the PTR +- AceDBOptions-3.0: Updated locale strings + +Ace3 Release - Revision r1294 (October 22nd, 2022) +-------------------------------------------------- +- Ace3 should be fully supported on WoW 10.0 +- AceGUI-3.0: TabGroup: Fixes for WoW 10.0 template changes +- AceConfigDialog-3.0: New Settings panel integration for WoW 10.0 + +Ace3 Release - Revision r1281 (September 21st, 2022) +-------------------------------------------------- +- AceGUI-3.0: Preliminary support for WoW 10.0 +- AceGUI-3.0: MultiLineEditBox: Fixed an issue with mouse interactivity on re-cycled editboxes in certain circumstances +- AceGUI-3.0: Label: Use font objects to allow font fallback mechanics to be used + +Ace3 Release - Revision r1259 (February 23rd, 2022) +-------------------------------------------------- +- AceGUI-3.0: Dropdown: Fix double click sound on toggling the dropdown (Issue #575) +- AceConfigDialog-3.0: Fix width number multiplier on multiselects (Issue #584) + +Ace3 Release - Revision r1252 (May 17th, 2021) +-------------------------------------------------- +- AceConfigDialog-3.0: Increased the frame level of dialogs to allow other addons to draw below them +- AceConfigDialog-3.0: The validation/confirmation popup is now opaque and not click-through, to avoid accidentally activating options below it +- AceHook-3.0: Allow UnhookAll to be used without embedding (Fixes #558) + Ace3 Release - Revision r1241 (October 13th, 2020) -------------------------------------------------- - AceAddon-3.0: Suppress more Blizzard addon load events from activating Ace3 addons "too early", causing loading issues.