feat: pfUI background aplha compatibility

This commit is contained in:
Vati
2026-03-29 20:03:40 +04:00
parent b1b6308f1b
commit e2afc5dc22
4 changed files with 96 additions and 3 deletions
+1
View File
@@ -149,6 +149,7 @@ function DB:Initialize()
Guda_CharDB.settings.theme = "pfui"
Guda_CharDB.settings.hideBorders = true
Guda_CharDB.settings.bgTransparency = Guda.Constants.PFUI_DEFAULT_BG_TRANSPARENCY
Guda_CharDB.settings.usePfUITransparency = true
Guda_CharDB.settings.iconSpacing = 8
end
end
+13 -3
View File
@@ -495,11 +495,21 @@ function Theme:ApplyToFrame(frame)
-- Background color / alpha
local bg = t.bgColor
local transparency = 0.15
local alpha
local usePfUITransp = false
if addon.Modules and addon.Modules.DB then
transparency = addon.Modules.DB:GetSetting("bgTransparency") or 0.15
usePfUITransp = addon.Modules.DB:GetSetting("usePfUITransparency")
end
if cachedThemeName == "pfui" and usePfUITransp ~= false then
local _, _, _, ba = GetPfUIColor("background")
alpha = ba or 1
else
local transparency = 0.15
if addon.Modules and addon.Modules.DB then
transparency = addon.Modules.DB:GetSetting("bgTransparency") or 0.15
end
alpha = 1.0 - transparency
end
local alpha = 1.0 - transparency
frame:SetBackdropColor(bg.r, bg.g, bg.b, alpha)
ThemeDebug(" SetBackdropColor(%s,%s,%s,%s)", tostring(bg.r), tostring(bg.g), tostring(bg.b), tostring(alpha))
+69
View File
@@ -259,6 +259,20 @@ function Guda_SettingsPopup_OnShow(self)
hideBordersCheckbox:SetChecked(hideBorders and 1 or 0)
end
-- Refresh pfUI transparency checkbox visibility
local pfuiTranspCB = getglobal("Guda_SettingsPopup_UsePfUITransparencyCheckbox")
if pfuiTranspCB then
local currentTheme = Guda.Modules.DB:GetSetting("theme") or "guda"
if currentTheme == "pfui" then
local val = Guda.Modules.DB:GetSetting("usePfUITransparency")
if val == nil then val = true end
pfuiTranspCB:SetChecked(val and 1 or 0)
pfuiTranspCB:Show()
else
pfuiTranspCB:Hide()
end
end
if qualityBorderEquipmentCheckbox then
qualityBorderEquipmentCheckbox:SetChecked(showQualityBorderEquipment and 1 or 0)
end
@@ -1564,6 +1578,44 @@ local themeOptions = {
{ text = "pfUI", value = "pfui" },
}
-- pfUI Transparency checkbox
function Guda_SettingsPopup_UsePfUITransparencyCheckbox_OnLoad(self)
local text = getglobal(self:GetName().."Text")
if text then
text:SetText("pfUI Transparency")
local font, _, flags = text:GetFont()
if font then
text:SetFont(font, 13, flags)
end
end
self.tooltipText = "When enabled, uses pfUI's background transparency instead of the slider below."
local val = true
if Guda and Guda.Modules and Guda.Modules.DB then
local stored = Guda.Modules.DB:GetSetting("usePfUITransparency")
if stored ~= nil then val = stored end
end
self:SetChecked(val and 1 or 0)
-- Only show when pfUI theme is active
local theme = "guda"
if Guda and Guda.Modules and Guda.Modules.DB then
theme = Guda.Modules.DB:GetSetting("theme") or "guda"
end
if theme == "pfui" then self:Show() else self:Hide() end
end
function Guda_SettingsPopup_UsePfUITransparencyCheckbox_OnClick(self)
local isChecked = self:GetChecked() == 1
if Guda and Guda.Modules and Guda.Modules.DB then
Guda.Modules.DB:SetSetting("usePfUITransparency", isChecked)
end
if Guda.Modules and Guda.Modules.Theme then
Guda.Modules.Theme:ClearCache()
Guda.Modules.Theme:ApplyToAllFrames()
end
end
local function Guda_ThemeDropdown_Initialize()
local currentTheme = Guda.Modules.DB:GetSetting("theme") or "guda"
for _, option in ipairs(themeOptions) do
@@ -1623,6 +1675,10 @@ function Guda_SettingsPopup_ApplyTheme(themeId)
DB:SetSetting("_prePfui_bgTransparency", DB:GetSetting("bgTransparency"))
DB:SetSetting("hideBorders", true)
DB:SetSetting("bgTransparency", Guda.Constants.PFUI_DEFAULT_BG_TRANSPARENCY)
-- Default to using pfUI transparency
if DB:GetSetting("usePfUITransparency") == nil then
DB:SetSetting("usePfUITransparency", true)
end
end
DB:SetSetting("theme", themeId)
@@ -1655,6 +1711,19 @@ function Guda_SettingsPopup_ApplyTheme(themeId)
if bgTransparencySlider then
bgTransparencySlider:SetValue(DB:GetSetting("bgTransparency") or 0.15)
end
-- Show/hide pfUI transparency checkbox based on theme
local pfuiTranspCB = getglobal("Guda_SettingsPopup_UsePfUITransparencyCheckbox")
if pfuiTranspCB then
if themeId == "pfui" then
local val = DB:GetSetting("usePfUITransparency")
if val == nil then val = true end
pfuiTranspCB:SetChecked(val and 1 or 0)
pfuiTranspCB:Show()
else
pfuiTranspCB:Hide()
end
end
end
-- Bag View Dropdown
+13
View File
@@ -223,6 +223,19 @@
</Scripts>
</Frame>
<!-- pfUI Transparency Checkbox (visible only when pfUI theme selected) -->
<CheckButton name="Guda_SettingsPopup_UsePfUITransparencyCheckbox" inherits="OptionsCheckButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="Guda_SettingsPopup_ThemeDropdown">
<Offset><AbsDimension x="130" y="2"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>Guda_SettingsPopup_UsePfUITransparencyCheckbox_OnLoad(this)</OnLoad>
<OnClick>Guda_SettingsPopup_UsePfUITransparencyCheckbox_OnClick(this)</OnClick>
</Scripts>
</CheckButton>
<!-- Background Transparency Slider -->
<Slider name="Guda_SettingsPopup_BgTransparencySlider" inherits="OptionsSliderTemplate">
<Size><AbsDimension x="450" y="17"/></Size>