-- This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. -- To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ -- or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. local MereHealingFrames, privateVars = ... -- Might be worth converting at some point to be a UI.CreateFrame thing -- for now we'll just wrapper a text object MereHealingFrames.UI = MereHealingFrames.UI or {} MereHealingFrames.UI.Widget = MereHealingFrames.UI.Widget or {} MereHealingFrames.UI.Widget.ShadowedText = { Text = nil, hasShadows = false, Shadow1 = nil, Shadow2 = nil, Shadow3 = nil, Shadow4 = nil, Shadowed = true, CurrentAlpha = 0, TextR = 1, TextG = 1, TextB = 1, ShadowR = 0, ShadowG = 0, ShadowB = 0, TextWidth = nil, TextHeight = nil, } local ShadowedText = MereHealingFrames.UI.Widget.ShadowedText function ShadowedText:new(widgetName, parentFrame) local this = {} setmetatable(this, self) self.__index = self this:CreateUI(widgetName, parentFrame) return this end function ShadowedText:CreateUI(widgetName, parentFrame) self.Text = UI.CreateFrame("Text", widgetName, parentFrame) self:ShadowedText(self.Shadowed) end function ShadowedText:GetContent() return self.Text end function ShadowedText:SetPoint(...) return self.Text:SetPoint(...) end function ShadowedText:SetLayer(textLayer) self.Text:SetLayer(textLayer) end function ShadowedText:SetFontSize(...) self.Text:SetFontSize(...) end function ShadowedText:SetWidth(textWidth) self.TextWidth = textWidth self.Text:SetWidth(textWidth) end function ShadowedText:GetWidth(...) return self.Text:GetWidth(...) end function ShadowedText:SetHeight(textHeight) self.TextHeight = textHeight self.Text:SetHeight(textHeight) end function ShadowedText:GetHeight(...) return self.Text:GetHeight(...) end function ShadowedText:SetVisible(...) self.Text:SetVisible(...) end function ShadowedText:GetVisible(...) return self.Text:GetVisible(...) end function ShadowedText:SetText(...) self.Text:SetText(...) end function ShadowedText:ShadowedText(Shadowed) MereHealingFrames.Debug(21, "ShadowedText: Shadow was %s, is now %s", tostring(self.Shadowed), tostring(Shadowed)) self.Shadowed = Shadowed local currentText, html = self.Text:GetText() MereHealingFrames.Debug(21, "ShadowedText: currentText: %s", currentText) if (self.Shadowed) then self.Text:SetEffectGlow( { colorA = self.currentAlpha, colorB = self.ShadowB, colorG = self.ShadowG, colorR = self.ShadowR, strength = 3 }) else self.Text:SetEffectGlow(nil) end end function ShadowedText:SetFontColor(r, g, b) self.TextR = r self.TextG = g self.TextB = b self.Text:SetFontColor(r, g, b, self.CurrentAlpha) end function ShadowedText:SetShadowColor(r, g, b) self.ShadowR = r self.ShadowG = g self.ShadowB = b if (self.hasShadows) then self.Text:SetEffectGlow( { colorA = self.currentAlpha, colorB = self.ShadowB, colorG = self.ShadowG, colorR = self.ShadowR, strength = 3 }) end end function ShadowedText:SetAlpha(newAlpha) self.CurrentAlpha = newAlpha self.Text:SetFontColor(self.TextR, self.TextG, self.TextB, self.CurrentAlpha) if (self.hasShadows) then self.Text:SetEffectGlow( { colorA = self.currentAlpha, colorB = self.ShadowB, colorG = self.ShadowG, colorR = self.ShadowR, strength = 3 }) end end