From 8ce1baf00d144fe7bb24abe24437f14e629c1d75 Mon Sep 17 00:00:00 2001 From: shagu Date: Sun, 4 Oct 2020 19:27:35 +0200 Subject: [PATCH] cooldown: add option to use dynamic cooldown sizes --- api/config.lua | 1 + modules/cooldown.lua | 18 +++++++++++++----- modules/gui.lua | 3 ++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/api/config.lua b/api/config.lua index a59978f3..05dec849 100644 --- a/api/config.lua +++ b/api/config.lua @@ -149,6 +149,7 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("appearance", "cd", "foreign", "0") pfUI:UpdateConfig("appearance", "cd", "milliseconds", "1") pfUI:UpdateConfig("appearance", "cd", "hideanim", "0") + pfUI:UpdateConfig("appearance", "cd", "dynamicsize", "1") pfUI:UpdateConfig("appearance", "castbar", "castbarcolor", ".7,.7,.9,.8") pfUI:UpdateConfig("appearance", "castbar", "channelcolor", ".9,.9,.7,.8") pfUI:UpdateConfig("appearance", "castbar", "texture", "Interface\\AddOns\\pfUI\\img\\bar") diff --git a/modules/cooldown.lua b/modules/cooldown.lua index 6771f5fb..f2d74f0a 100644 --- a/modules/cooldown.lua +++ b/modules/cooldown.lua @@ -33,22 +33,30 @@ pfUI:RegisterModule("cooldown", "vanilla:tbc", function () end end + local height, size local function pfCreateCoolDown(cooldown, start, duration) cooldown.pfCooldownText = CreateFrame("Frame", "pfCooldownFrame", cooldown:GetParent()) cooldown.pfCooldownText:SetAllPoints(cooldown) cooldown.pfCooldownText:SetFrameLevel(cooldown:GetParent():GetFrameLevel() + 1) - cooldown.pfCooldownText.text = cooldown.pfCooldownText:CreateFontString("pfCooldownFrameText", "OVERLAY") + if not cooldown.pfCooldownType then - cooldown.pfCooldownText.text:SetFont(pfUI.font_unit, C.appearance.cd.font_size_foreign, "OUTLINE") + size = tonumber(C.appearance.cd.font_size_foreign) elseif cooldown.pfCooldownType == "BLIZZARD" then - cooldown.pfCooldownText.text:SetFont(pfUI.font_unit, C.appearance.cd.font_size_blizz, "OUTLINE") + size = tonumber(C.appearance.cd.font_size_blizz) elseif cooldown.pfCooldownSize then - cooldown.pfCooldownText.text:SetFont(pfUI.font_unit, cooldown.pfCooldownSize, "OUTLINE") + size = tonumber(cooldown.pfCooldownSize) else - cooldown.pfCooldownText.text:SetFont(pfUI.font_unit, C.appearance.cd.font_size, "OUTLINE") + size = tonumber(C.appearance.cd.font_size) end + -- enforce dynamic font size + if C.appearance.cd.dynamicsize == "1" and cooldown.GetParent then + height = cooldown:GetParent() and cooldown:GetParent():GetHeight() or cooldown:GetHeight() or 0 + size = math.max((height > 0 and height * .64 or 16), size) + end + + cooldown.pfCooldownText.text:SetFont(pfUI.font_unit, size, "OUTLINE") cooldown.pfCooldownText.text:SetPoint("CENTER", cooldown.pfCooldownText, "CENTER", 0, 0) cooldown.pfCooldownText:SetScript("OnUpdate", pfCooldownOnUpdate) end diff --git a/modules/gui.lua b/modules/gui.lua index 97d9eca4..36eba6b7 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -1498,10 +1498,11 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () CreateConfig(nil, T["Cooldown Color (Minutes)"], C.appearance.cd, "minutecolor", "color") CreateConfig(nil, T["Cooldown Color (Hours)"], C.appearance.cd, "hourcolor", "color") CreateConfig(nil, T["Cooldown Color (Days)"], C.appearance.cd, "daycolor", "color") - CreateConfig(nil, T["Cooldown Text Threshold"], C.appearance.cd, "threshold") + CreateConfig(nil, T["Use Dynamic Font Size"], C.appearance.cd, "dynamicsize", "checkbox") CreateConfig(nil, T["Cooldown Text Font Size"], C.appearance.cd, "font_size") CreateConfig(nil, T["Cooldown Text Font Size (Blizzard Frames)"], C.appearance.cd, "font_size_blizz") CreateConfig(nil, T["Cooldown Text Font Size (Foreign Frames)"], C.appearance.cd, "font_size_foreign") + CreateConfig(nil, T["Cooldown Text Time Threshold"], C.appearance.cd, "threshold") CreateConfig(nil, T["Display Debuff Durations"], C.appearance.cd, "debuffs", "checkbox") CreateConfig(nil, T["Enable Durations On Blizzard Frames"], C.appearance.cd, "blizzard", "checkbox") CreateConfig(nil, T["Enable Durations On Foreign Frames"], C.appearance.cd, "foreign", "checkbox")