ElvUI/Modules/Skins/Blizzard/Debug.lua

126 lines
4.0 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 hooksecurefunc = hooksecurefunc
local FrameTexs = {
'TopLeft',
'TopRight',
'Top',
'BottomLeft',
'BottomRight',
'Bottom',
'Left',
'Right',
'TitleBG',
'DialogBG',
}
local function SkinOnShow()
local ScriptErrorsFrame = _G.ScriptErrorsFrame
ScriptErrorsFrame:SetParent(E.UIParent)
ScriptErrorsFrame:CreateBackdrop('Transparent')
S:HandleScrollBar(_G.ScriptErrorsFrameScrollBar)
S:HandleCloseButton(_G.ScriptErrorsFrameClose)
ScriptErrorsFrame.ScrollFrame.Text:FontTemplate(nil, 13)
ScriptErrorsFrame.ScrollFrame:CreateBackdrop()
ScriptErrorsFrame.ScrollFrame:SetFrameLevel(ScriptErrorsFrame.ScrollFrame:GetFrameLevel() + 2)
for i=1, #FrameTexs do
_G['ScriptErrorsFrame'..FrameTexs[i]]:SetTexture()
end
-- Our Buttons
if ScriptErrorsFrame.firstButton then
S:HandleButton(ScriptErrorsFrame.firstButton)
end
if ScriptErrorsFrame.lastButton then
S:HandleButton(ScriptErrorsFrame.lastButton)
end
-- Default Buttons
S:HandleButton(ScriptErrorsFrame.Reload)
S:HandleButton(ScriptErrorsFrame.Close)
S:HandleNextPrevButton(ScriptErrorsFrame.PreviousError)
S:HandleNextPrevButton(ScriptErrorsFrame.NextError)
S:Unhook(ScriptErrorsFrame, 'OnShow')
end
local function SkinTableAttributeDisplay(frame)
frame:StripTextures()
frame:CreateBackdrop('Transparent')
frame.ScrollFrameArt:StripTextures()
frame.ScrollFrameArt:CreateBackdrop('Transparent')
S:HandleCloseButton(frame.CloseButton)
frame.OpenParentButton:ClearAllPoints()
frame.OpenParentButton:Point('TOPLEFT', frame, 'TOPLEFT', 2, -2)
S:HandleNextPrevButton(frame.OpenParentButton, 'up')
frame.OpenParentButton:Size(17)
frame.DuplicateButton:ClearAllPoints()
frame.DuplicateButton:Point('LEFT', frame.NavigateForwardButton, 'RIGHT')
S:HandleCheckBox(frame.VisibilityButton)
frame.VisibilityButton:Size(28)
S:HandleCheckBox(frame.HighlightButton)
frame.HighlightButton:Size(28)
S:HandleCheckBox(frame.DynamicUpdateButton)
frame.DynamicUpdateButton:Size(28)
frame.NavigateBackwardButton:ClearAllPoints()
frame.NavigateBackwardButton:Point('LEFT', frame.OpenParentButton, 'RIGHT', 2, 0)
frame.NavigateForwardButton:ClearAllPoints()
frame.NavigateForwardButton:Point('LEFT', frame.NavigateBackwardButton, 'RIGHT', 2, 0)
frame.DuplicateButton:ClearAllPoints()
frame.DuplicateButton:Point('LEFT', frame.NavigateForwardButton, 'RIGHT', 2, 0)
S:HandleNextPrevButton(frame.DuplicateButton)
frame.DuplicateButton:Size(17)
S:HandleNextPrevButton(frame.NavigateBackwardButton)
S:HandleNextPrevButton(frame.NavigateForwardButton)
S:HandleEditBox(frame.FilterBox)
S:HandleScrollBar(frame.LinesScrollFrame.ScrollBar)
end
function S:ScriptErrorsFrame()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.debug) then return end
S:SecureHookScript(_G.ScriptErrorsFrame, 'OnShow', SkinOnShow)
end
function S:Blizzard_DebugTools()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.debug) then return end
-- Tooltips
if E.private.skins.blizzard.tooltip then
_G.FrameStackTooltip:CreateBackdrop('Transparent')
_G.FrameStackTooltip.backdrop:SetAllPoints()
_G.EventTraceTooltip:CreateBackdrop('Transparent')
_G.FrameStackTooltip.backdrop:SetAllPoints()
end
for i=1, #FrameTexs do
_G['EventTraceFrame'..FrameTexs[i]]:SetTexture()
end
_G.EventTraceFrame:CreateBackdrop('Transparent')
S:HandleCloseButton(_G.EventTraceFrameCloseButton)
--New Table Attribute Display: mouse over frame and (/tableinspect or [/fstack -> then Ctrl])
SkinTableAttributeDisplay(_G.TableAttributeDisplay)
hooksecurefunc(_G.TableInspectorMixin, 'OnLoad', function(s)
if s and s.ScrollFrameArt and not s.skinned then
SkinTableAttributeDisplay(s)
s.skinned = true
end
end)
end
-- ScriptErrorsFrame Skin
S:AddCallback('ScriptErrorsFrame')
-- EventTrace, FrameStack, TableInspect Skins
if _G.IsAddOnLoaded('Blizzard_DebugTools') then
S:AddCallback('Blizzard_DebugTools')
else
S:AddCallbackForAddon('Blizzard_DebugTools')
end