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.
105 lines
2.8 KiB
105 lines
2.8 KiB
local InspectionFrame;
|
|
|
|
local function NavButton_OnUpdate(self, elapsed)
|
|
self.t = self.t + elapsed;
|
|
if self.t > self.threshold then
|
|
self.isHolding = true;
|
|
self.t = 0;
|
|
self.level = self.level + 1;
|
|
if self.level > 3 then
|
|
self.threshold = 0.5;
|
|
elseif self.level > 0 then
|
|
self.threshold = 0.8;
|
|
end
|
|
InspectionFrame:OnMouseWheel(self.delta);
|
|
end
|
|
end
|
|
|
|
NarciAchievementNavigationButtonMixin = {};
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnLoad()
|
|
InspectionFrame = self:GetParent();
|
|
local p;
|
|
if self.delta > 0 then
|
|
--Prev/Left Up
|
|
p = -1;
|
|
self.Background:SetTexCoord(0.5, 0, 0, 1);
|
|
self.Highlight:SetTexCoord(1, 0.5, 0, 1);
|
|
else
|
|
--Next/Right Down
|
|
p = 1;
|
|
self.Background:SetTexCoord(0, 0.5, 0, 1);
|
|
self.Highlight:SetTexCoord(0.5, 1, 0, 1);
|
|
end
|
|
self.FlyIn.Translation1:SetOffset(6*p, 0);
|
|
self.FlyIn.Translation2:SetOffset(2*p, 0);
|
|
self.FlyIn.Translation3:SetOffset(-6*p, 0);
|
|
self.FlyIn.Translation4:SetOffset(-2*p, 0);
|
|
self.Highlight.FlyIn.Translation1:SetOffset(-24*p, 0);
|
|
self.Highlight.FlyIn.Translation2:SetOffset(24*p, 0);
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnEnter()
|
|
self:StopAnimating();
|
|
self.Highlight.FlyIn:Play();
|
|
self.FlyIn.Hold:SetDuration(60);
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnLeave()
|
|
self.FlyIn.Hold:SetDuration(0);
|
|
self.Highlight.FadeOut:Play();
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnMouseDown()
|
|
self.Background:SetScale(0.9);
|
|
if self:IsEnabled() then
|
|
self:StartOnUpdate();
|
|
else
|
|
self:GetParent():OnMouseDown();
|
|
end
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnMouseUp()
|
|
self.Background:SetScale(1);
|
|
self:ClearOnUpdate();
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnClick()
|
|
if self.isHolding then
|
|
self.isHolding = nil;
|
|
return
|
|
end
|
|
InspectionFrame:OnMouseWheel(self.delta);
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnDisable()
|
|
self:SetAlpha(0);
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnEnable()
|
|
self:SetAlpha(1);
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnShow()
|
|
if self:IsEnabled() then
|
|
self:SetAlpha(1);
|
|
else
|
|
self:SetAlpha(0);
|
|
end
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:OnHide()
|
|
self:ClearOnUpdate();
|
|
self.isHolding = nil;
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:StartOnUpdate()
|
|
self.level = 0;
|
|
self.t = 0.5;
|
|
self.threshold = 1;
|
|
self:SetScript("OnUpdate", NavButton_OnUpdate);
|
|
end
|
|
|
|
function NarciAchievementNavigationButtonMixin:ClearOnUpdate()
|
|
self:SetScript("OnUpdate", nil);
|
|
end
|