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.
140 lines
4.9 KiB
140 lines
4.9 KiB
local E, L, V, P, G = unpack(ElvUI)
|
|
local S = E:GetModule('Skins')
|
|
|
|
local _G = _G
|
|
local unpack, pairs, ipairs = unpack, pairs, ipairs
|
|
local hooksecurefunc = hooksecurefunc
|
|
|
|
local GetItemInfo = GetItemInfo
|
|
local GetItemQualityColor = GetItemQualityColor
|
|
local GetTradePlayerItemLink = GetTradePlayerItemLink
|
|
local GetTradeTargetItemLink = GetTradeTargetItemLink
|
|
|
|
function S:TradeFrame()
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.trade) then return end
|
|
|
|
local TradeFrame = _G.TradeFrame
|
|
S:HandleFrame(TradeFrame, true, nil, -5, 0, 0)
|
|
|
|
S:HandleButton(_G.TradeFrameTradeButton, true)
|
|
S:HandleButton(_G.TradeFrameCancelButton, true)
|
|
|
|
S:HandlePointXY(_G.TradeFrameCloseButton, -5)
|
|
S:HandlePointXY(_G.TradeFrameTradeButton, -85)
|
|
S:HandlePointXY(_G.TradeFrameTradeButton, -85, 2)
|
|
S:HandlePointXY(_G.TradeFrameCancelButton, 3)
|
|
S:HandlePointXY(_G.TradePlayerItem1, 8)
|
|
|
|
S:HandleEditBox(_G.TradePlayerInputMoneyFrameGold)
|
|
S:HandleEditBox(_G.TradePlayerInputMoneyFrameSilver)
|
|
S:HandleEditBox(_G.TradePlayerInputMoneyFrameCopper)
|
|
|
|
_G.TradePlayerInputMoneyInset:StripTextures()
|
|
|
|
local tradeFrames = {
|
|
_G.TradeFramePlayerPortrait,
|
|
_G.TradeFrameRecipientPortrait,
|
|
_G.TradePlayerInputMoneyInset,
|
|
_G.TradeRecipientPortraitFrame,
|
|
_G.TradeRecipientMoneyBg
|
|
}
|
|
|
|
for _, frame in ipairs(tradeFrames) do
|
|
frame:Kill()
|
|
end
|
|
|
|
for _, Frame in pairs({'TradePlayerItem', 'TradeRecipientItem'}) do
|
|
for i = 1, 7 do
|
|
local ItemBackground = _G[Frame..i]
|
|
local ItemButton = _G[Frame..i..'ItemButton']
|
|
|
|
ItemBackground:StripTextures()
|
|
S:HandleItemButton(ItemButton)
|
|
ItemButton:StyleButton()
|
|
|
|
S:HandleIcon(ItemButton.icon, true)
|
|
|
|
ItemButton.backdrop:SetBackdropColor(0, 0, 0, 0)
|
|
ItemButton.backdrop:SetPoint('TOPLEFT', ItemButton, 'TOPRIGHT', 4, 0)
|
|
ItemButton.backdrop:SetPoint('BOTTOMRIGHT', _G[Frame..i..'NameFrame'], 'BOTTOMRIGHT', -1, 14)
|
|
end
|
|
end
|
|
|
|
for _, Inset in pairs({ _G.TradePlayerItemsInset, _G.TradeRecipientItemsInset, _G.TradePlayerEnchantInset, _G.TradeRecipientEnchantInset, _G.TradeRecipientMoneyInset }) do
|
|
Inset:StripTextures()
|
|
Inset:SetTemplate('Transparent')
|
|
end
|
|
|
|
for _, Highlight in pairs({ _G.TradeHighlightPlayer, _G.TradeHighlightRecipient, _G.TradeHighlightPlayerEnchant, _G.TradeHighlightRecipientEnchant }) do
|
|
Highlight:StripTextures()
|
|
end
|
|
|
|
_G.TradeFrame:HookScript('OnShow', function()
|
|
_G.TradePlayerItemsInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.TradePlayerEnchantInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.TradeRecipientItemsInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.TradeRecipientEnchantInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.TradeRecipientMoneyInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
end)
|
|
|
|
hooksecurefunc('TradeFrame_SetAcceptState', function(playerState, targetState)
|
|
if playerState == 1 then
|
|
_G.TradePlayerItemsInset:SetBackdropBorderColor(0, 1, 0)
|
|
_G.TradePlayerEnchantInset:SetBackdropBorderColor(0, 1, 0)
|
|
else
|
|
_G.TradePlayerItemsInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.TradePlayerEnchantInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
end
|
|
if targetState == 1 then
|
|
_G.TradeRecipientItemsInset:SetBackdropBorderColor(0, 1, 0)
|
|
_G.TradeRecipientEnchantInset:SetBackdropBorderColor(0, 1, 0)
|
|
_G.TradeRecipientMoneyInset:SetBackdropBorderColor(0, 1, 0)
|
|
else
|
|
_G.TradeRecipientItemsInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.TradeRecipientEnchantInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.TradeRecipientMoneyInset:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
end
|
|
end)
|
|
|
|
hooksecurefunc('TradeFrame_UpdatePlayerItem', function(id)
|
|
local tradeItemButton = _G['TradePlayerItem'..id..'ItemButton']
|
|
local link = GetTradePlayerItemLink(id)
|
|
|
|
tradeItemButton:SetTemplate('NoBackdrop')
|
|
tradeItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
|
|
if link then
|
|
local tradeItemName = _G['TradePlayerItem'..id..'Name']
|
|
local _, _, quality = GetItemInfo(link)
|
|
|
|
local r, g, b = GetItemQualityColor(quality)
|
|
tradeItemName:SetTextColor(r, g, b)
|
|
|
|
if quality and quality > 1 then
|
|
tradeItemButton:SetBackdropBorderColor(r, g, b)
|
|
end
|
|
end
|
|
end)
|
|
|
|
hooksecurefunc('TradeFrame_UpdateTargetItem', function(id)
|
|
local tradeItemButton = _G['TradeRecipientItem'..id..'ItemButton']
|
|
local link = GetTradeTargetItemLink(id)
|
|
|
|
tradeItemButton:SetTemplate('NoBackdrop')
|
|
tradeItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
|
|
if link then
|
|
local tradeItemName = _G['TradeRecipientItem'..id..'Name']
|
|
local _, _, quality = GetItemInfo(link)
|
|
|
|
local r, g, b = GetItemQualityColor(quality)
|
|
tradeItemName:SetTextColor(r, g, b)
|
|
|
|
if quality and quality > 1 then
|
|
tradeItemButton:SetBackdropBorderColor(r, g, b)
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
|
|
S:AddCallback('TradeFrame')
|
|
|