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
@@ -2,7 +2,7 @@
Slider Widget
Graphical Slider, like, for Range values.
-------------------------------------------------------------------------------]]
local Type, Version = "Slider", 20
local Type, Version = "Slider", 24
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
@@ -14,10 +14,6 @@ local tonumber, pairs = tonumber, pairs
local PlaySound = PlaySound
local CreateFrame, UIParent = CreateFrame, UIParent
-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
-- List them here for Mikk's FindGlobals script
-- GLOBALS: GameFontHighlightSmall
--[[-----------------------------------------------------------------------------
Support functions
-------------------------------------------------------------------------------]]
@@ -31,13 +27,13 @@ local function UpdateText(self)
end
local function UpdateLabels(self)
local min, max = (self.min or 0), (self.max or 100)
local min_value, max_value = (self.min or 0), (self.max or 100)
if self.ispercent then
self.lowtext:SetFormattedText("%s%%", (min * 100))
self.hightext:SetFormattedText("%s%%", (max * 100))
self.lowtext:SetFormattedText("%s%%", (min_value * 100))
self.hightext:SetFormattedText("%s%%", (max_value * 100))
else
self.lowtext:SetText(min)
self.hightext:SetText(max)
self.lowtext:SetText(min_value)
self.hightext:SetText(max_value)
end
end
@@ -60,6 +56,10 @@ end
local function Slider_OnValueChanged(frame, newvalue)
local self = frame.obj
if not frame.setup then
if self.step and self.step > 0 then
local min_value = self.min or 0
newvalue = floor((newvalue - min_value) / self.step + 0.5) * self.step + min_value
end
if newvalue ~= self.value and not self.disabled then
self.value = newvalue
self:Fire("OnValueChanged", newvalue)
@@ -103,7 +103,7 @@ local function EditBox_OnEnterPressed(frame)
end
if value then
PlaySound("igMainMenuOptionCheckBoxOn")
PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
self.slider:SetValue(value)
self:Fire("OnMouseUp", value)
end
@@ -171,16 +171,13 @@ local methods = {
self.label:SetText(text)
end,
["SetSliderValues"] = function(self, min, max, step)
if type(min) == 'function' then min = min() end -- ElvUI
if type(max) == 'function' then max = max() end -- ElvUI
["SetSliderValues"] = function(self, min_value, max_value, step)
local frame = self.slider
frame.setup = true
self.min = min
self.max = max
self.min = min_value
self.max = max_value
self.step = step
frame:SetMinMaxValues(min or 0,max or 100)
frame:SetMinMaxValues(min_value or 0,max_value or 100)
UpdateLabels(self)
frame:SetValueStep(step or 1)
if self.value then
@@ -224,7 +221,7 @@ local function Constructor()
label:SetJustifyH("CENTER")
label:SetHeight(15)
local slider = CreateFrame("Slider", nil, frame)
local slider = CreateFrame("Slider", nil, frame, "BackdropTemplate")
slider:SetOrientation("HORIZONTAL")
slider:SetHeight(15)
slider:SetHitRectInsets(0, 0, -10, 0)
@@ -246,7 +243,7 @@ local function Constructor()
local hightext = slider:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
hightext:SetPoint("TOPRIGHT", slider, "BOTTOMRIGHT", -2, 3)
local editbox = CreateFrame("EditBox", nil, frame)
local editbox = CreateFrame("EditBox", nil, frame, "BackdropTemplate")
editbox:SetAutoFocus(false)
editbox:SetFontObject(GameFontHighlightSmall)
editbox:SetPoint("TOP", slider, "BOTTOM")
@@ -276,6 +273,7 @@ local function Constructor()
widget[method] = func
end
slider.obj, editbox.obj = widget, widget
C_Timer.After(0.3, function() editbox:SetText(" ") UpdateText(widget) end) -- Workaround for font loading issue, making the editboxes blank until the text is changed
return AceGUI:RegisterAsWidget(widget)
end