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.

287 lines
6.5 KiB

-- ========================================================================= --
-- SylingTracker --
-- https://www.curseforge.com/wow/addons/sylingtracker --
-- --
-- Repository: --
-- https://github.com/Skamer/SylingTracker --
-- --
-- ========================================================================= --
Syling "SylingTracker.UI.Badge" ""
-- ========================================================================= --
namespace "SLT"
-- ========================================================================= --
-- Helper function for resetting the styles
ClearStyles = Utils.ClearStyles
ResetStyles = Utils.ResetStyles
__Recyclable__ "SylingTracker_IconBadge%d"
class "IconBadge" (function(_ENV)
inherit "Frame"
function OnRelease(self)
self:Hide()
self:ClearAllPoints()
self:SetParent()
ResetStyles(self, true)
end
function OnAcquire(self)
self:Show()
end
__Template__{
Icon = Texture
}
function __ctor(self) end
end)
__Recyclable__ "SylingTracker_TextBadge%d"
class "TextBadge" (function(_ENV)
inherit "Frame"
function OnRelease(self)
self:Hide()
self:ClearAllPoints()
self:SetParent()
ResetStyles(self, true)
end
function OnAcquire(self)
self:Show()
end
__Template__ {
Label = SLTFontString
}
function __ctor(self) end
end)
__Recyclable__ "SylingTracker_Badge%d"
class "Badge" (function(_ENV)
inherit "Frame"
function OnRelease(self)
self:Hide()
self:ClearAllPoints()
self:SetParent()
ResetStyles(self, true)
end
function OnAcquire(self)
self:Show()
end
__Template__ {
Icon = Texture,
Label = SLTFontString
}
function __ctor(self) end
end)
-- class "Badge" (function(_ENV)
-- inherit "Frame"
-- _Recycler = Recycle(Badge, "SylingTracker_Badge%d")
-- local function HideLabelHandler(self, new, old, prop)
-- local labelFrame = self:GetChild("Label")
-- if not new then
-- ClearStyles(labelFrame, self.HideTextStyles)
-- labelFrame:Show()
-- return
-- end
-- local styles = self.HideTextStyles
-- if new and styles then
-- Style[self] = styles
-- labelFrame:Hide()
-- end
-- end
-- local function HideIconHandler(self, new, old, prop)
-- local iconFrame = self:GetChild("Icon")
-- if not new then
-- ClearStyles(iconFrame, self.HideIconStyles)
-- iconFrame:Show()
-- return
-- end
-- local styles = self.HideIconStyles
-- if new and styles then
-- Style[self] = styles
-- iconFrame:Hide()
-- end
-- end
-- -----------------------------------------------------------------------------
-- -- Methods --
-- -----------------------------------------------------------------------------
-- function Release(self)
-- self:ClearAllPoints()
-- self:SetParent()
-- self:Hide()
-- _Recycler(self)
-- end
-- __Static__() function Acquire(self)
-- local obj = _Recycler()
-- obj:Show()
-- return obj
-- end
-- -----------------------------------------------------------------------------
-- -- Properties --
-- -----------------------------------------------------------------------------
-- property "HideLabel" {
-- type = Boolean,
-- default = false,
-- handler = HideLabelHandler
-- }
-- property "HideIcon" {
-- type = Boolean,
-- default = false,
-- handler = HideIconHandler
-- }
-- property "HideIconStyles" {
-- type = Table
-- }
-- property "HideTextStyles" {
-- type = Table
-- }
-- __Template__ {
-- Label = SLTFontString,
-- Icon = Texture
-- }
-- function __ctor() end
-- end)
Style.UpdateSkin("Default", {
[Badge] = {
height = 24,
width = 30,
Icon = {
height = 16,
width = 16,
location = {
Anchor("LEFT", 5, 0)
}
},
Label = {
sharedMediaFont = FontType("PT Sans Caption Bold", 10),
shadowOffset = { x = 0.5, y = 0},
shadowColor = Color(0, 0, 0, 1),
location = {
Anchor("TOP"),
Anchor("LEFT", 5, 0, "Icon", "RIGHT"),
Anchor("RIGHT"),
Anchor("BOTTOM")
}
}
},
[IconBadge] = {
height = 24,
width = 24,
Icon = {
setAllPoints = true
},
},
[TextBadge] = {
height = 16,
width = 30,
Label = {
sharedMediaFont = FontType("PT Sans Caption Bold", 10),
shadowOffset = { x = 0.5, y = 0},
shadowColor = Color(0, 0, 0, 1),
setAllPoints = true
}
},
})
-- Style.UpdateSkin("Default", {
-- [Badge] = {
-- height = 16,
-- width = 30,
-- backdrop = {
-- bgFile = [[Interface\AddOns\SylingTracker\Media\Textures\LinearGradient]]
-- },
-- backdropColor = { r = 160/255, g = 160/255, b = 160/255, a = 0.5},
-- Icon = {
-- atlas = AtlasType("groupfinder-icon-greencheckmark"),
-- size = Size(10, 10),
-- location = {
-- Anchor("LEFT")
-- }
-- },
-- Label = {
-- font = FontType([[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Caption-Bold.ttf]], 10),
-- shadowOffset = { x = 0.5, y = 0},
-- shadowColor = Color(0, 0, 0, 1),
-- location = {
-- Anchor("TOP"),
-- Anchor("LEFT", 0, 0, "Icon", "RIGHT"),
-- Anchor("BOTTOM"),
-- Anchor("RIGHT")
-- }
-- },
-- HideIconStyles = {
-- Label = {
-- setAllPoints = true,
-- justifyV = "MIDDLE",
-- justifyH = "CENTER"
-- }
-- },
-- HideTextStyles = {
-- Icon = {
-- location = {
-- Anchor("CENTER")
-- }
-- }
-- }
-- }
-- })
-- Style.UpdateSkin("Default", {
-- [IconBadge] ={
-- backdrop = {
-- bgFile = [[Interface\AddOns\SylingTracker\Media\Textures\LinearGradient]]
-- },
-- Icon = {
-- setAllPoints = true
-- }
-- },
-- [TextBadge] = {
-- backdrop = {
-- bgFile = [[Interface\AddOns\SylingTracker\Media\Textures\LinearGradient]]
-- },
-- Text
-- }
-- })