Files
coa-elvui/ElvUI_AddOnSkins/Skins/Addons/advancedTradeSkillWindow.lua
T

368 lines
11 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("AdvancedTradeSkillWindow") then return end
local _G = _G
local ipairs = ipairs
local unpack = unpack
local GetTradeSkillListLink = GetTradeSkillListLink
local hooksecurefunc = hooksecurefunc
-- AdvancedTradeSkillWindow 0.7.8
-- https://www.curseforge.com/wow/addons/advanced-trade-skill-window/files/400569
S:AddCallbackForAddon("AdvancedTradeSkillWindow", "AdvancedTradeSkillWindow", function()
if not E.private.addOnSkins.AdvancedTradeSkillWindow then return end
local scrollBars = {
-- Main Frame
"ATSWListScrollFrameScrollBar",
"ATSWQueueScrollFrameScrollBar",
-- Sorting Editor
"ATSWCSUListScrollFrameScrollBar",
"ATSWCSSListScrollFrameScrollBar",
-- ShoppingList Frame
"ATSWSLScrollFrameScrollBar",
}
local buttons = {
-- Scan
"ATSWScanDelayFrameSkipButton",
"ATSWScanDelayFrameAbortButton",
-- Main Frame
"ATSWCSButton",
"ATSWOptionsButton",
"ATSWQueueAllButton",
"ATSWCreateAllButton",
"ATSWCreateButton",
"ATSWQueueButton",
"ATSWQueueStartStopButton",
"ATSWQueueDeleteButton",
"ATSWReagentsButton",
-- Sorting Editor
"ATSWAddCategoryButton",
-- Reagent Frame
"ATSWBuyReagentsButton",
-- Options
"ATSWOptionsFrameOKButton",
-- Merchant Frame
"ATSWAutoBuyButton",
}
local checkBoxes = {
-- Main Frame
"ATSWHeaderSortButton",
"ATSWNameSortButton",
"ATSWDifficultySortButton",
"ATSWCustomSortButton",
"ATSWOnlyCreatableButton",
-- Options
"ATSWOFUnifiedCounterButton",
"ATSWOFSeparateCounterButton",
"ATSWOFIncludeBankButton",
"ATSWOFIncludeAltsButton",
"ATSWOFIncludeMerchantsButton",
"ATSWOFAutoBuyButton",
"ATSWOFTooltipButton",
"ATSWOFShoppingListButton",
"ATSWOFReagentListButton",
"ATSWOFNewRecipeLinkButton",
}
local editBoxes = {
-- Main Frame
"ATSWFilterBox",
"ATSWInputBox",
-- Sorting Editor
"ATSWCSNewCategoryBox",
}
local dropDownBoxes = {
-- Main Frame
"ATSWSubClassDropDown",
"ATSWInvSlotDropDown",
}
local closeButtons = {
-- Main Frame
"ATSWFrameCloseButton",
-- Reagent Frame
"ATSWReagentFrameCloseButton",
-- Sorting Editor
"ATSWCSFrameCloseButton",
}
local statusBars = {
-- Scan
"ATSWScanDelayFrameBar",
-- Main Frame
"ATSWRankFrame",
}
for _, scrollBar in ipairs(scrollBars) do
scrollBar = _G[scrollBar]
scrollBar:GetParent():StripTextures()
S:HandleScrollBar(scrollBar)
end
for _, button in ipairs(buttons) do
S:HandleButton(_G[button])
end
for _, checkBox in ipairs(checkBoxes) do
S:HandleCheckBox(_G[checkBox])
end
for _, editBox in ipairs(editBoxes) do
S:HandleEditBox(_G[editBox])
end
for _, dropDownBox in ipairs(dropDownBoxes) do
S:HandleDropDownBox(_G[dropDownBox])
end
for _, closeButton in ipairs(closeButtons) do
closeButton = _G[closeButton]
S:HandleCloseButton(closeButton, closeButton:GetParent().backdrop)
end
for _, statusBar in ipairs(statusBars) do
statusBar = _G[statusBar]
statusBar:StripTextures()
statusBar:CreateBackdrop()
statusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(statusBar)
end
E:GetModule("Tooltip"):SecureHookScript(ATSWTradeskillTooltip, "OnShow", "SetStyle")
-- ScanDelay Frame
ATSWScanDelayFrame:Size(400, 151) -- fix pixelperfect
ATSWScanDelayFrame:StripTextures()
ATSWScanDelayFrame:SetTemplate("Transparent")
-- Options Frame
ATSWOptionsFrame:SetParent(UIParent)
ATSWOptionsFrame:StripTextures()
ATSWOptionsFrame:SetTemplate("Transparent")
-- Main Frame
ATSWFrame:StripTextures()
ATSWFrame:CreateBackdrop("Transparent")
ATSWFrame.backdrop:Point("TOPLEFT", 11, -12)
ATSWFrame.backdrop:Point("BOTTOMRIGHT", -32, 10)
ATSWFrame:SetClampedToScreen(true)
S:SetBackdropHitRect(ATSWFrame, nil, true)
ATSWFramePortrait:Hide()
S:HandleNextPrevButton(ATSWDecrementButton)
S:HandleNextPrevButton(ATSWIncrementButton)
ATSWExpandButtonFrame:StripTextures()
ATSWRankFrameBorder:StripTextures()
ATSWRankFrameBorder:Hide()
for i = 0, ATSW_TRADE_SKILLS_DISPLAYED or 23 do
if i == 0 then
S:HandleCollapseExpandButton(ATSWCollapseAllButton)
local onClick = function(self)
if self.collapsed then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
self:GetPushedTexture():SetTexture(E.Media.Textures.Minus)
self:GetDisabledTexture():SetTexture(E.Media.Textures.Minus)
else
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
self:GetPushedTexture():SetTexture(E.Media.Textures.Plus)
self:GetDisabledTexture():SetTexture(E.Media.Textures.Plus)
end
end
onClick(ATSWCollapseAllButton)
ATSWCollapseAllButton:HookScript("OnClick", onClick)
else
local button = _G["ATSWSkill"..i]
if button then
S:HandleCollapseExpandButton(button)
end
end
end
local function SkinIcon(reagent, icon, count)
reagent:StripTextures()
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetDrawLayer("OVERLAY")
icon.backdrop = CreateFrame("Frame", nil, reagent)
icon.backdrop:SetFrameLevel(reagent:GetFrameLevel() - 1)
icon.backdrop:SetTemplate("Default")
icon.backdrop:SetOutside(icon)
icon:SetParent(icon.backdrop)
count:SetParent(icon.backdrop)
count:SetDrawLayer("OVERLAY")
end
for i = 1, ATSW_MAX_TRADE_SKILL_REAGENTS do
local reagent = _G["ATSWReagent" .. i]
local icon = _G["ATSWReagent" .. i .. "IconTexture"]
local count = _G["ATSWReagent" .. i .. "Count"]
SkinIcon(reagent, icon, count)
end
hooksecurefunc(ATSWSkillIcon, "SetNormalTexture", function(self)
if self.skinned then
self:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
else
local reagent = _G["ATSWSkillIcon"]
local icon = _G["ATSWSkillIcon"]:GetNormalTexture()
local count = _G["ATSWSkillIconCount"]
SkinIcon(reagent, icon, count)
self.skinned = true
end
end)
for i = 1, 4 do
local button = _G["ATSWQueueItem"..i.."DeleteButton"]
S:HandleButton(button)
button:Size(20, 21)
end
ATSWHeaderSortButton:Point("TOPLEFT", 29, -30)
ATSWNameSortButton:Point("TOPLEFT", 29, -45)
ATSWDifficultySortButton:Point("TOPLEFT", 189, -30)
ATSWCustomSortButton:Point("TOPLEFT", 189, -45)
ATSWOnlyCreatableButton:Point("TOPLEFT", 349, -37)
ATSWCSButton:Point("CENTER", ATSWFrame, "TOPLEFT", 594, -44)
ATSWOptionsButton:Height(20)
ATSWOptionsButton:Point("CENTER", ATSWFrame, "TOPLEFT", 683, -44)
ATSWRankFrame:Point("TOPLEFT", 459, -62)
ATSWInvSlotDropDown:Point("TOPRIGHT", -421, -65)
ATSWSubClassDropDown:Point("RIGHT", ATSWInvSlotDropDown, "LEFT", 20, 0)
ATSWFilterBox:Width(212)
ATSWExpandButtonFrame:Point("TOPLEFT", 14, -95)
ATSWListScrollFrame:SetTemplate("Transparent")
ATSWListScrollFrame:Size(299, 374)
ATSWListScrollFrame:Point("TOPLEFT", 19, -120)
ATSWListScrollFrame.Hide = E.noop
ATSWListScrollFrameScrollBar:Point("TOPLEFT", ATSWListScrollFrame, "TOPRIGHT", 3, -19)
ATSWListScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWListScrollFrame, "BOTTOMRIGHT", 3, 19)
ATSWSkill1:Point("TOPLEFT", 22, -123)
ATSWCreateButton:Point("CENTER", ATSWFrame, "TOPLEFT", 625, -349)
ATSWQueueButton:Point("LEFT", ATSWCreateButton, "RIGHT", 3, 0)
ATSWCreateAllButton:Point("RIGHT", ATSWCreateButton, "LEFT", -84, 0)
ATSWQueueAllButton:Point("RIGHT", ATSWCreateAllButton, "LEFT", -3, 0)
ATSWDecrementButton:Point("LEFT", ATSWCreateAllButton, "RIGHT", 5, 0)
ATSWInputBox:Point("LEFT", ATSWDecrementButton, "RIGHT", 4, 0)
ATSWIncrementButton:Point("RIGHT", ATSWCreateButton, "LEFT", -5, 0)
ATSWQueueItem1:Point("TOPLEFT", 355, -373)
ATSWQueueScrollFrameScrollBar:Point("TOPLEFT", ATSWQueueScrollFrame, "TOPRIGHT", 8, -16)
ATSWQueueScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWQueueScrollFrame, "BOTTOMRIGHT", 8, 16)
ATSWReagentsButton:Point("CENTER", ATSWFrame, "TOPLEFT", 683, -483)
ATSWQueueStartStopButton:Point("CENTER", ATSWFrame, "TOPLEFT", 421, -483)
ATSWQueueDeleteButton:ClearAllPoints()
ATSWQueueDeleteButton:Point("LEFT", ATSWQueueStartStopButton, "RIGHT", 3, 0)
ATSWQueueDeleteButton:Point("RIGHT", ATSWReagentsButton, "LEFT", -3, 0)
-- Reagent Frame
ATSWReagentFrame:StripTextures()
ATSWReagentFrame:CreateBackdrop("Transparent")
ATSWReagentFrame.backdrop:Point("TOPLEFT", 12, -14)
ATSWReagentFrame.backdrop:Point("BOTTOMRIGHT", -34, 74)
S:SetBackdropHitRect(ATSWReagentFrame, nil, true)
-- SortingEditor Frame
ATSWCSFrame:StripTextures()
ATSWCSFrame:CreateBackdrop("Transparent")
ATSWCSFrame.backdrop:Point("TOPLEFT", 11, -12)
ATSWCSFrame.backdrop:Point("BOTTOMRIGHT", -32, 10)
ATSWCSFrame:SetClampedToScreen(true)
S:SetBackdropHitRect(ATSWCSFrame, nil, true)
ATSWCSUListScrollFrame:SetTemplate("Transparent")
ATSWCSUListScrollFrame:Size(342, 383) -- 311, 383
ATSWCSUListScrollFrame:Point("TOPLEFT", 19, -111)
ATSWCSSkill1:Point("TOPLEFT", 28, -120)
ATSWCSUListScrollFrameScrollBar:Point("TOPLEFT", ATSWCSUListScrollFrame, "TOPRIGHT", 3, -19)
ATSWCSUListScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWCSUListScrollFrame, "BOTTOMRIGHT", 3, 19)
ATSWCSSListScrollFrame:SetTemplate("Transparent")
ATSWCSSListScrollFrame:Size(322, 354)
ATSWCSSListScrollFrame:Point("TOPLEFT", 385, -111)
ATSWCSCSkill1:Point("TOPLEFT", 394, -120)
ATSWCSSListScrollFrameScrollBar:Point("TOPLEFT", ATSWCSSListScrollFrame, "TOPRIGHT", 3, -19)
ATSWCSSListScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWCSSListScrollFrame, "BOTTOMRIGHT", 3, 19)
for i = 1, 17 do
local buttonDelete = _G["ATSWCSCSkill" .. i .. "Delete"]
local buttonUp = _G["ATSWCSCSkill" .. i .. "MoveUp"]
local buttonDown = _G["ATSWCSCSkill" .. i .. "MoveDown"]
local skillButton = _G["ATSWCSCSkill" .. i .. "SkillButton"]
buttonDelete:Size(17)
buttonUp:Size(24)
buttonDown:Size(24)
S:HandleButton(buttonDelete)
S:HandleNextPrevButton(buttonUp, "up")
S:HandleNextPrevButton(buttonDown, "down")
S:HandleCollapseExpandButton(skillButton)
end
ATSWCSNewCategoryBox:Point("TOPLEFT", 424, -473)
ATSWAddCategoryButton:Point("LEFT", ATSWCSNewCategoryBox, "RIGHT", 4, 0)
-- ShoppingList
ATSWShoppingListFrame:StripTextures()
ATSWShoppingListFrame:CreateBackdrop("Transparent")
ATSWShoppingListFrame.backdrop:Point("TOPLEFT", 12, 0)
ATSWShoppingListFrame.backdrop:Point("BOTTOMRIGHT", -35, 59)
S:SetBackdropHitRect(ATSWShoppingListFrame)
S:HandleCloseButton(ATSWSLCloseButton)
ATSWSLCloseButton:Point("BOTTOMRIGHT", -39, 177)
ATSWSLCloseButton:SetHitRectInsets(1, 0, 1, 0)
ATSWSLCloseButton:SetText(nil)
ATSWSLScrollFrameScrollBar:Point("TOPLEFT", ATSWSLScrollFrame, "TOPRIGHT", 5, -18)
ATSWSLScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWSLScrollFrame, "BOTTOMRIGHT", 5, 22)
ATSWShoppingListFrame.SetPoint = function(self)
ATSWSLCloseButton.SetPoint(ATSWShoppingListFrame, "TOPLEFT", AuctionFrame, "TOPLEFT", 355, -446)
end
-- ChatLink fix
ATSWTradeSkillLinkButton:SetScript("OnClick", function()
local ChatFrameEditBox = ChatEdit_ChooseBoxForSend()
if not ChatFrameEditBox:IsShown() then
ChatEdit_ActivateChat(ChatFrameEditBox)
end
ChatFrameEditBox:Insert(GetTradeSkillListLink())
end)
end)