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
3.3 KiB
122 lines
3.3 KiB
local _G, UNKNOWN = _G, UNKNOWN
|
|
local print, type, next = print, type, next
|
|
local strmatch = strmatch
|
|
|
|
local SlashCmdList = SlashCmdList
|
|
local UIParentLoadAddOn = UIParentLoadAddOn
|
|
|
|
local GetMouseFocus = GetMouseFocus or function()
|
|
local frames = _G.GetMouseFoci()
|
|
return frames and frames[1]
|
|
end
|
|
|
|
-- GLOBALS: ElvUI
|
|
|
|
local function GetName(frame, text)
|
|
if frame.GetDebugName then
|
|
return frame:GetDebugName()
|
|
elseif frame.GetName then
|
|
return frame:GetName()
|
|
else
|
|
return text or 'nil'
|
|
end
|
|
end
|
|
|
|
local function IsTrue(value)
|
|
return value == 'true' or value == '1'
|
|
end
|
|
|
|
local function AddCommand(name, keys, func)
|
|
if not SlashCmdList[name] then
|
|
SlashCmdList[name] = func
|
|
|
|
if type(keys) == 'table' then
|
|
for i, key in next, keys do
|
|
_G['SLASH_'..name..i] = key
|
|
end
|
|
else
|
|
_G['SLASH_'..name..'1'] = keys
|
|
end
|
|
end
|
|
end
|
|
|
|
-- spawn console without starting with `-console`
|
|
AddCommand('DEVCON', '/devcon', function()
|
|
if _G.DeveloperConsole then
|
|
_G.DeveloperConsole:Toggle()
|
|
end
|
|
end)
|
|
|
|
-- /rl, /reloadui, /reload NOTE: /reload is from SLASH_RELOAD
|
|
AddCommand('RELOADUI', {'/rl','/reloadui'}, _G.ReloadUI)
|
|
|
|
AddCommand('GETPOINT', '/getpoint', function(arg)
|
|
local frame = (arg ~= '' and _G[arg]) or GetMouseFocus()
|
|
if not frame then return end
|
|
|
|
local point, relativeTo, relativePoint, xOffset, yOffset = frame:GetPoint()
|
|
print(GetName(frame), point, GetName(relativeTo), relativePoint, xOffset, yOffset)
|
|
end)
|
|
|
|
AddCommand('FRAME', '/frame', function(arg)
|
|
local frameName, tinspect = strmatch(arg, '^(%S+)%s*(%S*)$')
|
|
local frame = (frameName ~= '' and _G[frameName]) or GetMouseFocus()
|
|
if not frame then return end
|
|
|
|
_G.FRAME = frame -- Set the global variable FRAME to = whatever we are mousing over to simplify messing with frames that have no name.
|
|
ElvUI[1]:Print('_G.FRAME set to: ', GetName(frame, UNKNOWN))
|
|
|
|
if IsTrue(tinspect) then
|
|
if not _G.TableAttributeDisplay then
|
|
UIParentLoadAddOn('Blizzard_DebugTools')
|
|
end
|
|
|
|
_G.TableAttributeDisplay:InspectTable(frame)
|
|
_G.TableAttributeDisplay:Show()
|
|
end
|
|
end)
|
|
|
|
AddCommand('TEXLIST', '/texlist', function(arg)
|
|
local frame = _G[arg] or _G.FRAME
|
|
if not frame then return end
|
|
|
|
for _, region in next, { frame:GetRegions() } do
|
|
if region.IsObjectType and region:IsObjectType('Texture') then
|
|
print(region:GetTexture(), region:GetName(), region:GetDrawLayer())
|
|
end
|
|
end
|
|
end)
|
|
|
|
AddCommand('FRAMELIST', '/framelist', function(arg)
|
|
if not _G.FrameStackTooltip then
|
|
UIParentLoadAddOn('Blizzard_DebugTools')
|
|
end
|
|
|
|
local copyChat, showHidden, showRegions, showAnchors = strmatch(arg, '^(%S+)%s*(%S*)%s*(%S*)%s*(%S*)$')
|
|
|
|
local wasShown = _G.FrameStackTooltip:IsShown()
|
|
if not wasShown then
|
|
_G.FrameStackTooltip_Toggle(IsTrue(showHidden), IsTrue(showRegions), IsTrue(showAnchors))
|
|
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.ElvUI_CopyChatFrame and IsTrue(copyChat) then
|
|
if _G.ElvUI_CopyChatFrame:IsShown() then
|
|
_G.ElvUI_CopyChatFrame:Hide()
|
|
end
|
|
|
|
ElvUI[1]:GetModule('Chat'):CopyChat(_G.ChatFrame1)
|
|
end
|
|
|
|
if not wasShown then
|
|
_G.FrameStackTooltip_Toggle()
|
|
end
|
|
end)
|
|
|