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.

395 lines
14 KiB

local AS = unpack(AddOnSkins)
-- Cache global variables
--Lua functions
local _G = _G
local pairs, select, unpack = pairs, select, unpack
--WoW API / Variables
local CreateFrame = CreateFrame
local hooksecurefunc = hooksecurefunc
-- GLOBALS:
function AS:Blizzard_AuctionHouseUI(event, addon)
if addon ~= "Blizzard_AuctionHouseUI" then return end
local function HandleAuctionButtons(button)
AS:SkinButton(button)
button:SetSize(22, 22)
end
local function HandleHeaders(frame)
local maxHeaders = frame.HeaderContainer:GetNumChildren()
for i = 1, maxHeaders do
local header = select(i, frame.HeaderContainer:GetChildren())
if header and not header.IsSkinned then
header:DisableDrawLayer("BACKGROUND")
if not header.backdrop then
AS:CreateBackdrop(header)
end
header.IsSkinned = true
end
if header.Backdrop then
header.Backdrop:SetPoint("BOTTOMRIGHT", i < maxHeaders and -5 or 0, -2)
end
end
end
local function HandleSummaryIcons(frame)
for i = 1, 23 do
local child = select(i, frame.ScrollFrame.scrollChild:GetChildren())
if child and child.Icon then
if not child.IsSkinned then
AS:SkinTexture(child.Icon)
if child.IconBorder then
child.IconBorder:SetAlpha(0)
end
child.IsSkinned = true
end
end
end
end
local function SkinItemDisplay(frame)
local ItemDisplay = frame.ItemDisplay
AS:StripTextures(ItemDisplay)
local ItemButton = ItemDisplay.ItemButton
ItemButton.CircleMask:Hide()
-- We skin the new IconBorder from the AH, it looks really cool tbh.
ItemButton.Icon:SetTexCoord(.08, .92, .08, .92)
ItemButton.Icon:SetSize(44, 44)
ItemButton.IconBorder:SetTexCoord(.08, .92, .08, .92)
end
local function HandleSellFrame(frame)
AS:StripTextures(frame)
local ItemDisplay = frame.ItemDisplay
AS:StripTextures(ItemDisplay)
local ItemButton = ItemDisplay.ItemButton
if ItemButton.IconMask then ItemButton.IconMask:Hide() end
if ItemButton.IconBorder then ItemButton.IconBorder:SetAlpha(0) end
ItemButton.EmptyBackground:Hide()
ItemButton:SetPushedTexture("")
ItemButton.Highlight:SetColorTexture(1, 1, 1, .25)
ItemButton.Highlight:SetAllPoints(ItemButton.Icon)
AS:SkinTexture(ItemButton.Icon, true)
hooksecurefunc(ItemButton.IconBorder, "SetVertexColor", function(_, r, g, b) ItemButton.Icon.Backdrop:SetBackdropBorderColor(r, g, b) end)
hooksecurefunc(ItemButton.IconBorder, "Hide", function() ItemButton.Icon.Backdrop:SetBackdropBorderColor(0, 0, 0) end)
AS:SkinEditBox(frame.QuantityInput.InputBox)
AS:SkinButton(frame.QuantityInput.MaxButton)
AS:SkinEditBox(frame.PriceInput.MoneyInputFrame.GoldBox)
AS:SkinEditBox(frame.PriceInput.MoneyInputFrame.SilverBox)
if frame.SecondaryPriceInput then
AS:SkinEditBox(frame.SecondaryPriceInput.MoneyInputFrame.GoldBox)
AS:SkinEditBox(frame.SecondaryPriceInput.MoneyInputFrame.SilverBox)
end
AS:SkinDropDownBox(frame.DurationDropDown.DropDown)
AS:SkinButton(frame.PostButton)
if frame.BuyoutModeCheckButton then
AS:SkinCheckBox(frame.BuyoutModeCheckButton)
frame.BuyoutModeCheckButton:SetSize(20, 20)
end
end
local function HandleTokenSellFrame(frame)
frame:StripTextures()
local ItemDisplay = frame.ItemDisplay
ItemDisplay:StripTextures()
ItemDisplay:CreateBackdrop("Transparent")
local ItemButton = ItemDisplay.ItemButton
if ItemButton.IconMask then ItemButton.IconMask:Hide() end
if ItemButton.IconBorder then ItemButton.IconBorder:SetAlpha(0) end
ItemButton.EmptyBackground:Hide()
ItemButton:SetPushedTexture("")
ItemButton.Highlight:SetColorTexture(1, 1, 1, .25)
ItemButton.Highlight:SetAllPoints(ItemButton.Icon)
AS:SkinTexture(ItemButton.Icon, true)
hooksecurefunc(ItemButton.IconBorder, "SetVertexColor", function(_, r, g, b) ItemButton.Icon.Backdrop:SetBackdropBorderColor(r, g, b) end)
hooksecurefunc(ItemButton.IconBorder, "Hide", function() ItemButton.Icon.Backdrop:SetBackdropBorderColor(0, 0, 0) end)
AS:SkinButton(frame.PostButton)
HandleAuctionButtons(frame.DummyRefreshButton)
AS:SkinBackdropFrame(frame.DummyItemList)
HandleAuctionButtons(frame.DummyRefreshButton)
AS:SkinScrollBar(frame.DummyItemList.DummyScrollBar)
end
local function HandleSellList(frame, hasHeader)
AS:StripTextures(frame)
if frame.RefreshFrame then
HandleAuctionButtons(frame.RefreshFrame.RefreshButton)
end
AS:SkinScrollBar(frame.ScrollFrame.scrollBar)
if hasHeader then
AS:CreateBackdrop(frame.ScrollFrame)
hooksecurefunc(frame, "RefreshScrollFrame", HandleHeaders)
else
hooksecurefunc(frame, "RefreshListDisplay", HandleSummaryIcons)
end
end
AS:SkinBackdropFrame(_G.AuctionHouseFrame, nil, nil, true)
AS:CreateShadow(_G.AuctionHouseFrame.Backdrop)
AS:SkinCloseButton(_G.AuctionHouseFrameCloseButton)
for _, tab in ipairs(_G.AuctionHouseFrame.Tabs) do
AS:SkinTab(tab)
end
AS:StripTextures(_G.AuctionHouseFrame.CategoriesList, true)
AS:StripTextures(_G.AuctionHouseFrame.MoneyFrameBorder, true)
AS:StripTextures(_G.AuctionHouseFrame.MoneyFrameInset, true)
AS:SkinButton(_G.AuctionHouseFrame.SearchBar.SearchButton)
AS:SkinEditBox(_G.AuctionHouseFrame.SearchBar.SearchBox)
AS:SkinButton(_G.AuctionHouseFrame.SearchBar.FavoritesSearchButton)
AS:SkinButton(_G.AuctionHouseFrame.SearchBar.FilterButton)
_G.AuctionHouseFrame.SearchBar.FavoritesSearchButton:SetSize(22, 22)
for _, Filter in ipairs(_G.AuctionHouseFrame.CategoriesList.FilterButtons) do
AS:SkinBackdropFrame(Filter, nil, nil, true)
Filter.Backdrop:SetAllPoints(Filter.SelectedTexture)
Filter.HighlightTexture:SetAtlas(nil)
Filter.HighlightTexture.SetAtlas = AS.Noop
Filter.HighlightTexture:SetColorTexture(unpack(AS:CheckOption('HighlightColor')))
Filter.HighlightTexture:SetAlpha(.4)
Filter.HighlightTexture.Show = nil
Filter.SelectedTexture:SetAtlas(nil)
Filter.SelectedTexture.SetAtlas = AS.Noop
Filter.SelectedTexture:SetColorTexture(unpack(AS:CheckOption('SelectedColor')))
Filter.SelectedTexture:SetAlpha(.4)
end
AS:StripTextures(_G.AuctionHouseFrame.CategoriesList.ScrollFrame)
AS:SkinScrollBar(_G.AuctionHouseFrame.CategoriesList.ScrollFrame.ScrollBar)
AS:StripTextures(_G.AuctionHouseFrame.WoWTokenResults)
AS:SkinButton(_G.AuctionHouseFrame.WoWTokenResults.Buyout)
AS:SkinScrollBar(_G.AuctionHouseFrame.WoWTokenResults.DummyScrollBar)
AS:SkinFrame(_G.AuctionHouseFrame.WoWTokenResults.TokenDisplay)
AS:SkinTexture(_G.AuctionHouseFrame.WoWTokenResults.TokenDisplay.ItemButton.Icon, true)
_G.AuctionHouseFrame.WoWTokenResults.TokenDisplay.ItemButton.Icon.Backdrop:SetBackdropBorderColor(0, .8, 1)
_G.AuctionHouseFrame.WoWTokenResults.TokenDisplay.ItemButton.IconBorder:SetAlpha(0)
AS:Delay(.1, function()
for _, Button in pairs(_G.AuctionHouseFrame.BrowseResultsFrame.ItemList.ScrollFrame.buttons) do
for _, Cell in pairs(Button.cells) do
if Cell.Icon then
AS:SkinTexture(Cell.Icon)
end
end
end
end)
--[[ Browse Frame ]]--
local Browse = _G.AuctionHouseFrame.BrowseResultsFrame
local ItemList = Browse.ItemList
AS:SkinBackdropFrame(ItemList)
hooksecurefunc(ItemList, "RefreshScrollFrame", HandleHeaders)
AS:SkinScrollBar(ItemList.ScrollFrame.scrollBar)
--[[ BuyOut Frame]]
local CommoditiesBuyFrame = _G.AuctionHouseFrame.CommoditiesBuyFrame
CommoditiesBuyFrame.BuyDisplay:StripTextures()
AS:SkinButton(CommoditiesBuyFrame.BackButton)
ItemList = _G.AuctionHouseFrame.CommoditiesBuyFrame.ItemList
ItemList:StripTextures()
ItemList:CreateBackdrop("Transparent")
AS:SkinButton(ItemList.RefreshFrame.RefreshButton)
AS:SkinScrollBar(ItemList.ScrollFrame.scrollBar)
local BuyDisplay = _G.AuctionHouseFrame.CommoditiesBuyFrame.BuyDisplay
AS:SkinEditBox(BuyDisplay.QuantityInput.InputBox)
AS:SkinButton(BuyDisplay.BuyButton)
SkinItemDisplay(BuyDisplay)
--[[ ItemBuyOut Frame]]
local ItemBuyFrame = _G.AuctionHouseFrame.ItemBuyFrame
AS:SkinButton(ItemBuyFrame.BackButton)
AS:SkinButton(ItemBuyFrame.BuyoutFrame.BuyoutButton)
SkinItemDisplay(ItemBuyFrame)
ItemList = ItemBuyFrame.ItemList
ItemList:StripTextures()
ItemList:CreateBackdrop("Transparent")
AS:SkinScrollBar(ItemList.ScrollFrame.scrollBar)
AS:SkinButton(ItemList.RefreshFrame.RefreshButton)
hooksecurefunc(ItemList, "RefreshScrollFrame", HandleHeaders)
local EditBoxes = {
_G.AuctionHouseFrameGold,
_G.AuctionHouseFrameSilver,
}
for _, EditBox in pairs(EditBoxes) do
AS:SkinEditBox(EditBox)
EditBox:SetTextInsets(1, 1, -1, 1)
end
AS:SkinButton(ItemBuyFrame.BidFrame.BidButton)
ItemBuyFrame.BidFrame.BidButton:ClearAllPoints()
ItemBuyFrame.BidFrame.BidButton:SetPoint("LEFT", ItemBuyFrame.BidFrame.BidAmount, "RIGHT", 2, -2)
AS:SkinButton(ItemBuyFrame.BidFrame.BidButton)
--[[ Item Sell Frame | TAB 2 ]]--
local SellFrame = _G.AuctionHouseFrame.ItemSellFrame
local ItemSellList = _G.AuctionHouseFrame.ItemSellList
local CommoditiesSellFrame = _G.AuctionHouseFrame.CommoditiesSellFrame
local CommoditiesSellList = _G.AuctionHouseFrame.CommoditiesSellList
local TokenSellFrame = _G.AuctionHouseFrame.WoWTokenSellFrame
HandleSellFrame(SellFrame)
HandleSellList(ItemSellList, true)
HandleSellFrame(CommoditiesSellFrame)
HandleSellList(CommoditiesSellList, true)
HandleTokenSellFrame(TokenSellFrame)
--[[ Auctions Frame | TAB 3 ]]--
local AuctionsFrame = _G.AuctionHouseFrameAuctionsFrame
AS:StripTextures(AuctionsFrame)
SkinItemDisplay(AuctionsFrame)
local CommoditiesList = AuctionsFrame.CommoditiesList
HandleSellList(CommoditiesList, true)
AS:SkinButton(CommoditiesList.RefreshFrame.RefreshButton)
local ItemList = AuctionsFrame.ItemList
HandleSellList(ItemList, true)
AS:SkinButton(ItemList.RefreshFrame.RefreshButton)
local Tabs = {
_G.AuctionHouseFrameAuctionsFrameAuctionsTab,
_G.AuctionHouseFrameAuctionsFrameBidsTab,
}
for _, tab in pairs(Tabs) do
if tab then
AS:SkinTab(tab)
end
end
local SummaryList = AuctionsFrame.SummaryList
HandleSellList(SummaryList)
AS:SkinButton(AuctionsFrame.CancelAuctionButton)
local AllAuctionsList = AuctionsFrame.AllAuctionsList
HandleSellList(AllAuctionsList, true)
AS:SkinButton(AllAuctionsList.RefreshFrame.RefreshButton)
local BidsList = AuctionsFrame.BidsList
HandleSellList(BidsList, true)
AS:SkinButton(BidsList.RefreshFrame.RefreshButton)
AS:SkinEditBox(_G.AuctionHouseFrameAuctionsFrameGold)
AS:SkinEditBox(_G.AuctionHouseFrameAuctionsFrameSilver)
AS:SkinButton(AuctionsFrame.BidFrame.BidButton)
AS:UnregisterSkinEvent(addon, event)
end
function AS:Blizzard_BlackMarketUI(event, addon)
if addon ~= "Blizzard_BlackMarketUI" then return end
AS:SkinFrame(_G.BlackMarketFrame)
AS:SkinCloseButton(_G.BlackMarketFrame.CloseButton)
AS:SkinBackdropFrame(_G.BlackMarketScrollFrame)
_G.BlackMarketScrollFrame.Backdrop:SetPoint('TOPLEFT', -3, 0)
_G.BlackMarketScrollFrame.Backdrop:SetPoint('BOTTOMRIGHT', -2, 2)
AS:SkinScrollBar(_G.BlackMarketScrollFrameScrollBar)
AS:SkinFrame(_G.BlackMarketFrame.MoneyFrameBorder)
_G.BlackMarketFrame.MoneyFrameBorder:SetPoint('BOTTOMLEFT', _G.BlackMarketFrame, 'BOTTOMLEFT', 29, 12)
_G.BlackMarketMoneyFrame:SetPoint("BOTTOMRIGHT", _G.BlackMarketFrame.MoneyFrameBorder, "BOTTOMRIGHT", 8, 4)
AS:SkinEditBox(_G.BlackMarketBidPriceGold)
_G.BlackMarketBidPriceGold.Backdrop:SetAllPoints()
_G.BlackMarketBidPriceGold:SetHeight(16)
_G.BlackMarketBidPriceGold:SetPoint("BOTTOMRIGHT", _G.BlackMarketFrame.BidButton, "BOTTOMLEFT", -1, 0)
AS:SkinButton(_G.BlackMarketFrame.BidButton)
_G.BlackMarketFrame.BidButton:SetHeight(20)
_G.BlackMarketFrame.BidButton:SetPoint("BOTTOMRIGHT", -285, 12)
for i = 1, _G.BlackMarketFrame:GetNumRegions() do
local region = select(i, _G.BlackMarketFrame:GetRegions())
if region and region:IsObjectType("FontString") and region:GetText() == _G.BLACK_MARKET_TITLE then
region:ClearAllPoints()
region:SetPoint("TOP", _G.BlackMarketFrame, "TOP", 0, -4)
end
end
AS:StripTextures(_G.BlackMarketFrame.HotDeal)
AS:SetTemplate(_G.BlackMarketFrame.HotDeal.Item)
AS:StyleButton(_G.BlackMarketFrame.HotDeal.Item)
AS:SkinTexture(_G.BlackMarketFrame.HotDeal.Item.IconTexture)
AS:SetInside(_G.BlackMarketFrame.HotDeal.Item.IconTexture)
_G.BlackMarketFrame.HotDeal.Item.IconBorder:SetAlpha(0)
hooksecurefunc(_G.BlackMarketFrame.HotDeal.Item.IconBorder, 'SetVertexColor', function(self, r, g, b) _G.BlackMarketFrame.HotDeal.Item:SetBackdropBorderColor(r, g, b) end)
hooksecurefunc(_G.BlackMarketFrame.HotDeal.Item.IconBorder, 'Hide', function() _G.BlackMarketFrame.HotDeal.Item:SetBackdropBorderColor(unpack(AS.BorderColor)) end)
for _, Tab in pairs({ 'ColumnName', 'ColumnLevel', 'ColumnType', 'ColumnDuration', 'ColumnHighBidder', 'ColumnCurrentBid' }) do
AS:SkinButton(_G.BlackMarketFrame[Tab])
end
hooksecurefunc("BlackMarketScrollFrame_Update", function()
for _, Button in pairs(_G.BlackMarketScrollFrame.buttons) do
if not Button.skinned then
AS:StripTextures(Button)
AS:StyleButton(Button)
Button:GetHighlightTexture():SetAllPoints(Button.Selection)
Button:GetPushedTexture():SetAllPoints(Button.Selection)
Button.Selection:SetColorTexture(1, 1, 1, .3)
AS:SkinFrame(Button.Item)
AS:StyleButton(Button.Item)
AS:SkinTexture(Button.Item.IconTexture)
AS:SetInside(Button.Item.IconTexture)
Button.Item.IconBorder:SetAlpha(0)
hooksecurefunc(Button.Item.IconBorder, 'SetVertexColor', function(self, r, g, b) Button.Item:SetBackdropBorderColor(r, g, b) end)
hooksecurefunc(Button.Item.IconBorder, 'Hide', function() Button.Item:SetBackdropBorderColor(unpack(AS.BorderColor)) end)
Button.skinned = true
end
end
end)
AS:UnregisterSkinEvent(addon, event)
end
AS:RegisterSkin('Blizzard_AuctionHouseUI', AS.Blizzard_AuctionHouseUI, 'ADDON_LOADED')
AS:RegisterSkin('Blizzard_BlackMarketUI', AS.Blizzard_BlackMarketUI, 'ADDON_LOADED')