59 lines
1.8 KiB
Lua
59 lines
1.8 KiB
Lua
|
--Lua functions
|
||
|
local _G = _G
|
||
|
local select = select
|
||
|
|
||
|
local hooksecurefunc = hooksecurefunc
|
||
|
local IsAddOnLoaded = IsAddOnLoaded
|
||
|
local CreateFrame = CreateFrame
|
||
|
-- GLOBALS: ElvUI
|
||
|
|
||
|
local function OnMouseDown(self, button)
|
||
|
local text = self.Text:GetText()
|
||
|
if button == 'RightButton' then
|
||
|
ElvUI[1]:GetModule('Chat'):SetChatEditBoxMessage(text)
|
||
|
elseif button == 'MiddleButton' then
|
||
|
local rawData = self:GetParent():GetAttributeData().rawValue
|
||
|
if rawData.IsObjectType and rawData:IsObjectType('Texture') then
|
||
|
_G.TEX = rawData
|
||
|
ElvUI[1]:Print('_G.TEX set to: ', text)
|
||
|
else
|
||
|
_G.FRAME = rawData
|
||
|
ElvUI[1]:Print('_G.FRAME set to: ', text)
|
||
|
end
|
||
|
else
|
||
|
_G.TableAttributeDisplayValueButton_OnMouseDown(self)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local function UpdateLines(self)
|
||
|
local scrollFrame = self.LinesScrollFrame or _G.TableAttributeDisplay.LinesScrollFrame -- tinspect, or fstack ctrl
|
||
|
if not scrollFrame then return end
|
||
|
for i = 1, scrollFrame.LinesContainer:GetNumChildren() do
|
||
|
local child = select(i, scrollFrame.LinesContainer:GetChildren())
|
||
|
if child.ValueButton and child.ValueButton:GetScript('OnMouseDown') ~= OnMouseDown then
|
||
|
child.ValueButton:SetScript('OnMouseDown', OnMouseDown)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local event = 'ADDON_LOADED'
|
||
|
local function Setup(frame)
|
||
|
if frame.Registered then return end
|
||
|
local debugTools = IsAddOnLoaded('Blizzard_DebugTools')
|
||
|
if debugTools then
|
||
|
hooksecurefunc(_G.TableInspectorMixin, 'RefreshAllData', UpdateLines) -- /tinspect
|
||
|
hooksecurefunc(_G.TableAttributeDisplay.dataProviders[2], 'RefreshData', UpdateLines) -- fstack ctrl
|
||
|
frame.Registered = true
|
||
|
|
||
|
if frame:IsEventRegistered(event) then
|
||
|
frame:UnregisterEvent(event)
|
||
|
end
|
||
|
elseif not frame:IsEventRegistered(event) then
|
||
|
frame:RegisterEvent(event)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local frame = CreateFrame('Frame')
|
||
|
frame:SetScript('OnEvent', Setup)
|
||
|
Setup(frame)
|