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.

103 lines
3.8 KiB

local AS = unpack(AddOnSkins)
-- Cache global variables
--Lua functions
local _G = _G
local pairs, select, unpack = pairs, select, unpack
--WoW API / Variables
local hooksecurefunc = hooksecurefunc
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetTradePlayerItemLink = GetTradePlayerItemLink
local GetTradeTargetItemLink = GetTradeTargetItemLink
-- GLOBALS:
function AS:Blizzard_TradeWindow()
AS:SkinFrame(_G.TradeFrame, nil, nil, true)
AS:StripTextures(_G.TradeRecipientMoneyBg)
AS:SkinFrame(_G.TradeRecipientMoneyInset)
AS:SkinButton(_G.TradeFrameTradeButton, true)
AS:SkinButton(_G.TradeFrameCancelButton, true)
AS:SkinCloseButton(_G.TradeFrameCloseButton)
AS:SkinEditBox(_G.TradePlayerInputMoneyFrameGold)
AS:SkinEditBox(_G.TradePlayerInputMoneyFrameSilver)
AS:SkinEditBox(_G.TradePlayerInputMoneyFrameCopper)
AS:StripTextures(_G.TradePlayerInputMoneyInset)
_G.TradePlayerInputMoneyFrame:SetPoint('TOPLEFT', 8, -59)
_G.TradePlayerItem1:SetPoint('TOPLEFT', 8, -89)
for _, Inset in pairs({ _G.TradePlayerItemsInset, _G.TradeRecipientItemsInset, _G.TradePlayerEnchantInset, _G.TradeRecipientEnchantInset }) do
AS:SkinFrame(Inset)
end
for _, Highlight in pairs({ _G.TradeHighlightPlayer, _G.TradeHighlightRecipient, _G.TradeHighlightPlayerEnchant, _G.TradeHighlightRecipientEnchant }) do
AS:StripTextures(Highlight)
end
for _, Frame in pairs({"TradePlayerItem", "TradeRecipientItem"}) do
for i = 1, 7 do
local ItemBackground = _G[Frame..i]
local ItemButton = _G[Frame..i.."ItemButton"]
AS:StripTextures(ItemBackground)
AS:SkinFrame(ItemButton)
AS:StyleButton(ItemButton)
AS:SkinTexture(ItemButton.icon)
AS:SetInside(ItemButton.icon)
AS:CreateBackdrop(ItemButton)
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
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(AS.BorderColor))
_G.TradePlayerEnchantInset:SetBackdropBorderColor(unpack(AS.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(AS.BorderColor))
_G.TradeRecipientEnchantInset:SetBackdropBorderColor(unpack(AS.BorderColor))
_G.TradeRecipientMoneyInset:SetBackdropBorderColor(unpack(AS.BorderColor))
end
end)
hooksecurefunc('TradeFrame_UpdatePlayerItem', function(id)
local tradeItem = _G["TradePlayerItem"..id.."ItemButton"]
tradeItem:SetBackdropBorderColor(unpack(AS.BorderColor))
local Link = GetTradePlayerItemLink(id)
if Link then
local Quality = select(3, GetItemInfo(Link))
if Quality and Quality > 1 then
tradeItem:SetBackdropBorderColor(GetItemQualityColor(Quality))
end
end
end)
hooksecurefunc('TradeFrame_UpdateTargetItem', function(id)
local tradeItem = _G["TradeRecipientItem"..id.."ItemButton"]
tradeItem:SetBackdropBorderColor(unpack(AS.BorderColor))
local Link = GetTradeTargetItemLink(id)
if Link then
local Quality = select(3, GetItemInfo(Link))
if Quality and Quality > 1 then
tradeItem:SetBackdropBorderColor(GetItemQualityColor(Quality))
end
end
end)
end
AS:RegisterSkin('Blizzard_TradeWindow', AS.Blizzard_TradeWindow)