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)