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.

163 lines
5.5 KiB

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local _G = _G
local unpack, select = unpack, select
local hooksecurefunc = hooksecurefunc
local GetTradeSkillNumReagents = GetTradeSkillNumReagents
local GetTradeSkillInfo = GetTradeSkillInfo
local GetTradeSkillItemLink = GetTradeSkillItemLink
local GetTradeSkillReagentInfo = GetTradeSkillReagentInfo
local GetTradeSkillReagentItemLink = GetTradeSkillReagentItemLink
local GetItemQualityByID = C_Item.GetItemQualityByID
function S:Blizzard_TradeSkillUI()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tradeskill) then return end
local TradeSkillFrame = _G.TradeSkillFrame
S:HandleFrame(TradeSkillFrame, true, nil, 11, -12, -32, 76)
_G.TradeSkillRankFrameBorder:StripTextures()
local TradeSkillRankFrame = _G.TradeSkillRankFrame
TradeSkillRankFrame:Size(322, 16)
TradeSkillRankFrame:ClearAllPoints()
TradeSkillRankFrame:Point('TOP', -10, -45)
TradeSkillRankFrame:CreateBackdrop()
TradeSkillRankFrame:SetStatusBarTexture(E.media.normTex)
TradeSkillRankFrame:SetStatusBarColor(0.13, 0.35, 0.80)
E:RegisterStatusBar(TradeSkillRankFrame)
_G.TradeSkillExpandButtonFrame:StripTextures()
local TradeSkillCollapseAllButton = _G.TradeSkillCollapseAllButton
TradeSkillCollapseAllButton:GetNormalTexture():SetPoint('LEFT', 3, 2)
TradeSkillCollapseAllButton:GetNormalTexture():Size(15)
TradeSkillCollapseAllButton:SetHighlightTexture(E.ClearTexture)
TradeSkillCollapseAllButton.SetHighlightTexture = E.noop
TradeSkillCollapseAllButton:SetDisabledTexture(E.Media.Textures.MinusButton)
TradeSkillCollapseAllButton.SetDisabledTexture = E.noop
TradeSkillCollapseAllButton:GetDisabledTexture():SetPoint('LEFT', 3, 2)
TradeSkillCollapseAllButton:GetDisabledTexture():Size(15)
TradeSkillCollapseAllButton:GetDisabledTexture():SetDesaturated(true)
S:HandleDropDownBox(_G.TradeSkillInvSlotDropdown, 110)
_G.TradeSkillInvSlotDropdown:ClearAllPoints()
_G.TradeSkillInvSlotDropdown:Point('TOPRIGHT', TradeSkillFrame, 'TOPRIGHT', -32, -68)
S:HandleDropDownBox(_G.TradeSkillSubClassDropdown, 110)
_G.TradeSkillSubClassDropdown:ClearAllPoints()
_G.TradeSkillSubClassDropdown:Point('RIGHT', _G.TradeSkillInvSlotDropdown, 'RIGHT', -120, 0)
_G.TradeSkillFrameTitleText:ClearAllPoints()
_G.TradeSkillFrameTitleText:Point('TOP', TradeSkillFrame, 'TOP', 0, -18)
for i = 1, _G.TRADE_SKILLS_DISPLAYED do
local button = _G['TradeSkillSkill'..i]
S:HandleCollapseTexture(button, nil, true)
local normal = button:GetNormalTexture()
if normal then
normal:Size(14)
normal:SetPoint('LEFT', 2, 1)
end
local highlight = _G['TradeSkillSkill'..i..'Highlight']
if highlight then
highlight:SetTexture(E.ClearTexture)
highlight.SetTexture = E.noop
end
end
_G.TradeSkillDetailScrollFrame:StripTextures()
_G.TradeSkillListScrollFrame:StripTextures()
_G.TradeSkillDetailScrollChildFrame:StripTextures()
S:HandleCollapseTexture(_G.TradeSkillCollapseAllButton, nil, true)
S:HandleScrollBar(_G.TradeSkillListScrollFrameScrollBar)
S:HandleScrollBar(_G.TradeSkillDetailScrollFrameScrollBar)
_G.TradeSkillSkillIcon:Size(40)
_G.TradeSkillSkillIcon:Point('TOPLEFT', 2, -3)
for i = 1, _G.MAX_TRADE_SKILL_REAGENTS do
local icon = _G['TradeSkillReagent'..i..'IconTexture']
local count = _G['TradeSkillReagent'..i..'Count']
local nameFrame = _G['TradeSkillReagent'..i..'NameFrame']
S:HandleIcon(icon, true)
icon:SetDrawLayer('OVERLAY')
count:SetDrawLayer('OVERLAY')
nameFrame:SetAlpha(0)
end
_G.TradeSkillHighlight:SetTexture(E.Media.Textures.Highlight)
_G.TradeSkillHighlight:SetAlpha(0.3)
S:HandleButton(_G.TradeSkillCancelButton)
S:HandleButton(_G.TradeSkillCreateButton)
S:HandleButton(_G.TradeSkillCreateAllButton)
S:HandleNextPrevButton(_G.TradeSkillDecrementButton)
_G.TradeSkillInputBox:Size(36, 16)
S:HandleEditBox(_G.TradeSkillInputBox)
S:HandleNextPrevButton(_G.TradeSkillIncrementButton)
S:HandleCloseButton(_G.TradeSkillFrameCloseButton, TradeSkillFrame.backdrop)
_G.TradeSkillSkillIcon:CreateBackdrop()
hooksecurefunc('TradeSkillFrame_SetSelection', function(id)
local skillType = select(2, GetTradeSkillInfo(id))
if skillType == 'header' then return end
if _G.TradeSkillSkillIcon:GetNormalTexture() then
S:HandleIcon(_G.TradeSkillSkillIcon:GetNormalTexture())
end
local skillLink = GetTradeSkillItemLink(id)
if skillLink then
local quality = GetItemQualityByID(skillLink)
if quality and quality > 1 then
local r, g, b = E:GetItemQualityColor(quality)
_G.TradeSkillSkillIcon.backdrop:SetBackdropBorderColor(r, g, b)
_G.TradeSkillSkillName:SetTextColor(r, g, b)
else
_G.TradeSkillSkillIcon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
_G.TradeSkillSkillName:SetTextColor(1, 1, 1)
end
end
for i = 1, GetTradeSkillNumReagents(id) do
local _, _, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(id, i)
local reagentLink = GetTradeSkillReagentItemLink(id, i)
if reagentLink then
local icon = _G['TradeSkillReagent'..i..'IconTexture']
local quality = GetItemQualityByID(reagentLink)
if quality and quality > 1 then
local name = _G['TradeSkillReagent'..i..'Name']
local r, g, b = E:GetItemQualityColor(quality)
icon.backdrop:SetBackdropBorderColor(r, g, b)
if playerReagentCount > reagentCount then
name:SetTextColor(r, g, b)
else
name:SetTextColor(0.5, 0.5, 0.5)
end
else
icon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
end
end)
end
S:AddCallbackForAddon('Blizzard_TradeSkillUI')