402 lines
11 KiB
Lua
402 lines
11 KiB
Lua
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local S = E:GetModule('Skins')
|
|
|
|
local _G = _G
|
|
local pairs, ipairs, select = pairs, ipairs, select
|
|
local hooksecurefunc = hooksecurefunc
|
|
|
|
--[[
|
|
TO DO:
|
|
* Skin Multisell .ProgressBar
|
|
]]
|
|
|
|
-- Credits: siweia (AuroraClassic)
|
|
|
|
local function SkinEditBoxes(Frame)
|
|
S:HandleEditBox(Frame.MinLevel)
|
|
S:HandleEditBox(Frame.MaxLevel)
|
|
end
|
|
|
|
local function SkinFilterButton(Button)
|
|
SkinEditBoxes(Button.LevelRangeFrame)
|
|
|
|
S:HandleCloseButton(Button.ClearFiltersButton)
|
|
S:HandleButton(Button)
|
|
end
|
|
|
|
local function HandleSearchBarFrame(Frame)
|
|
SkinFilterButton(Frame.FilterButton)
|
|
|
|
S:HandleButton(Frame.SearchButton)
|
|
S:HandleEditBox(Frame.SearchBox)
|
|
S:HandleButton(Frame.FavoritesSearchButton)
|
|
Frame.FavoritesSearchButton:Size(22)
|
|
end
|
|
|
|
local function HandleListIcon(frame)
|
|
if not frame.tableBuilder then return end
|
|
|
|
for i = 1, 22 do
|
|
local row = frame.tableBuilder.rows[i]
|
|
if row then
|
|
for j = 1, 4 do
|
|
local cell = row.cells and row.cells[j]
|
|
if cell and cell.Icon then
|
|
if not cell.IsSkinned then
|
|
S:HandleIcon(cell.Icon)
|
|
|
|
if cell.IconBorder then
|
|
cell.IconBorder:Kill()
|
|
end
|
|
|
|
cell.IsSkinned = true
|
|
end
|
|
end
|
|
end
|
|
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
|
|
S:HandleIcon(child.Icon)
|
|
|
|
if child.IconBorder then
|
|
child.IconBorder:Kill()
|
|
end
|
|
|
|
child.IsSkinned = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local function SkinItemDisplay(frame)
|
|
local ItemDisplay = frame.ItemDisplay
|
|
ItemDisplay:StripTextures()
|
|
ItemDisplay:CreateBackdrop('Transparent')
|
|
ItemDisplay.backdrop:Point('TOPLEFT', 3, -3)
|
|
ItemDisplay.backdrop:Point('BOTTOMRIGHT', -3, 0)
|
|
|
|
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:Size(44)
|
|
ItemButton.IconBorder:SetTexCoord(.08, .92, .08, .92)
|
|
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
|
|
header:CreateBackdrop('Transparent')
|
|
end
|
|
|
|
header.IsSkinned = true
|
|
end
|
|
|
|
if header.backdrop then
|
|
header.backdrop:Point('BOTTOMRIGHT', i < maxHeaders and -5 or 0, -2)
|
|
end
|
|
end
|
|
|
|
HandleListIcon(frame)
|
|
end
|
|
|
|
local function HandleAuctionButtons(button)
|
|
S:HandleButton(button)
|
|
button:Size(22)
|
|
end
|
|
|
|
local function HandleSellFrame(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:Kill() end
|
|
|
|
ItemButton.EmptyBackground:Hide()
|
|
ItemButton:SetPushedTexture('')
|
|
ItemButton.Highlight:SetColorTexture(1, 1, 1, .25)
|
|
ItemButton.Highlight:SetAllPoints(ItemButton.Icon)
|
|
|
|
S:HandleIcon(ItemButton.Icon, true)
|
|
S:HandleEditBox(frame.QuantityInput.InputBox)
|
|
S:HandleButton(frame.QuantityInput.MaxButton)
|
|
S:HandleEditBox(frame.PriceInput.MoneyInputFrame.GoldBox)
|
|
S:HandleEditBox(frame.PriceInput.MoneyInputFrame.SilverBox)
|
|
|
|
if frame.SecondaryPriceInput then
|
|
S:HandleEditBox(frame.SecondaryPriceInput.MoneyInputFrame.GoldBox)
|
|
S:HandleEditBox(frame.SecondaryPriceInput.MoneyInputFrame.SilverBox)
|
|
end
|
|
|
|
S:HandleDropDownBox(frame.DurationDropDown.DropDown)
|
|
S:HandleButton(frame.PostButton)
|
|
|
|
if frame.BuyoutModeCheckButton then
|
|
S:HandleCheckBox(frame.BuyoutModeCheckButton)
|
|
frame.BuyoutModeCheckButton:Size(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:Kill() end
|
|
|
|
ItemButton.EmptyBackground:Hide()
|
|
ItemButton:SetPushedTexture('')
|
|
ItemButton.Highlight:SetColorTexture(1, 1, 1, .25)
|
|
ItemButton.Highlight:SetAllPoints(ItemButton.Icon)
|
|
|
|
S:HandleIcon(ItemButton.Icon, true)
|
|
|
|
S:HandleButton(frame.PostButton)
|
|
HandleAuctionButtons(frame.DummyRefreshButton)
|
|
|
|
frame.DummyItemList:StripTextures()
|
|
frame.DummyItemList:CreateBackdrop('Transparent')
|
|
HandleAuctionButtons(frame.DummyRefreshButton)
|
|
S:HandleScrollBar(frame.DummyItemList.DummyScrollBar)
|
|
end
|
|
|
|
local function HandleSellList(frame, hasHeader)
|
|
frame:StripTextures()
|
|
|
|
if frame.RefreshFrame then
|
|
HandleAuctionButtons(frame.RefreshFrame.RefreshButton)
|
|
end
|
|
|
|
S:HandleScrollBar(frame.ScrollFrame.scrollBar)
|
|
|
|
if hasHeader then
|
|
frame.ScrollFrame:CreateBackdrop('Transparent')
|
|
hooksecurefunc(frame, 'RefreshScrollFrame', HandleHeaders)
|
|
else
|
|
hooksecurefunc(frame, 'RefreshListDisplay', HandleSummaryIcons)
|
|
end
|
|
end
|
|
|
|
local function LoadSkin()
|
|
if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.auctionhouse ~= true then return end
|
|
|
|
--[[ Main Frame | TAB 1]]--
|
|
local Frame = _G.AuctionHouseFrame
|
|
S:HandlePortraitFrame(Frame)
|
|
|
|
local Tabs = {
|
|
_G.AuctionHouseFrameBuyTab,
|
|
_G.AuctionHouseFrameSellTab,
|
|
_G.AuctionHouseFrameAuctionsTab,
|
|
}
|
|
|
|
for _, tab in pairs(Tabs) do
|
|
if tab then
|
|
S:HandleTab(tab)
|
|
end
|
|
end
|
|
|
|
_G.AuctionHouseFrameBuyTab:ClearAllPoints()
|
|
_G.AuctionHouseFrameBuyTab:SetPoint('BOTTOMLEFT', Frame, 'BOTTOMLEFT', 0, -30)
|
|
|
|
-- SearchBar Frame
|
|
HandleSearchBarFrame(Frame.SearchBar)
|
|
|
|
Frame.MoneyFrameBorder:StripTextures()
|
|
Frame.MoneyFrameInset:StripTextures()
|
|
|
|
--[[ Categorie List ]]--
|
|
local Categories = Frame.CategoriesList
|
|
Categories.ScrollFrame:StripTextures()
|
|
Categories.Background:Hide()
|
|
Categories.NineSlice:Hide()
|
|
|
|
S:HandleScrollBar(_G.AuctionHouseFrameScrollBar)
|
|
|
|
for i = 1, _G.NUM_FILTERS_TO_DISPLAY do
|
|
local button = Categories.FilterButtons[i]
|
|
|
|
button:StripTextures(true)
|
|
button:StyleButton()
|
|
|
|
button.SelectedTexture:SetInside(button)
|
|
end
|
|
|
|
hooksecurefunc('AuctionFrameFilters_UpdateCategories', function(categoriesList, _)
|
|
for _, button in ipairs(categoriesList.FilterButtons) do
|
|
button.SelectedTexture:SetAtlas(nil)
|
|
button.SelectedTexture:SetColorTexture(0.7, 0.7, 0.7, 0.4)
|
|
end
|
|
end)
|
|
|
|
--[[ Browse Frame ]]--
|
|
local Browse = Frame.BrowseResultsFrame
|
|
|
|
local ItemList = Browse.ItemList
|
|
ItemList:StripTextures()
|
|
hooksecurefunc(ItemList, 'RefreshScrollFrame', HandleHeaders)
|
|
|
|
S:HandleScrollBar(ItemList.ScrollFrame.scrollBar)
|
|
|
|
--[[ BuyOut Frame]]
|
|
local CommoditiesBuyFrame = Frame.CommoditiesBuyFrame
|
|
CommoditiesBuyFrame.BuyDisplay:StripTextures()
|
|
S:HandleButton(CommoditiesBuyFrame.BackButton)
|
|
|
|
local ItemList = Frame.CommoditiesBuyFrame.ItemList
|
|
ItemList:StripTextures()
|
|
ItemList:CreateBackdrop('Transparent')
|
|
S:HandleButton(ItemList.RefreshFrame.RefreshButton)
|
|
S:HandleScrollBar(ItemList.ScrollFrame.scrollBar)
|
|
|
|
local BuyDisplay = Frame.CommoditiesBuyFrame.BuyDisplay
|
|
S:HandleEditBox(BuyDisplay.QuantityInput.InputBox)
|
|
S:HandleButton(BuyDisplay.BuyButton)
|
|
|
|
SkinItemDisplay(BuyDisplay)
|
|
|
|
--[[ ItemBuyOut Frame]]
|
|
local ItemBuyFrame = Frame.ItemBuyFrame
|
|
S:HandleButton(ItemBuyFrame.BackButton)
|
|
S:HandleButton(ItemBuyFrame.BuyoutFrame.BuyoutButton)
|
|
|
|
SkinItemDisplay(ItemBuyFrame)
|
|
|
|
local ItemList = ItemBuyFrame.ItemList
|
|
ItemList:StripTextures()
|
|
ItemList:CreateBackdrop('Transparent')
|
|
S:HandleScrollBar(ItemList.ScrollFrame.scrollBar)
|
|
S:HandleButton(ItemList.RefreshFrame.RefreshButton)
|
|
hooksecurefunc(ItemList, 'RefreshScrollFrame', HandleHeaders)
|
|
|
|
local EditBoxes = {
|
|
_G.AuctionHouseFrameGold,
|
|
_G.AuctionHouseFrameSilver,
|
|
}
|
|
|
|
for _, EditBox in pairs(EditBoxes) do
|
|
S:HandleEditBox(EditBox)
|
|
--EditBox:SetTextInsets(1, 1, -1, 1)
|
|
end
|
|
|
|
S:HandleButton(ItemBuyFrame.BidFrame.BidButton)
|
|
ItemBuyFrame.BidFrame.BidButton:ClearAllPoints()
|
|
ItemBuyFrame.BidFrame.BidButton:Point('LEFT', ItemBuyFrame.BidFrame.BidAmount, 'RIGHT', 2, -2)
|
|
S:HandleButton(ItemBuyFrame.BidFrame.BidButton)
|
|
|
|
--[[ Item Sell Frame | TAB 2 ]]--
|
|
local SellFrame = Frame.ItemSellFrame
|
|
HandleSellFrame(SellFrame)
|
|
|
|
local ItemList = Frame.ItemSellList
|
|
HandleSellList(ItemList, true)
|
|
|
|
local CommoditiesSellFrame = Frame.CommoditiesSellFrame
|
|
HandleSellFrame(CommoditiesSellFrame)
|
|
|
|
local ItemList = Frame.CommoditiesSellList
|
|
HandleSellList(ItemList, true)
|
|
|
|
local TokenSellFrame = Frame.WoWTokenSellFrame
|
|
HandleTokenSellFrame(TokenSellFrame)
|
|
|
|
--[[ Auctions Frame | TAB 3 ]]--
|
|
local AuctionsFrame = _G.AuctionHouseFrameAuctionsFrame
|
|
AuctionsFrame:StripTextures()
|
|
|
|
SkinItemDisplay(AuctionsFrame)
|
|
|
|
local CommoditiesList = AuctionsFrame.CommoditiesList
|
|
HandleSellList(CommoditiesList, true)
|
|
S:HandleButton(CommoditiesList.RefreshFrame.RefreshButton)
|
|
|
|
local ItemList = AuctionsFrame.ItemList
|
|
HandleSellList(ItemList, true)
|
|
S:HandleButton(ItemList.RefreshFrame.RefreshButton)
|
|
|
|
local Tabs = {
|
|
_G.AuctionHouseFrameAuctionsFrameAuctionsTab,
|
|
_G.AuctionHouseFrameAuctionsFrameBidsTab,
|
|
}
|
|
|
|
for _, tab in pairs(Tabs) do
|
|
if tab then
|
|
S:HandleTab(tab)
|
|
end
|
|
end
|
|
|
|
local SummaryList = AuctionsFrame.SummaryList
|
|
HandleSellList(SummaryList)
|
|
S:HandleButton(AuctionsFrame.CancelAuctionButton)
|
|
|
|
local AllAuctionsList = AuctionsFrame.AllAuctionsList
|
|
HandleSellList(AllAuctionsList, true)
|
|
S:HandleButton(AllAuctionsList.RefreshFrame.RefreshButton)
|
|
|
|
local BidsList = AuctionsFrame.BidsList
|
|
HandleSellList(BidsList, true)
|
|
S:HandleButton(BidsList.RefreshFrame.RefreshButton)
|
|
S:HandleEditBox(_G.AuctionHouseFrameAuctionsFrameGold)
|
|
S:HandleEditBox(_G.AuctionHouseFrameAuctionsFrameSilver)
|
|
S:HandleButton(AuctionsFrame.BidFrame.BidButton)
|
|
|
|
--[[ ProgressBars ]]--
|
|
|
|
--[[ WoW Token Category ]]--
|
|
local TokenFrame = Frame.WoWTokenResults
|
|
TokenFrame:StripTextures()
|
|
S:HandleButton(TokenFrame.Buyout)
|
|
S:HandleScrollBar(TokenFrame.DummyScrollBar) --MONITOR THIS
|
|
|
|
local Token = TokenFrame.TokenDisplay
|
|
Token:StripTextures()
|
|
Token:CreateBackdrop('Transparent')
|
|
|
|
local ItemButton = Token.ItemButton
|
|
S:HandleIcon(ItemButton.Icon, true)
|
|
ItemButton.Icon.backdrop:SetBackdropBorderColor(0, .8, 1)
|
|
ItemButton.IconBorder:Kill()
|
|
|
|
--WoW Token Tutorial Frame
|
|
local WowTokenGameTimeTutorial = Frame.WoWTokenResults.GameTimeTutorial
|
|
WowTokenGameTimeTutorial.NineSlice:Hide()
|
|
WowTokenGameTimeTutorial.TitleBg:SetAlpha(0)
|
|
WowTokenGameTimeTutorial:CreateBackdrop('Transparent')
|
|
S:HandleCloseButton(WowTokenGameTimeTutorial.CloseButton)
|
|
S:HandleButton(WowTokenGameTimeTutorial.RightDisplay.StoreButton)
|
|
WowTokenGameTimeTutorial.RightDisplay.StoreButton.backdrop:SetFrameLevel(WowTokenGameTimeTutorial.RightDisplay.StoreButton:GetFrameLevel())
|
|
WowTokenGameTimeTutorial.Bg:SetAlpha(0)
|
|
WowTokenGameTimeTutorial.LeftDisplay.Label:SetTextColor(1, 1, 1)
|
|
WowTokenGameTimeTutorial.LeftDisplay.Tutorial1:SetTextColor(1, 0, 0)
|
|
WowTokenGameTimeTutorial.RightDisplay.Label:SetTextColor(1, 1, 1)
|
|
WowTokenGameTimeTutorial.RightDisplay.Tutorial1:SetTextColor(1, 0, 0)
|
|
|
|
--[[ Dialogs ]]--
|
|
Frame.BuyDialog:StripTextures()
|
|
Frame.BuyDialog:CreateBackdrop('Transparent')
|
|
S:HandleButton(Frame.BuyDialog.BuyNowButton)
|
|
S:HandleButton(Frame.BuyDialog.CancelButton)
|
|
end
|
|
|
|
S:AddCallbackForAddon('Blizzard_AuctionHouseUI', 'AuctionHouse', LoadSkin)
|