Skip to content

Commit

Permalink
Merge branch 'main' into ptr
Browse files Browse the repository at this point in the history
  • Loading branch information
kodewdle committed Aug 4, 2024
2 parents 67d50e2 + b615f52 commit 8bf4e17
Showing 1 changed file with 55 additions and 34 deletions.
89 changes: 55 additions & 34 deletions ElvUI/Core/Modules/Bags/Bags.lua
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ local FetchPurchasedBankTabData = C_Bank and C_Bank.FetchPurchasedBankTabData
local AutoDepositItemsIntoBank = C_Bank and C_Bank.AutoDepositItemsIntoBank
local FetchDepositedMoney = C_Bank and C_Bank.FetchDepositedMoney
local CanPurchaseBankTab = C_Bank and C_Bank.CanPurchaseBankTab
local CanViewBank = C_Bank and C_Bank.CanViewBank
local FlagsUtil_IsSet = FlagsUtil and FlagsUtil.IsSet

local EditBox_HighlightText = EditBox_HighlightText
Expand Down Expand Up @@ -118,6 +119,7 @@ local BACKPACK_CONTAINER = BagIndex.Backpack
local REAGENTBANK_CONTAINER = BagIndex.Reagentbank
local KEYRING_CONTAINER = BagIndex.Keyring
local REAGENT_CONTAINER = E.Retail and BagIndex.ReagentBag or math.huge
local CHARACTERBANK_TYPE = (Enum.BankType and Enum.BankType.Character) or 0
local WARBANDBANK_TYPE = (Enum.BankType and Enum.BankType.Account) or 2
local WARBANDBANK_OFFSET = 30

Expand Down Expand Up @@ -1260,7 +1262,7 @@ function B:Layout(isBank)
end

if f.WarbandHolder then
f.WarbandHolder.cover.purchaseText:SetWidth(B.db.bankWidth - 40)
f.WarbandHolder.cover.text:SetWidth(B.db.bankWidth - 40)
end
elseif B.BankTab == REAGENTBANK_CONTAINER then
if not IsReagentBankUnlocked() then
Expand Down Expand Up @@ -1694,28 +1696,28 @@ function B:UnregisterBagEvents(bagFrame)
bagFrame:UnregisterAllEvents() -- Unregister to prevent unnecessary updates during sorting
end

function B:ConstructContainerPurchaseCover(frame)
function B:ConstructContainerCover(frame)
frame.cover = CreateFrame('Button', nil, frame)
frame.cover:SetTemplate()
frame.cover:SetFrameLevel(15)

frame.cover.purchaseButton = CreateFrame('Button', nil, frame.cover)
frame.cover.purchaseButton:Height(20)
frame.cover.purchaseButton:Width(150)
frame.cover.purchaseButton:Point('CENTER', frame.cover, 'CENTER')
S:HandleButton(frame.cover.purchaseButton)
frame.cover.purchaseButton:SetFrameLevel(16)
frame.cover.button = CreateFrame('Button', nil, frame.cover)
frame.cover.button:Height(20)
frame.cover.button:Width(150)
frame.cover.button:Point('CENTER', frame.cover, 'CENTER')
S:HandleButton(frame.cover.button)
frame.cover.button:SetFrameLevel(16)

frame.cover.purchaseButton.text = frame.cover.purchaseButton:CreateFontString(nil, 'OVERLAY')
frame.cover.purchaseButton.text:FontTemplate()
frame.cover.purchaseButton.text:Point('CENTER')
frame.cover.purchaseButton.text:SetJustifyH('CENTER')
frame.cover.purchaseButton.text:SetText(L["Purchase"])
frame.cover.button.text = frame.cover.button:CreateFontString(nil, 'OVERLAY')
frame.cover.button.text:FontTemplate()
frame.cover.button.text:Point('CENTER')
frame.cover.button.text:SetJustifyH('CENTER')
frame.cover.button.text:SetText(L["Purchase"])

frame.cover.purchaseText = frame.cover:CreateFontString(nil, 'OVERLAY')
frame.cover.purchaseText:FontTemplate()
frame.cover.purchaseText:Point('BOTTOM', frame.cover.purchaseButton, 'TOP', 0, 10)
frame.cover.purchaseText:SetWordWrap(true)
frame.cover.text = frame.cover:CreateFontString(nil, 'OVERLAY')
frame.cover.text:FontTemplate()
frame.cover.text:Point('BOTTOM', frame.cover.button, 'TOP', 0, 10)
frame.cover.text:SetWordWrap(true)
end

function B:ConstructContainerCustomBank(f, id, key, keyName, keySize)
Expand Down Expand Up @@ -2019,7 +2021,7 @@ function B:ConstructContainerHolder(f, bagID, isBank, name, index)
return holder
end

function B:PurchaseButton_ClickBank()
function B:CoverButton_ClickBank()
local _, full = GetNumBankSlots()
if full then
E:StaticPopup_Show('CANNOT_BUY_BANK_SLOT')
Expand All @@ -2030,7 +2032,7 @@ end

do
local warbandInfo = { bankType = WARBANDBANK_TYPE }
function B:PurchaseButton_ClickWarband()
function B:CoverButton_ClickWarband()
if CanPurchaseBankTab(WARBANDBANK_TYPE) then
E:StaticPopup_Show('CONFIRM_BUY_BANK_TAB', nil, nil, warbandInfo)
else
Expand Down Expand Up @@ -2191,6 +2193,14 @@ function B:ConstructContainerFrame(name, isBank)
f.fullBank = select(2, GetNumBankSlots())

if E.Retail then
--[[do
B:ConstructContainerCover(f.holderFrame)
f.holderFrame.cover:Point('TOPLEFT', 0, -BANK_SPACE_OFFSET)
f.holderFrame.cover:Point('BOTTOMRIGHT')
f.holderFrame.cover.text:SetText('Cover for the Bank')
f.holderFrame.cover.button:Hide()
end]]

do -- main bank button
f.bankToggle = CreateFrame('Button', name..'BankButton', f, 'UIPanelButtonTemplate')
f.bankToggle:Size(71, 23)
Expand All @@ -2207,11 +2217,11 @@ function B:ConstructContainerFrame(name, isBank)
do -- reagent bank
local reagentFrame = B:ConstructContainerCustomBank(f, REAGENTBANK_CONTAINER, 'reagentFrame', 'ElvUIReagentBankFrame', B.REAGENTBANK_SIZE)

B:ConstructContainerPurchaseCover(reagentFrame)
reagentFrame.cover:Point('TOPLEFT', reagentFrame, 0, -BANK_SPACE_OFFSET)
reagentFrame.cover:Point('BOTTOMRIGHT', reagentFrame)
reagentFrame.cover.purchaseText:SetText(REAGENTBANK_PURCHASE_TEXT)
reagentFrame.cover.purchaseButton:SetScript('OnClick', function()
B:ConstructContainerCover(reagentFrame)
reagentFrame.cover:Point('TOPLEFT', 0, -BANK_SPACE_OFFSET)
reagentFrame.cover:Point('BOTTOMRIGHT')
reagentFrame.cover.text:SetText(REAGENTBANK_PURCHASE_TEXT)
reagentFrame.cover.button:SetScript('OnClick', function()
PlaySound(852) --IG_MAINMENU_OPTION
StaticPopup_Show('CONFIRM_BUY_REAGENTBANK_TAB')
end)
Expand Down Expand Up @@ -2250,13 +2260,13 @@ function B:ConstructContainerFrame(name, isBank)
f.WarbandHolder.totalBags = 5
f.WarbandHolderByBagID = {}

B:ConstructContainerPurchaseCover(f.WarbandHolder)
B:ConstructContainerCover(f.WarbandHolder)
f.WarbandHolder.cover:Point('TOPLEFT', _G.ElvUIReagentBankFrame.cover, 0, -WARBANDBANK_OFFSET)
f.WarbandHolder.cover:Point('BOTTOMRIGHT', _G.ElvUIReagentBankFrame.cover)
f.WarbandHolder.cover.purchaseText:SetText(_G.ACCOUNT_BANK_TAB_PURCHASE_PROMPT)
f.WarbandHolder.cover.purchaseButton:SetScript('OnClick', function()
f.WarbandHolder.cover.text:SetText(_G.ACCOUNT_BANK_TAB_PURCHASE_PROMPT)
f.WarbandHolder.cover.button:SetScript('OnClick', function()
PlaySound(852) --IG_MAINMENU_OPTION
B:PurchaseButton_ClickWarband()
B:CoverButton_ClickWarband()
end)

for bankIndex, bankID in next, B.WarbandIndexs do
Expand Down Expand Up @@ -2387,7 +2397,7 @@ function B:ConstructContainerFrame(name, isBank)
f.purchaseBagButton.ttText = L["Purchase Bags"]
f.purchaseBagButton:SetScript('OnEnter', B.Tooltip_Show)
f.purchaseBagButton:SetScript('OnLeave', GameTooltip_Hide)
f.purchaseBagButton:SetScript('OnClick', B.PurchaseButton_ClickBank)
f.purchaseBagButton:SetScript('OnClick', B.CoverButton_ClickBank)

--Search
f.editBox:Point('BOTTOMLEFT', f.holderFrame, 'TOPLEFT', E.Border, 4)
Expand Down Expand Up @@ -2771,8 +2781,14 @@ function B:SetBankTabs(f)
B:SetBankTabColor(f.reagentToggle, activeTab, 2)
B:SetBankTabColor(f.warbandToggle, activeTab, 3)
end

function B:SetBankTabColor(button, activeTab, currentTab)
if activeTab == currentTab then
local canView = CanViewBank(currentTab == 3 and WARBANDBANK_TYPE or CHARACTERBANK_TYPE)
button:SetEnabled(canView)

if not canView then
button.Text:SetTextColor(0.4, 0.4, 0.4)
elseif activeTab == currentTab then
button.Text:SetTextColor(1, 1, 1)
else
button.Text:SetTextColor(1, 0.81, 0)
Expand Down Expand Up @@ -2876,7 +2892,7 @@ function B:ShowBankTab(f, bankTab)
local canBuyTab = CanPurchaseBankTab(WARBANDBANK_TYPE)
f.bagsButton:Hide()
f.purchaseBagButton:SetShown(canBuyTab)
f.purchaseBagButton:SetScript('OnClick', B.PurchaseButton_ClickWarband)
f.purchaseBagButton:SetScript('OnClick', B.CoverButton_ClickWarband)
f.purchaseBagButton:Point('RIGHT', f.sortButton, 'LEFT', -5, 0)
f.reagentFrame:Hide()
f.holderFrame:Hide()
Expand Down Expand Up @@ -2918,7 +2934,7 @@ function B:ShowBankTab(f, bankTab)

f.bagsButton:Show()
f.purchaseBagButton:SetShown(not f.fullBank)
f.purchaseBagButton:SetScript('OnClick', B.PurchaseButton_ClickBank)
f.purchaseBagButton:SetScript('OnClick', B.CoverButton_ClickBank)
f.purchaseBagButton:Point('RIGHT', f.bagsButton, 'LEFT', -5, 0)
f.holderFrame:Show()
f.editBox:Point('RIGHT', (f.fullBank and f.bagsButton) or f.purchaseBagButton, 'LEFT', -5, BANK_SPACE_OFFSET)
Expand Down Expand Up @@ -2974,9 +2990,14 @@ function B:OpenBank()
B.BankFrame:Show()
_G.BankFrame:Show()

-- allow opening reagent tab directly by holding Shift
-- open to Warband when using Warband Bank Distance Inhibitor
-- otherwise, allow opening Reagents directly by holding Shift
-- keep this over update slots for bank slot assignments
B:ShowBankTab(B.BankFrame, E.Retail and IsShiftKeyDown() and (B.BankTab ~= REAGENTBANK_CONTAINER) and REAGENTBANK_CONTAINER)
local viewCharacter = E.Retail and CanViewBank(CHARACTERBANK_TYPE)
local openToWarband = E.Retail and not viewCharacter and CanViewBank(WARBANDBANK_TYPE) and B.WarbandIndexs[1]
local openToReagent = viewCharacter and IsShiftKeyDown() and (B.BankTab ~= REAGENTBANK_CONTAINER) and REAGENTBANK_CONTAINER

B:ShowBankTab(B.BankFrame, openToReagent or openToWarband)

if E.Retail then
B:SetBankTabs(B.BankFrame)
Expand Down

0 comments on commit 8bf4e17

Please sign in to comment.