diff --git a/esoui/internalingame/market/gamepad/marketgridscreen_gamepad.lua b/esoui/internalingame/market/gamepad/marketgridscreen_gamepad.lua
index 8ed2293..7dcce26 100755
--- a/esoui/internalingame/market/gamepad/marketgridscreen_gamepad.lua
+++ b/esoui/internalingame/market/gamepad/marketgridscreen_gamepad.lua
@@ -52,31 +52,20 @@ function GamepadGridFocus:New(...)
end
function GamepadGridFocus:Initialize(control, gridWidth, gridHeight, leftBoundCallBack, rightBoundCallBack, topBoundCallBack, bottomBoundCallBack)
- self.data = {}
- self.control = control
- self.index = nil
- self.savedIndex = nil
+ ZO_GamepadFocus.Initialize(self, control)
+
self.gridWidth = gridWidth
self.gridHeight = gridHeight
- self.horizontalMovementController = ZO_MovementController:New(MOVEMENT_CONTROLLER_DIRECTION_HORIZONTAL)
- self.verticalMovementController = ZO_MovementController:New(MOVEMENT_CONTROLLER_DIRECTION_VERTICAL)
- self:SetActive(false)
self.cooldown = 0
self.leftBoundCallBack = leftBoundCallBack
- self.righBoundCallBack = rightBoundCallBack
+ self.rightBoundCallBack = rightBoundCallBack
self.topBoundCallBack = topBoundCallBack
self.bottomBoundCallBack = bottomBoundCallBack
- self.directionalInputEnabled = true
-
- local function GamepadListPlaySound(movementType)
- if movementType == FOCUS_MOVEMENT_TYPES.MOVE_NEXT then
- PlaySound(SOUNDS.GAMEPAD_MENU_DOWN)
- elseif movementType == FOCUS_MOVEMENT_TYPES.MOVE_PREVIOUS then
- PlaySound(SOUNDS.GAMEPAD_MENU_UP)
- end
end
- self:SetPlaySoundFunction(GamepadListPlaySound)
+function GamepadGridFocus:InitializeMovementController()
+ self.horizontalMovementController = ZO_MovementController:New(MOVEMENT_CONTROLLER_DIRECTION_HORIZONTAL)
+ self.verticalMovementController = ZO_MovementController:New(MOVEMENT_CONTROLLER_DIRECTION_VERTICAL)
end
function GamepadGridFocus:GetSelectedIndex()
@@ -114,8 +103,8 @@ do
self.leftBoundCallBack()
end
elseif gridX > self.gridWidth then
- if self.righBoundCallBack then
- self.righBoundCallBack()
+ if self.rightBoundCallBack then
+ self.rightBoundCallBack()
end
elseif gridY < 1 then
if self.topBoundCallBack then
@@ -370,10 +359,6 @@ function ZO_GamepadMarket_GridScreen:Initialize(control, gridWidth, gridHeight,
self.scrollbar:SetMinMax(MIN_SCROLL_VALUE, MAX_SCROLL_VALUE)
self.scrollbar:SetEnabled(true)
self.scrollbar:SetAllowDraggingFromThumb(false)
- self.scrollUpButton = self.scrollbar:GetNamedChild("Up")
- self.scrollDownButton = self.scrollbar:GetNamedChild("Down")
- self.scrollUpButton:SetHidden(true)
- self.scrollDownButton:SetHidden(true)
ZO_Scroll_Initialize(self.contentContainer)
self.contentContainer.scrollChild = self.contentContainer:GetNamedChild("ScrollChild")
self.currentCategoryControl = self.contentContainer.scrollChild -- Used for product parenting, may be updated by subclass
@@ -384,7 +369,7 @@ function ZO_GamepadMarket_GridScreen:Initialize(control, gridWidth, gridHeight,
self.lastGridY = 1
self.gridScrollYPosition = 1
self.currentItemAnchor = ZO_Anchor:New(TOPLEFT, self.contentContainer, TOPLEFT)
- self.focusList = GamepadGridFocus:New(control, gridWidth, gridHeight, nil, nil)
+ self.focusList = GamepadGridFocus:New(control, gridWidth, gridHeight)
self.focusList:SetFocusChangedCallback(function(...) self:OnSelectionChanged(...) end)
self.previewProducts = {}
self:InitializeMarketProductPool()
@@ -426,7 +411,7 @@ function ZO_GamepadMarket_GridScreen:SetGridDimensions(gridWidth, gridHeight)
self.focusList:SetGridDimensions(gridWidth, gridHeight)
end
-function ZO_GamepadMarket_GridScreen:PrepareGridForBuild(itemsPerRow, itemsPerColumn, itemWidth, itemHeight, itemPadding, isBundle)
+function ZO_GamepadMarket_GridScreen:PrepareGridForBuild(itemsPerRow, itemsPerColumn, itemWidth, itemHeight, itemPadding, useWideTiles)
self.totalItems = 0
self.currentItemAnchor:SetTarget(self.currentCategoryControl)
self.itemsPerRow = itemsPerRow
@@ -434,11 +419,23 @@ function ZO_GamepadMarket_GridScreen:PrepareGridForBuild(itemsPerRow, itemsPerCo
self.itemWidth = itemWidth
self.itemHeight = itemHeight
self.itemPadding = itemPadding
- self.isBundle = isBundle
+ self.useWideTiles = useWideTiles
self.gridYPaddingOffset = ZO_GAMEPAD_MARKET_GRID_INITIAL_Y_OFFSET
self.gridYHeight = 0
end
+function ZO_GamepadMarket_GridScreen:ResetGrid()
+ self.totalItems = 0
+ self.currentItemAnchor:SetTarget(self.currentCategoryControl)
+ self.itemsPerRow = 0
+ self.itemsPerColumn = 0
+ self.itemWidth = 0
+ self.itemHeight = 0
+ self.itemPadding = 0
+ self.useWideTiles = false
+ self.gridYPaddingOffset = ZO_GAMEPAD_MARKET_GRID_INITIAL_Y_OFFSET
+end
+
function ZO_GamepadMarket_GridScreen:AddEntry(marketProduct, control)
control:ClearAnchors()
local row, col, _, gridYHeight = ZO_Anchor_BoxLayout(self.currentItemAnchor, control, self.totalItems, self.itemsPerRow, self.itemPadding, self.itemPadding, self.itemWidth, self.itemHeight, ZO_GAMEPAD_MARKET_GRID_INITIAL_X_OFFSET, self.gridYPaddingOffset)
@@ -447,7 +444,7 @@ function ZO_GamepadMarket_GridScreen:AddEntry(marketProduct, control)
control:SetParent(self.currentCategoryControl)
self.totalItems = self.totalItems + 1
marketProduct:SetListIndex(self.totalItems)
- marketProduct:SetRenderSize(self.isBundle and ZO_GAMEPAD_MARKET_PRODUCT_RENDER_SIZE_WIDE or ZO_GAMEPAD_MARKET_PRODUCT_RENDER_SIZE_STANDARD)
+ marketProduct:SetRenderSize(self.useWideTiles and ZO_GAMEPAD_MARKET_PRODUCT_RENDER_SIZE_WIDE or ZO_GAMEPAD_MARKET_PRODUCT_RENDER_SIZE_STANDARD)
local focusData = marketProduct:GetFocusData()
focusData.gridY = row + 1
focusData.gridX = col + 1
@@ -483,7 +480,6 @@ do
local SLIDER_MIN_VALUE = 0
function ZO_GamepadMarket_GridScreen:FinishBuild()
self.focusList:SetFocusToFirstEntry()
- self:RefreshKeybinds()
self.lastGridY = 1
self.gridScrollYPosition = 1
self:SetGridDimensions(self.itemsPerRow, self.itemsPerColumn)
@@ -497,16 +493,10 @@ do
end
end
-function ZO_GamepadMarket_GridScreen:RefreshKeybinds()
- ZO_GamepadMarketKeybindStrip_RefreshStyle()
- KEYBIND_STRIP:UpdateKeybindButtonGroup(self.keybindStripDescriptors)
-end
-
function ZO_GamepadMarket_GridScreen:InitializeHeader(initialTabBarEntries)
local header = self.header
header.tabBarControl = header:GetNamedChild("TabBar")
- header.tabBarControl:SetHidden(false)
header.tabBar = GamepadMarket_TabBarScrollList:New(header.tabBarControl)
self.headerData =
@@ -519,10 +509,9 @@ end
function ZO_GamepadMarket_GridScreen:RefreshHeader()
if self.isInitialized then
- local header = self.header
local headerData = self.headerData
if headerData then
- local tabBar = header.tabBar
+ local tabBar = self.header.tabBar
local tabBarEntries = headerData.tabBarEntries
if tabBarEntries then
@@ -551,8 +540,7 @@ function ZO_GamepadMarket_GridScreen:BeginPreview()
end
function ZO_GamepadMarket_GridScreen:EndCurrentPreview()
- EndCurrentItemPreview()
- self:RefreshKeybinds()
+ EndCurrentMarketPreview()
end
function ZO_GamepadMarket_GridScreen:HasMultiplePreviewProducts()
@@ -588,7 +576,6 @@ end
function ZO_GamepadMarket_GridScreen:OnShowing()
self:EndCurrentPreview()
self:PerformDeferredInitialization()
- self:RefreshHeader()
end
function ZO_GamepadMarket_GridScreen:SelectAfterPreview()
@@ -686,9 +673,8 @@ function ZO_GamepadMarket_GridScreen:UpdatePreviousAndNewlySelectedProducts(prev
end
end
-function ZO_GamepadMarket_GridScreen:ScrollToGridEntry(entryData)
- local scrollPosition = entryData.gridY == 1 and 0 or (entryData.centerScrollHeight - self.scrollToCenterOffsetY)
- if self.control:IsHidden() then -- Play animation instantly if the market control is hidden
+function ZO_GamepadMarket_GridScreen:ScrollToPosition(scrollPosition, scrollInstantly)
+ if self.control:IsHidden() or scrollInstantly then -- Play animation instantly if the market control is hidden
ZO_Scroll_ScrollAbsoluteInstantly(self.contentContainer, scrollPosition)
else
ZO_Scroll_ScrollAbsolute(self.contentContainer, scrollPosition) -- Animate to scroll position
@@ -697,16 +683,14 @@ function ZO_GamepadMarket_GridScreen:ScrollToGridEntry(entryData)
self:UpdateScrollbarAlpha()
end
-function ZO_GamepadMarket_GridScreen:ScrollToGridScrollYPosition()
- local scrollPosition = (self.gridScrollYPosition - 1) * (self.itemHeight + self.itemPadding)
-
- if self.control:IsHidden() then -- Play animation instantly if the market control is hidden
- ZO_Scroll_ScrollAbsoluteInstantly(self.contentContainer, scrollPosition)
- else
- ZO_Scroll_ScrollAbsolute(self.contentContainer, scrollPosition) -- Animate to scroll position
+function ZO_GamepadMarket_GridScreen:ScrollToGridEntry(entryData, scrollInstantly)
+ local scrollPosition = entryData.gridY == 1 and 0 or (entryData.centerScrollHeight - self.scrollToCenterOffsetY)
+ self:ScrollToPosition(scrollPosition, scrollInstantly)
end
- self:UpdateScrollbarAlpha()
+function ZO_GamepadMarket_GridScreen:ScrollToGridScrollYPosition()
+ local scrollPosition = (self.gridScrollYPosition - 1) * (self.itemHeight + self.itemPadding)
+ self:ScrollToPosition(scrollPosition)
end
do
@@ -738,14 +722,6 @@ function ZO_GamepadMarket_GridScreen:OnSelectionChanged(selectedData)
end
end
-function ZO_GamepadMarket_GridScreen:AddKeybinds()
- KEYBIND_STRIP:AddKeybindButtonGroup(self.keybindStripDescriptors)
-end
-
-function ZO_GamepadMarket_GridScreen:RemoveKeybinds()
- KEYBIND_STRIP:RemoveKeybindButtonGroup(self.keybindStripDescriptors)
-end
-
function ZO_GamepadMarket_GridScreen:SetQueuedTutorial(queuedTutorial)
self.queuedTutorial = queuedTutorial
end