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.

82 lines
2.4 KiB

local _, addon = ...
local LinearScrollUpdater = addon.LinearScrollUpdater;
local ag = addon.CreateActionGroup("TitleManager");
ag.repeatInterval = 0.125;
ag:SetButtonDescription("A", "Use");
ag:SetButtonDescription("B", "Return");
ag:SetButtonDescription("Y", "Sort");
function ag:Init()
local manager = Narci_TitleFrame;
self.frame = manager;
self.switch = Narci_TitleManager_Switch;
self.filter = manager.TitleList.FilterButton;
self.scrollFrame = manager.TitleList.ScrollFrame;
self.buttons = manager.TitleList.ScrollFrame.buttons;
self.maxIndex = #self.buttons;
self.tooltip = manager.TooltipFrame;
end
function ag:OnActiveCallback(mode)
self.i = 0;
C_Timer.After(0, function()
local pad1, width = addon.GamePadButtonPool:SetupButton("PAD1", "Use", self.frame, "TOPLEFT", self.frame, "BOTTOMLEFT", 20, 8);
if pad1 and width then
local pad2 = addon.GamePadButtonPool:SetupButton("PAD2", "Back", self.frame, "TOPLEFT", self.frame, "BOTTOMLEFT", 48 + width, 8);
local pad4 = addon.GamePadButtonPool:SetupButton("PAD4", "Sort", self.frame, "LEFT", self.filter, "RIGHT", -7, 5);
end
end);
addon.GamePadNavBar:SelectButtonByID(2);
end
function ag:Click()
if self.currentObj then
self.currentObj:Click("LeftButton");
return true
end
end
function ag:KeyDown(key)
if key == "PAD1" then
self:Click();
elseif key == "PAD2" then
self.switch:Close();
self.currentObj = nil;
elseif key == "PAD4" then
self.filter:Click();
end
end
function ag:KeyUp(key)
if LinearScrollUpdater:Stop() or key == "PAD4" then
self.tooltip:OnScrollStopped();
end
end
function ag:Navigate(x, y)
--↑↓←→
-- x > 0 PADDRIGHT, x < 0 PADDLEFT
-- y > 0 PADDUP, x < 0 PADDDOWN
if y > 0 then
if self.i < 2 then
LinearScrollUpdater:Start(self.scrollFrame, -240, true);
self.tooltip:PauseAndHide();
end
if self.i > 0 then
self.i = self.i - 1;
end
elseif y < 0 then
if self.i > 15 then
LinearScrollUpdater:Start(self.scrollFrame, 240, true);
self.tooltip:PauseAndHide();
end
if self.i < self.maxIndex then
self.i = self.i + 1;
end
end
self:Enter(self.buttons[self.i]);
return true
end