feat: pfUI background aplha compatibility
This commit is contained in:
@@ -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
@@ -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))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user