Skip to content

Commit 2213517

Browse files
Release v6.4.3
1 parent cae0d0b commit 2213517

24 files changed

Lines changed: 1706 additions & 1079 deletions

EllesmereUI.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6134,7 +6134,7 @@ end
61346134
-------------------------------------------------------------------------------
61356135
-- Slash commands
61366136
-------------------------------------------------------------------------------
6137-
EllesmereUI.VERSION = "6.4.1"
6137+
EllesmereUI.VERSION = "6.4.3"
61386138

61396139
-- Register this addon's version into a shared global table (taint-free at load time)
61406140
if not _G._EUI_AddonVersions then _G._EUI_AddonVersions = {} end

EllesmereUI.toc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Title: |cff0cd29fEllesmereUI|r
33
## Notes: Shared framework for the EllesmereUI addon suite
44
## Author: Ellesmere
5-
## Version: 6.4.2
5+
## Version: 6.4.3
66
## SavedVariables: EllesmereUIDB
77
## IconTexture: Interface\AddOns\EllesmereUI\media\eg-logo.tga
88
## X-Curse-Project-ID: 1477613

EllesmereUIActionBars/EllesmereUIActionBars.lua

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6329,25 +6329,11 @@ function EAB:OnInitialize()
63296329

63306330
self.db = EllesmereUI.Lite.NewDB("EllesmereUIActionBarsDB", defaults, true)
63316331

6332-
-- Round width/height to whole pixels (one-time migration)
6333-
if self.db.profile and self.db.profile.bars and EllesmereUI.RoundSizeFields then
6334-
local sizeKeys = { "buttonWidth", "buttonHeight" }
6335-
for _, barSettings in pairs(self.db.profile.bars) do
6336-
if type(barSettings) == "table" then
6337-
EllesmereUI.RoundSizeFields(sizeKeys, { barSettings })
6338-
end
6339-
end
6340-
end
6341-
63426332
-- Mark whether we need to capture Blizzard layout on first install.
63436333
-- The actual capture is deferred to PLAYER_ENTERING_WORLD when
63446334
-- Edit Mode has fully applied bar positions/sizes.
63456335
-- Uses the per-install flag on the SV root, not per-profile.
63466336
local sv = self.db.sv
6347-
-- Migrate old shared flag to per-addon key (v5.9.6+)
6348-
if sv._capturedOnce and not sv._capturedOnce_EAB then
6349-
sv._capturedOnce_EAB = true
6350-
end
63516337
self._needsCapture = not sv._capturedOnce_EAB
63526338

63536339
-- Slash commands

EllesmereUIActionBars/EllesmereUIActionBars.toc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Group: EllesmereUI
55
## Notes: Custom Action Bars
66
## Author: Ellesmere
7-
## Version: 6.4.2
7+
## Version: 6.4.3
88
## Dependencies: EllesmereUI
99
## SavedVariables: EllesmereUIActionBarsDB
1010
## IconTexture: Interface\AddOns\EllesmereUI\media\eg-logo.tga

EllesmereUIAuraBuffReminders/EllesmereUIAuraBuffReminders.toc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Group: EllesmereUI
55
## Notes: Reminders for upkeeping Auras, Buffs and Consumables
66
## Author: Ellesmere
7-
## Version: 6.4.2
7+
## Version: 6.4.3
88
## Dependencies: EllesmereUI
99
## SavedVariables: EllesmereUIAuraBuffRemindersDB
1010
## IconTexture: Interface\AddOns\EllesmereUI\media\eg-logo.tga

EllesmereUIBasics/EUI_Basics_Cursor_Options.lua

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,9 @@ initFrame:SetScript("OnEvent", function(self)
156156
end,
157157
onClick = function(self)
158158
local p = DB(); if not p then return end
159-
if p.useClassColor then
159+
if p.useClassColor or p.useAccentColor then
160160
p.useClassColor = false
161+
p.useAccentColor = false
161162
RefreshAddon(); EllesmereUI:RefreshPage()
162163
return
163164
end
@@ -166,7 +167,7 @@ initFrame:SetScript("OnEvent", function(self)
166167
refreshAlpha = function()
167168
local p = DB()
168169
if not p or p.enabled == false then return 0.15 end
169-
return (p.useClassColor) and 0.3 or 1
170+
return (p.useClassColor or p.useAccentColor) and 0.3 or 1
170171
end },
171172
{ tooltip = "Class Colored",
172173
hasAlpha = false,
@@ -180,13 +181,32 @@ initFrame:SetScript("OnEvent", function(self)
180181
onClick = function()
181182
local p = DB(); if not p then return end
182183
p.useClassColor = true
184+
p.useAccentColor = false
183185
RefreshAddon(); EllesmereUI:RefreshPage()
184186
end,
185187
refreshAlpha = function()
186188
local p = DB()
187189
if not p or p.enabled == false then return 0.15 end
188190
return (p.useClassColor) and 1 or 0.3
189191
end },
192+
{ tooltip = "Accent Color",
193+
hasAlpha = false,
194+
getValue = function()
195+
local ar, ag, ab = EllesmereUI.GetAccentColor()
196+
return ar, ag, ab
197+
end,
198+
setValue = function() end,
199+
onClick = function()
200+
local p = DB(); if not p then return end
201+
p.useAccentColor = true
202+
p.useClassColor = false
203+
RefreshAddon(); EllesmereUI:RefreshPage()
204+
end,
205+
refreshAlpha = function()
206+
local p = DB()
207+
if not p or p.enabled == false then return 0.15 end
208+
return (p.useAccentColor) and 1 or 0.3
209+
end },
190210
} }
191211
); y = y - h
192212
-- Block overlay on the right region when Cursor Circle is disabled
@@ -287,8 +307,9 @@ initFrame:SetScript("OnEvent", function(self)
287307
end,
288308
onClick = function(self)
289309
local g = GCD_DB()
290-
if g.useClassColor then
310+
if g.useClassColor or g.useAccentColor then
291311
g.useClassColor = false
312+
g.useAccentColor = false
292313
RefreshGCD(); EllesmereUI:RefreshPage()
293314
return
294315
end
@@ -297,7 +318,7 @@ initFrame:SetScript("OnEvent", function(self)
297318
refreshAlpha = function()
298319
local g = GCD_DB()
299320
if not g.enabled then return 0.15 end
300-
return g.useClassColor and 0.3 or 1
321+
return (g.useClassColor or g.useAccentColor) and 0.3 or 1
301322
end },
302323
{ tooltip = "Class Colored",
303324
hasAlpha = false,
@@ -311,13 +332,32 @@ initFrame:SetScript("OnEvent", function(self)
311332
onClick = function()
312333
local g = GCD_DB()
313334
g.useClassColor = true
335+
g.useAccentColor = false
314336
RefreshGCD(); EllesmereUI:RefreshPage()
315337
end,
316338
refreshAlpha = function()
317339
local g = GCD_DB()
318340
if not g.enabled then return 0.15 end
319341
return g.useClassColor and 1 or 0.3
320342
end },
343+
{ tooltip = "Accent Color",
344+
hasAlpha = false,
345+
getValue = function()
346+
local ar, ag, ab = EllesmereUI.GetAccentColor()
347+
return ar, ag, ab
348+
end,
349+
setValue = function() end,
350+
onClick = function()
351+
local g = GCD_DB()
352+
g.useAccentColor = true
353+
g.useClassColor = false
354+
RefreshGCD(); EllesmereUI:RefreshPage()
355+
end,
356+
refreshAlpha = function()
357+
local g = GCD_DB()
358+
if not g.enabled then return 0.15 end
359+
return g.useAccentColor and 1 or 0.3
360+
end },
321361
} }
322362
); y = y - h
323363
-- Block overlay on the right region when GCD Circle is disabled
@@ -407,8 +447,9 @@ initFrame:SetScript("OnEvent", function(self)
407447
end,
408448
onClick = function(self)
409449
local c = Cast_DB()
410-
if c.useClassColor then
450+
if c.useClassColor or c.useAccentColor then
411451
c.useClassColor = false
452+
c.useAccentColor = false
412453
RefreshCast(); EllesmereUI:RefreshPage()
413454
return
414455
end
@@ -417,7 +458,7 @@ initFrame:SetScript("OnEvent", function(self)
417458
refreshAlpha = function()
418459
local c = Cast_DB()
419460
if not c.enabled then return 0.15 end
420-
return c.useClassColor and 0.3 or 1
461+
return (c.useClassColor or c.useAccentColor) and 0.3 or 1
421462
end },
422463
{ tooltip = "Class Colored",
423464
hasAlpha = false,
@@ -431,13 +472,32 @@ initFrame:SetScript("OnEvent", function(self)
431472
onClick = function()
432473
local c = Cast_DB()
433474
c.useClassColor = true
475+
c.useAccentColor = false
434476
RefreshCast(); EllesmereUI:RefreshPage()
435477
end,
436478
refreshAlpha = function()
437479
local c = Cast_DB()
438480
if not c.enabled then return 0.15 end
439481
return c.useClassColor and 1 or 0.3
440482
end },
483+
{ tooltip = "Accent Color",
484+
hasAlpha = false,
485+
getValue = function()
486+
local ar, ag, ab = EllesmereUI.GetAccentColor()
487+
return ar, ag, ab
488+
end,
489+
setValue = function() end,
490+
onClick = function()
491+
local c = Cast_DB()
492+
c.useAccentColor = true
493+
c.useClassColor = false
494+
RefreshCast(); EllesmereUI:RefreshPage()
495+
end,
496+
refreshAlpha = function()
497+
local c = Cast_DB()
498+
if not c.enabled then return 0.15 end
499+
return c.useAccentColor and 1 or 0.3
500+
end },
441501
} }
442502
); y = y - h
443503
-- Block overlay on the right region when Cast Bar Circle is disabled

EllesmereUIBasics/EUI_Basics_Options.lua

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,17 @@ initFrame:SetScript("OnEvent", function(self)
146146
if not c or not c.enabled then return 0.15 end
147147
return c.useClassColor and 0.3 or 1
148148
end },
149-
{ tooltip = "Class Colored",
149+
{ tooltip = "Accent Color",
150150
hasAlpha = false,
151151
getValue = function()
152-
local _, classFile = UnitClass("player")
153-
local cc = classFile and RAID_CLASS_COLORS and RAID_CLASS_COLORS[classFile]
154-
if cc then return cc.r, cc.g, cc.b end
155-
return 0.05, 0.05, 0.05
152+
local ar, ag, ab = EllesmereUI.GetAccentColor()
153+
return ar, ag, ab
156154
end,
157155
setValue = function() end,
156+
-- Flag name stays `useClassColor` for backwards compat with
157+
-- users who already have it stamped in their SavedVariables.
158+
-- Only the color resolution changes -- the flag now means
159+
-- "use live accent" rather than "use class color".
158160
onClick = function()
159161
local c = getCfg(); if not c then return end
160162
c.useClassColor = true

EllesmereUIBasics/EUI_Basics_QuestTracker_Options.lua

Lines changed: 97 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -397,17 +397,14 @@ initFrame:SetScript("OnEvent", function(self)
397397
{ type="slider", text="Title Size", min=8, max=24, step=1,
398398
getValue=function() return Cfg("titleFontSize") or 11 end,
399399
setValue=function(v) Set("titleFontSize", v); Refresh() end })
400+
401+
-- Title color: single custom swatch (unchanged behavior)
400402
do
401-
local function AttachSwatch(rgn, label, colorKey, dr, dg, db, useAccent)
403+
local function AttachSwatch(rgn, label, colorKey, dr, dg, db)
402404
local sw = EllesmereUI.BuildColorSwatch(rgn, rgn:GetFrameLevel() + 5,
403405
function()
404406
local c = Cfg(colorKey) or {}
405-
if c.r then return c.r, c.g, c.b end
406-
if useAccent then
407-
local eg = EllesmereUI.ELLESMERE_GREEN
408-
if eg then return eg.r, eg.g, eg.b end
409-
end
410-
return dr, dg, db
407+
return c.r or dr, c.g or dg, c.b or db
411408
end,
412409
function(r, g, b)
413410
local c = Cfg(colorKey) or {}
@@ -419,10 +416,99 @@ initFrame:SetScript("OnEvent", function(self)
419416
sw:SetScript("OnEnter", function(s) EllesmereUI.ShowWidgetTooltip(s, label .. " Color") end)
420417
sw:SetScript("OnLeave", function() EllesmereUI.HideWidgetTooltip() end)
421418
end
422-
-- secColor passes useAccent=true so the swatch displays the
423-
-- live accent when the user has not explicitly chosen a color
424-
AttachSwatch(row._leftRegion, "Header", "secColor", 0.047, 0.824, 0.624, true)
425-
AttachSwatch(row._rightRegion, "Title", "titleColor", 1.0, 0.85, 0.1)
419+
AttachSwatch(row._rightRegion, "Title", "titleColor", 1.0, 0.85, 0.1)
420+
end
421+
422+
-- Header color: double inline swatch (custom | accent), matching the
423+
-- CDM border-size pattern but using the live EllesmereUI accent
424+
-- instead of class color. Right swatch = accent mode (activates on
425+
-- click, shows live ELLESMERE_GREEN). Left swatch = custom color
426+
-- (activates on click, color picker opens). While accent mode is
427+
-- active, the custom swatch is dimmed and blocked.
428+
do
429+
local leftRgn = row._leftRegion
430+
local ctrl = leftRgn._control
431+
local PP = EllesmereUI.PP
432+
433+
-- Right (accent) swatch: one-click to activate accent mode.
434+
-- getValue reads ELLESMERE_GREEN live so theme/accent changes
435+
-- repaint the swatch automatically.
436+
local accentSwatch, updateAccentSwatch = EllesmereUI.BuildColorSwatch(
437+
leftRgn, row:GetFrameLevel() + 3,
438+
function()
439+
local eg = EllesmereUI.ELLESMERE_GREEN
440+
if eg then return eg.r, eg.g, eg.b end
441+
return 0.047, 0.824, 0.624
442+
end,
443+
function() end, -- no color picker, read-only display
444+
false, 20)
445+
PP.Point(accentSwatch, "RIGHT", ctrl, "LEFT", -8, 0)
446+
accentSwatch:SetScript("OnClick", function()
447+
Set("secColorUseAccent", true)
448+
Refresh()
449+
EllesmereUI:RefreshPage()
450+
end)
451+
accentSwatch:SetScript("OnEnter", function()
452+
EllesmereUI.ShowWidgetTooltip(accentSwatch, "Accent Color")
453+
end)
454+
accentSwatch:SetScript("OnLeave", function() EllesmereUI.HideWidgetTooltip() end)
455+
456+
-- Left (custom) swatch: color picker when accent mode is off.
457+
local customSwatch, updateCustomSwatch = EllesmereUI.BuildColorSwatch(
458+
leftRgn, row:GetFrameLevel() + 3,
459+
function()
460+
local c = Cfg("secColor") or {}
461+
if c.r then return c.r, c.g, c.b end
462+
return 0.047, 0.824, 0.624
463+
end,
464+
function(r, g, b)
465+
local c = Cfg("secColor") or {}
466+
c.r = r; c.g = g; c.b = b
467+
Set("secColor", c)
468+
-- Picking a custom color implicitly disables accent mode
469+
Set("secColorUseAccent", false)
470+
Refresh()
471+
end,
472+
false, 20)
473+
PP.Point(customSwatch, "RIGHT", accentSwatch, "LEFT", -8, 0)
474+
customSwatch:SetScript("OnEnter", function()
475+
EllesmereUI.ShowWidgetTooltip(customSwatch, "Custom Color")
476+
end)
477+
customSwatch:SetScript("OnLeave", function() EllesmereUI.HideWidgetTooltip() end)
478+
479+
-- Block overlay: while accent mode is active, clicking the
480+
-- custom swatch flips accent mode off instead of opening the
481+
-- color picker. Prevents the user from accidentally picking a
482+
-- color before choosing whether to deviate from accent.
483+
local customBlock = CreateFrame("Button", nil, customSwatch)
484+
customBlock:SetAllPoints()
485+
customBlock:SetFrameLevel(customSwatch:GetFrameLevel() + 10)
486+
customBlock:EnableMouse(true)
487+
customBlock:SetScript("OnClick", function()
488+
if Cfg("secColorUseAccent") then
489+
Set("secColorUseAccent", false)
490+
Refresh()
491+
EllesmereUI:RefreshPage()
492+
end
493+
end)
494+
customBlock:SetScript("OnEnter", function()
495+
EllesmereUI.ShowWidgetTooltip(customSwatch, "Custom Color")
496+
end)
497+
customBlock:SetScript("OnLeave", function() EllesmereUI.HideWidgetTooltip() end)
498+
499+
local function UpdateHeaderSwatchState()
500+
local useAccent = Cfg("secColorUseAccent")
501+
if useAccent then
502+
customSwatch:SetAlpha(0.3); customBlock:Show()
503+
else
504+
customSwatch:SetAlpha(1); customBlock:Hide()
505+
end
506+
accentSwatch:SetAlpha(useAccent and 1 or 0.3)
507+
end
508+
EllesmereUI.RegisterWidgetRefresh(function()
509+
updateCustomSwatch(); updateAccentSwatch(); UpdateHeaderSwatchState()
510+
end)
511+
UpdateHeaderSwatchState()
426512
end
427513
y = y - h
428514

0 commit comments

Comments
 (0)