core: add option to use blizzard borders

This commit is contained in:
shagu
2021-08-25 18:21:45 +02:00
parent c4d6a33098
commit 5987dd2b33
5 changed files with 46 additions and 3 deletions
+22 -3
View File
@@ -983,6 +983,11 @@ function pfUI.api.CreateBackdrop(f, inset, legacy, transp, backdropSetting)
border = inset
end
-- detect if blizzard backdrops shall be used
local blizz = C.appearance.border.force_blizz == "1" and true or nil
backdrop = blizz and pfUI.backdrop_blizz_full or rawborder == 1 and pfUI.backdrop_thin or pfUI.backdrop
border = blizz and math.max(border, 3) or border
-- get the color settings
br, bg, bb, ba = pfUI.api.GetStringColor(pfUI_config.appearance.border.background)
er, eg, eb, ea = pfUI.api.GetStringColor(pfUI_config.appearance.border.color)
@@ -991,7 +996,6 @@ function pfUI.api.CreateBackdrop(f, inset, legacy, transp, backdropSetting)
-- use legacy backdrop handling
if legacy then
backdrop = rawborder == 1 and pfUI.backdrop_thin or pfUI.backdrop
if backdropSetting then f:SetBackdrop(backdropSetting) end
f:SetBackdrop(backdrop)
f:SetBackdropColor(br, bg, bb, ba)
@@ -1019,10 +1023,25 @@ function pfUI.api.CreateBackdrop(f, inset, legacy, transp, backdropSetting)
f.backdrop:SetPoint("TOPLEFT", f, "TOPLEFT", -border, border)
f.backdrop:SetPoint("BOTTOMRIGHT", f, "BOTTOMRIGHT", border, -border)
f.backdrop:SetBackdrop(rawborder > 1 and pfUI.backdrop or pfUI.backdrop_thin)
f.backdrop:SetBackdrop(backdrop)
f.backdrop:SetBackdropColor(br, bg, bb, ba)
f.backdrop:SetBackdropBorderColor(er, eg, eb , ea)
if blizz then
if not f.backdrop_border then
local border = CreateFrame("Frame", nil, f)
border:SetFrameLevel(level + 1)
f.backdrop_border = border
end
f.backdrop.SetBackdropBorderColor = function(self, r, g, b, a)
f.backdrop_border:SetBackdropBorderColor(r,g,b,a)
end
f.backdrop_border:SetAllPoints(f.backdrop)
f.backdrop_border:SetBackdrop(pfUI.backdrop_blizz_border)
f.backdrop_border:SetBackdropBorderColor(er, eg, eb , ea)
end
end
end
+2
View File
@@ -122,11 +122,13 @@ function pfUI:LoadConfig()
pfUI:UpdateConfig("buffbar", "tdebuff", "whitelist", "")
pfUI:UpdateConfig("buffbar", "tdebuff", "blacklist", "")
pfUI:UpdateConfig("appearance", "border", "background", "0,0,0,1")
pfUI:UpdateConfig("appearance", "border", "background", "0,0,0,1")
pfUI:UpdateConfig("appearance", "border", "color", "0.2,0.2,0.2,1")
pfUI:UpdateConfig("appearance", "border", "shadow", "0")
pfUI:UpdateConfig("appearance", "border", "shadow_intensity", ".35")
pfUI:UpdateConfig("appearance", "border", "pixelperfect", "1")
pfUI:UpdateConfig("appearance", "border", "force_blizz", "0")
pfUI:UpdateConfig("appearance", "border", "hidpi", "1")
pfUI:UpdateConfig("appearance", "border", "default", "3")
pfUI:UpdateConfig("appearance", "border", "nameplates", "-1")
+5
View File
@@ -874,6 +874,11 @@ function pfUI.api.SkinCheckbox(frame, size)
end
CreateBackdrop(frame)
SetAllPointsOffset(frame.backdrop, frame, 4)
if frame.backdrop_border then
-- make sure the blizzard border doesn't overlap the checkmark
frame.backdrop_border:SetFrameLevel(frame.backdrop:GetFrameLevel())
end
end
function pfUI.api.SkinDropDown(frame, cr, cg, cb, useSmall)
+1
View File
@@ -1504,6 +1504,7 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function ()
CreateConfig(nil, T["Enable Frame Shadow"], C.appearance.border, "shadow", "checkbox")
CreateConfig(nil, T["Frame Shadow Intensity"], C.appearance.border, "shadow_intensity", "dropdown", pfUI.gui.dropdowns.uf_debuff_indicator_size)
CreateConfig(nil) -- spacer
CreateConfig(nil, T["Force Blizzard Borders (|cffffaaaaExperimental|r)"], C.appearance.border, "force_blizz", "checkbox")
CreateConfig(nil, T["Enable Pixel Perfect Borders"], C.appearance.border, "pixelperfect", "checkbox")
CreateConfig(nil, T["Scale Border On HiDPI Displays"], C.appearance.border, "hidpi", "checkbox")
CreateConfig(nil) -- spacer
+16
View File
@@ -317,6 +317,22 @@ pfUI.backdrop_shadow = {
insets = {left = 0, right = 0, top = 0, bottom = 0},
}
pfUI.backdrop_blizz_bg = {
bgFile = "Interface\\BUTTONS\\WHITE8X8", tile = true, tileSize = 8,
insets = { left = 3, right = 3, top = 3, bottom = 3 }
}
pfUI.backdrop_blizz_border = {
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 12,
insets = { left = 3, right = 3, top = 3, bottom = 3 }
}
pfUI.backdrop_blizz_full = {
bgFile = "Interface\\BUTTONS\\WHITE8X8", tile = true, tileSize = 8,
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 12,
insets = { left = 3, right = 3, top = 3, bottom = 3 }
}
message = function(msg)
DEFAULT_CHAT_FRAME:AddMessage("|cffcccc33INFO: |cffffff55" .. ( msg or "nil" ))
end