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.
55 lines
1.9 KiB
55 lines
1.9 KiB
|
4 years ago
|
NarciShowcaseNodeButtonMixin = {};
|
||
|
|
|
||
|
|
function NarciShowcaseNodeButtonMixin:OnLoad()
|
||
|
|
self.Border:SetTexture("Interface\\AddOns\\Narcissus\\Art\\Modules\\Showcase\\NodeButton", nil, nil, "TRILINEAR");
|
||
|
|
self.HighlightTexture:SetTexture("Interface\\AddOns\\Narcissus\\Art\\Modules\\Showcase\\NodeButton", nil, nil, "TRILINEAR");
|
||
|
|
self.Border:SetVertexColor(0.25, 0.25, 0.25);
|
||
|
|
self.HighlightTexture:SetVertexColor(0.5, 0.5, 0.5);
|
||
|
|
end
|
||
|
|
|
||
|
|
function NarciShowcaseNodeButtonMixin:OnClick()
|
||
|
|
for _, node in pairs(self:GetParent().Nodes) do
|
||
|
|
if node ~= self then
|
||
|
|
node:SetSelection(false);
|
||
|
|
end
|
||
|
|
end
|
||
|
|
self:SetSelection(true, not self.selected);
|
||
|
|
if self.onClickFunc then
|
||
|
|
self.onClickFunc(self);
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function NarciShowcaseNodeButtonMixin:OnEnter()
|
||
|
|
if self.Label then
|
||
|
|
self.Label:SetTextColor(0.8, 0.8, 0.8);
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function NarciShowcaseNodeButtonMixin:OnLeave()
|
||
|
|
if self.Label and not self.selected then
|
||
|
|
self.Label:SetTextColor(0.5, 0.5, 0.5);
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function NarciShowcaseNodeButtonMixin:SetSelection(state, playAnimation)
|
||
|
|
self.AnimScale:Stop();
|
||
|
|
if state then
|
||
|
|
self.Border:SetVertexColor(0.5, 0.5, 0.5);
|
||
|
|
self.Border:SetTexCoord(0.25, 0.5, 0.25, 0.5);
|
||
|
|
self.HighlightTexture:SetVertexColor(0, 0.68, 0.94);
|
||
|
|
self:LockHighlight();
|
||
|
|
if playAnimation then
|
||
|
|
self.AnimScale:Play();
|
||
|
|
end
|
||
|
|
else
|
||
|
|
self.Border:SetVertexColor(0.25, 0.25, 0.25);
|
||
|
|
self.Border:SetTexCoord(0, 0.25, 0.25, 0.5);
|
||
|
|
self.HighlightTexture:SetTexCoord(0.75, 1, 0, 0.25);
|
||
|
|
self.HighlightTexture:SetVertexColor(0.6, 0.6, 0.6);
|
||
|
|
self:UnlockHighlight();
|
||
|
|
end
|
||
|
|
if self.onSelectedFunc then
|
||
|
|
self.onSelectedFunc(self, state, playAnimation);
|
||
|
|
end
|
||
|
|
self.selected = state or nil;
|
||
|
|
end
|