141 lines
3.5 KiB
Lua
141 lines
3.5 KiB
Lua
--Lua functions
|
|
local _G = _G
|
|
local print, tostring, select = print, tostring, select
|
|
local strlower = strlower
|
|
|
|
local GetAddOnEnableState = GetAddOnEnableState
|
|
local UIParentLoadAddOn = UIParentLoadAddOn
|
|
local GetMouseFocus = GetMouseFocus
|
|
local IsAddOnLoaded = IsAddOnLoaded
|
|
local GetAddOnInfo = GetAddOnInfo
|
|
local LoadAddOn = LoadAddOn
|
|
local SlashCmdList = SlashCmdList
|
|
-- GLOBALS: ElvUIDev, ElvUI, FRAME, SLASH_FRAME1, SLASH_FRAMELIST1, SLASH_TEXLIST1, SLASH_GETPOINT1, SLASH_DEV1
|
|
|
|
local me = UnitName('player')
|
|
local IsDebugDisabled = function()
|
|
if GetAddOnEnableState(me, 'Blizzard_DebugTools') == 0 then
|
|
print('Blizzard_DebugTools is disabled.')
|
|
|
|
return true
|
|
end
|
|
end
|
|
|
|
_G.SLASH_FRAME1 = '/frame'
|
|
SlashCmdList.FRAME = function(arg)
|
|
if IsDebugDisabled() then return end
|
|
|
|
if arg ~= '' then
|
|
arg = _G[arg]
|
|
else
|
|
arg = GetMouseFocus()
|
|
end
|
|
|
|
if arg ~= nil then
|
|
_G.FRAME = arg -- Set the global variable FRAME to = whatever we are mousing over to simplify messing with frames that have no name.
|
|
end
|
|
|
|
if not _G.TableAttributeDisplay then
|
|
UIParentLoadAddOn('Blizzard_DebugTools')
|
|
end
|
|
|
|
if _G.TableAttributeDisplay then
|
|
_G.TableAttributeDisplay:InspectTable(arg)
|
|
_G.TableAttributeDisplay:Show()
|
|
end
|
|
end
|
|
|
|
_G.SLASH_FRAMELIST1 = '/framelist'
|
|
SlashCmdList.FRAMELIST = function(msg)
|
|
if IsDebugDisabled() then return end
|
|
|
|
if not _G.FrameStackTooltip then
|
|
UIParentLoadAddOn('Blizzard_DebugTools')
|
|
end
|
|
|
|
local isPreviouslyShown = _G.FrameStackTooltip:IsShown()
|
|
if not isPreviouslyShown then
|
|
if msg == tostring(true) then
|
|
_G.FrameStackTooltip_Toggle(true)
|
|
else
|
|
_G.FrameStackTooltip_Toggle()
|
|
end
|
|
end
|
|
|
|
print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
|
|
for i = 2, _G.FrameStackTooltip:NumLines() do
|
|
local text = _G['FrameStackTooltipTextLeft'..i]:GetText()
|
|
if text and text ~= '' then
|
|
print(text)
|
|
end
|
|
end
|
|
print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
|
|
|
|
if _G.CopyChatFrame:IsShown() then
|
|
_G.CopyChatFrame:Hide()
|
|
end
|
|
|
|
ElvUI[1]:GetModule('Chat'):CopyChat(_G.ChatFrame1)
|
|
if not isPreviouslyShown then
|
|
_G.FrameStackTooltip_Toggle()
|
|
end
|
|
end
|
|
|
|
local function TextureList(frame)
|
|
frame = _G[frame] or FRAME
|
|
|
|
for i = 1, frame:GetNumRegions() do
|
|
local region = select(i, frame:GetRegions())
|
|
if region.IsObjectType and region:IsObjectType('Texture') then
|
|
print(region:GetTexture(), region:GetName(), region:GetDrawLayer())
|
|
end
|
|
end
|
|
end
|
|
|
|
_G.SLASH_TEXLIST1 = '/texlist'
|
|
SlashCmdList.TEXLIST = TextureList
|
|
|
|
local function GetPoint(frame)
|
|
if frame ~= '' then
|
|
frame = _G[frame]
|
|
else
|
|
frame = GetMouseFocus()
|
|
end
|
|
|
|
local point, relativeTo, relativePoint, xOffset, yOffset = frame:GetPoint()
|
|
local frameName = frame.GetName and frame:GetName() or 'nil'
|
|
local relativeToName = relativeTo.GetName and relativeTo:GetName() or 'nil'
|
|
|
|
print(frameName, point, relativeToName, relativePoint, xOffset, yOffset)
|
|
end
|
|
|
|
_G.SLASH_GETPOINT1 = '/getpoint'
|
|
SlashCmdList.GETPOINT = GetPoint
|
|
|
|
_G.SLASH_DEV1 = '/dev'
|
|
SlashCmdList.DEV = function()
|
|
if not IsAddOnLoaded('ElvUIDev') then
|
|
local _, _, _, loadable, reason = GetAddOnInfo('ElvUIDev')
|
|
if not loadable then
|
|
if reason == 'MISSING' then
|
|
print('ElvUIDev addon is missing.')
|
|
elseif reason == 'DISABLED' then
|
|
print('ElvUIDev addon is disabled.')
|
|
elseif reason == 'DEMAND_LOADED' then
|
|
local loaded, rsn = LoadAddOn('ElvUIDev')
|
|
if loaded then
|
|
ElvUIDev:ToggleFrame()
|
|
else
|
|
print('ElvUIDev addon cannot be loaded: %s.', strlower(rsn))
|
|
end
|
|
end
|
|
end
|
|
else
|
|
if not ElvUIDev.frame:IsShown() then
|
|
ElvUIDev.frame:Show()
|
|
else
|
|
ElvUIDev.frame:Hide()
|
|
end
|
|
end
|
|
end
|