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)