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.
122 lines
4.1 KiB
122 lines
4.1 KiB
local E, L, V, P, G = unpack(ElvUI)
|
|
local S = E:GetModule('Skins')
|
|
|
|
local _G = _G
|
|
local unpack = unpack
|
|
local hooksecurefunc = hooksecurefunc
|
|
|
|
local function SetToggleIcon(button, texture)
|
|
local icon = button:CreateTexture()
|
|
icon:SetTexCoord(unpack(E.TexCoords))
|
|
icon:SetInside()
|
|
icon:SetTexture(texture)
|
|
|
|
button:StyleButton()
|
|
end
|
|
|
|
local function SetItemQuality(slot)
|
|
if not slot.slotState and not slot.isHiddenVisual and slot.transmogID then
|
|
slot.backdrop:SetBackdropBorderColor(slot.Name:GetTextColor())
|
|
else
|
|
slot.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
end
|
|
end
|
|
|
|
local function DetailsPanelRefresh(panel)
|
|
if not panel.slotPool then return end
|
|
|
|
for slot in panel.slotPool:EnumerateActive() do
|
|
if not slot.backdrop then
|
|
slot:CreateBackdrop()
|
|
slot.backdrop:SetOutside(slot.Icon)
|
|
slot.IconBorder:SetAlpha(0)
|
|
S:HandleIcon(slot.Icon)
|
|
end
|
|
|
|
SetItemQuality(slot)
|
|
end
|
|
end
|
|
|
|
local function DressUpConfigureSize(frame, isMinimized)
|
|
frame.OutfitDetailsPanel:ClearAllPoints()
|
|
frame.OutfitDetailsPanel:Point('TOPLEFT', frame, 'TOPRIGHT', 4, 0)
|
|
|
|
frame.OutfitDropdown:ClearAllPoints()
|
|
frame.OutfitDropdown:Point('TOP', -(isMinimized and 42 or 28), -32)
|
|
frame.OutfitDropdown:Width(isMinimized and 140 or 190)
|
|
end
|
|
|
|
local function HandleSetButtons(button)
|
|
if button.IsSkinned then return end
|
|
|
|
S:HandleIcon(button.Icon, true)
|
|
S:HandleIconBorder(button.IconBorder, button.Icon.backdrop)
|
|
button.BackgroundTexture:SetAlpha(0)
|
|
button.SelectedTexture:SetColorTexture(1, .8, 0, .25)
|
|
button.HighlightTexture:SetColorTexture(1, 1, 1, .25)
|
|
|
|
button.IsSkinned = true
|
|
end
|
|
|
|
local function SetSelection_Update(box)
|
|
if box then
|
|
box:ForEachFrame(HandleSetButtons)
|
|
end
|
|
end
|
|
|
|
function S:DressUpFrame()
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.dressingroom) then return end
|
|
|
|
local DressUpFrame = _G.DressUpFrame
|
|
S:HandlePortraitFrame(DressUpFrame)
|
|
S:HandleMaxMinFrame(DressUpFrame.MaximizeMinimizeFrame)
|
|
S:HandleButton(_G.DressUpFrameResetButton)
|
|
S:HandleButton(_G.DressUpFrameCancelButton)
|
|
S:HandleButton(DressUpFrame.LinkButton)
|
|
S:HandleModelSceneControlButtons(DressUpFrame.ModelScene.ControlFrame)
|
|
S:HandleButton(DressUpFrame.ToggleOutfitDetailsButton)
|
|
SetToggleIcon(DressUpFrame.ToggleOutfitDetailsButton, 1392954)
|
|
|
|
local SetSelection = DressUpFrame.SetSelectionPanel
|
|
if SetSelection then
|
|
SetSelection:StripTextures()
|
|
SetSelection:SetTemplate('Transparent')
|
|
S:HandleTrimScrollBar(SetSelection.ScrollBar)
|
|
|
|
hooksecurefunc(SetSelection.ScrollBox, 'Update', SetSelection_Update)
|
|
end
|
|
|
|
DressUpFrame.ModelBackground:SetDrawLayer('BACKGROUND', 1)
|
|
DressUpFrame.LinkButton:Size(110, 22)
|
|
DressUpFrame.LinkButton:ClearAllPoints()
|
|
DressUpFrame.LinkButton:Point('BOTTOMLEFT', 4, 4)
|
|
|
|
_G.DressUpFrameCancelButton:Point('BOTTOMRIGHT', -4, 4)
|
|
_G.DressUpFrameResetButton:Point('RIGHT', _G.DressUpFrameCancelButton, 'LEFT', -3, 0)
|
|
|
|
local OutfitDropDown = DressUpFrame.OutfitDropdown
|
|
S:HandleDropDownBox(OutfitDropDown)
|
|
S:HandleButton(OutfitDropDown.SaveButton)
|
|
|
|
-- Dont use StripTextures on the DetailsPanel, plx
|
|
DressUpFrame.OutfitDetailsPanel:DisableDrawLayer('BACKGROUND')
|
|
DressUpFrame.OutfitDetailsPanel:DisableDrawLayer('OVERLAY') -- to keep Artwork on the frame
|
|
DressUpFrame.OutfitDetailsPanel:CreateBackdrop('Transparent')
|
|
DressUpFrame.OutfitDetailsPanel.ClassBackground:SetAllPoints()
|
|
|
|
hooksecurefunc(DressUpFrame.OutfitDetailsPanel, 'Refresh', DetailsPanelRefresh)
|
|
hooksecurefunc(DressUpFrame, 'ConfigureSize', DressUpConfigureSize)
|
|
|
|
local WardrobeOutfitEditFrame = _G.WardrobeOutfitEditFrame
|
|
WardrobeOutfitEditFrame:StripTextures(true)
|
|
WardrobeOutfitEditFrame:SetTemplate('Transparent')
|
|
WardrobeOutfitEditFrame.EditBox:StripTextures()
|
|
S:HandleEditBox(WardrobeOutfitEditFrame.EditBox)
|
|
WardrobeOutfitEditFrame.EditBox.backdrop:Point('TOPLEFT', WardrobeOutfitEditFrame.EditBox, 'TOPLEFT', -5, -5)
|
|
WardrobeOutfitEditFrame.EditBox.backdrop:Point('BOTTOMRIGHT', WardrobeOutfitEditFrame.EditBox, 'BOTTOMRIGHT', 0, 5)
|
|
S:HandleButton(WardrobeOutfitEditFrame.AcceptButton)
|
|
S:HandleButton(WardrobeOutfitEditFrame.CancelButton)
|
|
S:HandleButton(WardrobeOutfitEditFrame.DeleteButton)
|
|
end
|
|
|
|
S:AddCallback('DressUpFrame')
|
|
|