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.8 KiB

4 years ago
local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local _G = _G
local pairs, ipairs = pairs, ipairs
local unpack, select = unpack, select
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 = {
'TradeFramePlayerPortrait',
'TradeFrameRecipientPortrait',
'TradePlayerInputMoneyInset',
'TradeRecipientPortraitFrame',
'TradeRecipientMoneyBg'
}
for _, frame in ipairs(tradeFrames) do
_G[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 = select(3, GetItemInfo(link))
tradeItemName:SetTextColor(GetItemQualityColor(quality))
if quality and quality > 1 then
tradeItemButton:SetBackdropBorderColor(GetItemQualityColor(quality))
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 = select(3, GetItemInfo(link))
tradeItemName:SetTextColor(GetItemQualityColor(quality))
if quality and quality > 1 then
tradeItemButton:SetBackdropBorderColor(GetItemQualityColor(quality))
end
end
end)
end
S:AddCallback('TradeFrame')