chore(libs): sync Ace3 to coa-ace3 d422ad3

Aligns the unsuffixed Ace bundle with the rest of the Exiles forks
(the -ElvUI namespaced copies are intentionally left alone to keep
ElvUI's config UI isolated from any other addon's LibStub registrations).

Per-library MINOR moves:
  CallbackHandler-1.0   6  →  8
  AceAddon-3.0         12  → 13
  AceTimer-3.0       1017  → 17  (canonical numbering — same C_Timer impl)
  AceHook-3.0           8  →  9
  AceDB-3.0            27  → 33
  AceDBOptions-3.0     15  → 15  (unchanged)
  AceComm-3.0          12  → 14
  AceSerializer-3.0     3  →  5

Other Ace libs (Event, Config family, GUI, Locale, Console, Bucket) were
already at the canonical target.
This commit is contained in:
2026-05-24 17:05:40 +02:00
parent 5021fd1bce
commit 0c130e013b
41 changed files with 1340 additions and 1316 deletions
@@ -4,17 +4,13 @@ local AceGUI = LibStub("AceGUI-3.0")
-- Lua APIs
local min, max, floor = math.min, math.max, math.floor
local select, pairs, ipairs, type, tostring = select, pairs, ipairs, type, tostring
local tsort, tonumber = table.sort, tonumber
local tsort = table.sort
-- WoW APIs
local PlaySound = PlaySound
local UIParent, CreateFrame = UIParent, CreateFrame
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: CLOSE
local function fixlevels(parent,...)
local i = 1
local child = select(i, ...)
@@ -39,7 +35,7 @@ end
do
local widgetType = "Dropdown-Pullout"
local widgetVersion = 3
local widgetVersion = 5
--[[ Static data ]]--
@@ -193,12 +189,7 @@ do
local height = 8
for i, item in pairs(items) do
if i == 1 then
item:SetPoint("TOP", itemFrame, "TOP", 0, -2)
else
item:SetPoint("TOP", items[i-1].frame, "BOTTOM", 0, 1)
end
item:SetPoint("TOP", itemFrame, "TOP", 0, -2 + (i - 1) * -16)
item:Show()
height = height + 16
@@ -258,7 +249,7 @@ do
local function Constructor()
local count = AceGUI:GetNextWidgetNum(widgetType)
local frame = CreateFrame("Frame", "AceGUI30Pullout"..count, UIParent)
local frame = CreateFrame("Frame", "AceGUI30Pullout"..count, UIParent, "BackdropTemplate")
local self = {}
self.count = count
self.type = widgetType
@@ -309,7 +300,7 @@ do
scrollFrame.obj = self
itemFrame.obj = self
local slider = CreateFrame("Slider", "AceGUI30PulloutScrollbar"..count, scrollFrame)
local slider = CreateFrame("Slider", "AceGUI30PulloutScrollbar"..count, scrollFrame, "BackdropTemplate")
slider:SetOrientation("VERTICAL")
slider:SetHitRectInsets(0, 0, -10, 0)
slider:SetBackdrop(sliderBackdrop)
@@ -356,7 +347,7 @@ end
do
local widgetType = "Dropdown"
local widgetVersion = 35
local widgetVersion = 36
--[[ Static data ]]--
@@ -381,7 +372,6 @@ do
local function Dropdown_TogglePullout(this)
local self = this.obj
PlaySound("igMainMenuOptionCheckBoxOn") -- missleading name, but the Blizzard code uses this sound
if self.open then
self.open = nil
self.pullout:Close()
@@ -599,47 +589,21 @@ do
return tostring(x) < tostring(y)
end
end
-- these were added by ElvUI
local sortStr1, sortStr2 = "%((%d+)%)", "%[(%d+)]"
local sortValue = function(a,b)
if a and b and (a[2] and b[2]) then
local a2 = tonumber(a[2]:match(sortStr1) or a[2]:match(sortStr2))
local b2 = tonumber(b[2]:match(sortStr1) or b[2]:match(sortStr2))
if a2 and b2 and (a2 ~= b2) then
return a2 < b2 -- try to sort by the number inside of brackets if we can
end
return a[2] < b[2]
end
end
local function SetList(self, list, order, itemType, sortByValue)
local function SetList(self, list, order, itemType)
self.list = list or {}
self.pullout:Clear()
self.hasClose = nil
if not list then return end
if type(order) ~= "table" then
if sortByValue then -- added by ElvUI
for k, v in pairs(list) do
sortlist[#sortlist + 1] = {k,v}
end
tsort(sortlist, sortValue)
for v in pairs(list) do
sortlist[#sortlist + 1] = v
end
tsort(sortlist, sortTbl)
for i, sortedList in ipairs(sortlist) do
AddListItem(self, sortedList[1], sortedList[2], itemType)
sortlist[i] = nil
end
else -- this is the default way (unchanged by ElvUI)
for v in pairs(list) do
sortlist[#sortlist + 1] = v
end
tsort(sortlist, sortTbl)
for i, key in ipairs(sortlist) do
AddListItem(self, key, list[key], itemType)
sortlist[i] = nil
end
for i, key in ipairs(sortlist) do
AddListItem(self, key, list[key], itemType)
sortlist[i] = nil
end
else
for i, key in ipairs(order) do