-
Notifications
You must be signed in to change notification settings - Fork 3
/
TrinketMenuGlobals.lua
96 lines (78 loc) · 2.71 KB
/
TrinketMenuGlobals.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
TRINKETMENU_BACKDROP_16_16_4444 = {
bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background",
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
tile = true,
tileEdge = true,
tileSize = 16,
edgeSize = 16,
insets = { left = 4, right = 4, top = 4, bottom = 4 },
}
TRINKETMENU_BACKDROP_16 = {
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
edgeSize = 16,
}
TRINKETMENU_SLIDER_BACKDROP = {
bgFile = "Interface\\Buttons\\UI-SliderBar-Background",
edgeFile = "Interface\\Buttons\\UI-SliderBar-Border",
tile = true,
tileEdge = true,
tileSize = 8,
edgeSize = 8,
insets = { left = 3, right = 3, top = 6, bottom = 6 },
}
local BackdropTemplatePolyfillMixin = {}
function BackdropTemplatePolyfillMixin:OnBackdropLoaded()
if not self.backdropInfo then
return
end
if not self.backdropInfo.edgeFile and not self.backdropInfo.bgFile then
self.backdropInfo = nil
return
end
self:ApplyBackdrop()
if self.backdropColor then
local r, g, b = self.backdropColor:GetRGB()
self:SetBackdropColor(r, g, b, self.backdropColorAlpha or 1)
end
if self.backdropBorderColor then
local r, g, b = self.backdropBorderColor:GetRGB()
self:SetBackdropBorderColor(r, g, b, self.backdropBorderColorAlpha or 1)
end
if self.backdropBorderBlendMode then
self:SetBackdropBorderBlendMode(self.backdropBorderBlendMode)
end
end
function BackdropTemplatePolyfillMixin:OnBackdropSizeChanged()
if self.backdropInfo then
self:SetupTextureCoordinates()
end
end
function BackdropTemplatePolyfillMixin:ApplyBackdrop()
-- The SetBackdrop call will implicitly reset the background and border
-- texture vertex colors to white, consistent across all client versions.
self:SetBackdrop(self.backdropInfo)
end
function BackdropTemplatePolyfillMixin:ClearBackdrop()
self:SetBackdrop(nil)
self.backdropInfo = nil
end
function BackdropTemplatePolyfillMixin:GetEdgeSize()
-- The below will indeed error if there's no backdrop assigned this is
-- consistent with how it works on 9.x clients.
return self.backdropInfo.edgeSize or 39
end
function BackdropTemplatePolyfillMixin:HasBackdropInfo(backdropInfo)
return self.backdropInfo == backdropInfo
end
function BackdropTemplatePolyfillMixin:SetBorderBlendMode()
-- The pre-9.x API doesn't support setting blend modes for backdrop
-- borders, so this is a no-op that just exists in case we ever assume
-- it exists.
end
function BackdropTemplatePolyfillMixin:SetupPieceVisuals()
-- Deliberate no-op as backdrop internals are handled C-side pre-9.x.
end
function BackdropTemplatePolyfillMixin:SetupTextureCoordinates()
-- Deliberate no-op as texture coordinates are handled C-side pre-9.x.
end
TrinketMenuBackdropTemplateMixin = CreateFromMixins(BackdropTemplateMixin or BackdropTemplatePolyfillMixin)