You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.9 KiB
94 lines
2.9 KiB
-- ========================================================================= --
|
|
-- SylingTracker --
|
|
-- https://www.curseforge.com/wow/addons/sylingtracker --
|
|
-- --
|
|
-- Repository: --
|
|
-- https://github.com/Skamer/SylingTracker --
|
|
-- --
|
|
-- ========================================================================= --
|
|
Syling "SylingTracker.UI.SLTFontString" ""
|
|
-- ========================================================================= --
|
|
namespace "SLT"
|
|
-- ========================================================================= --
|
|
FetchFontObject = Fonts.FetchFontObject
|
|
ResetStyles = Utils.ResetStyles
|
|
|
|
|
|
__Recyclable__ "SylingTracker_SLTFontString%i"
|
|
class "SLTFontString" (function(_ENV)
|
|
inherit "FontString"
|
|
|
|
_TextRaw = setmetatable({}, { __mode = "k"})
|
|
|
|
enum "TextTransformType" {
|
|
"NONE",
|
|
"LOWERCASE",
|
|
"UPPERCASE",
|
|
}
|
|
|
|
property "TextTransform" {
|
|
type = TextTransformType,
|
|
default = TextTransformType.NONE,
|
|
handler = function(self) self:SetText(_TextRaw[self] or self:GetText()) end
|
|
}
|
|
|
|
property "SharedMediaFont" {
|
|
type = FontType,
|
|
handler = function(self, font) self:SetSharedMediaFont(font) end
|
|
}
|
|
|
|
-- property "SharedMediaFont"
|
|
|
|
function SetSharedMediaFont(self, font)
|
|
local _, fontHeight, flags = self:GetFont()
|
|
if font.outline then
|
|
if font.outline == "NORMAL" then
|
|
flags = "OUTLINE"
|
|
elseif font.outline == "THICK" then
|
|
flags = "THICKOUTLINE"
|
|
end
|
|
end
|
|
|
|
if font.monochrome then
|
|
if flags then
|
|
flags = flags..",MONOCHROME"
|
|
else
|
|
flags = "MONOCHROME"
|
|
end
|
|
end
|
|
|
|
if font.height then
|
|
fontHeight = font.height
|
|
end
|
|
|
|
local ft = _LibSharedMedia:Fetch("font", font.font)
|
|
|
|
return self:SetFontObject(FetchFontObject(ft, fontHeight or 10, flags))
|
|
end
|
|
|
|
function SetText(self, text)
|
|
_TextRaw[self] = text
|
|
if text then
|
|
if self.TextTransform == TextTransformType.LOWERCASE then
|
|
text = text:lower()
|
|
elseif self.TextTransform == TextTransformType.UPPERCASE then
|
|
text = text:upper()
|
|
end
|
|
end
|
|
|
|
super.SetText(self, text)
|
|
end
|
|
|
|
|
|
function OnRelease(self)
|
|
self:Hide()
|
|
self:ClearAllPoints()
|
|
self:SetParent()
|
|
|
|
ResetStyles(self)
|
|
end
|
|
|
|
function OnAcquire(self)
|
|
self:Show()
|
|
end
|
|
end)
|