109 lines
2.8 KiB
Lua
109 lines
2.8 KiB
Lua
local T = AceLibrary("Tablet-2.0")
|
|
local D = AceLibrary("Dewdrop-2.0")
|
|
local C = AceLibrary("Crayon-2.0")
|
|
local CP = AceLibrary("Compost-2.0")
|
|
|
|
sepgp_logs = sepgp:NewModule("sepgp_logs", "AceDB-2.0")
|
|
sepgp_logs.tmp = CP:Acquire()
|
|
|
|
function sepgp_logs:OnEnable()
|
|
if not T:IsRegistered("sepgp_logs") then
|
|
T:Register("sepgp_logs",
|
|
"children", function()
|
|
T:SetTitle("shootyepgp logs")
|
|
self:OnTooltipUpdate()
|
|
end,
|
|
"showTitleWhenDetached", true,
|
|
"showHintWhenDetached", true,
|
|
"cantAttach", true,
|
|
"menu", function()
|
|
D:AddLine(
|
|
"text", "Refresh",
|
|
"tooltipText", "Refresh window",
|
|
"func", function() sepgp_logs:Refresh() end
|
|
)
|
|
D:AddLine(
|
|
"text", "Clear",
|
|
"tooltipText", "Clear Logs.",
|
|
"func", function() sepgp_log = {} sepgp_logs:Refresh() end
|
|
)
|
|
end
|
|
)
|
|
end
|
|
if not T:IsAttached("sepgp_logs") then
|
|
T:Open("sepgp_logs")
|
|
end
|
|
end
|
|
|
|
function sepgp_logs:OnDisable()
|
|
T:Close("sepgp_logs")
|
|
end
|
|
|
|
function sepgp_logs:Refresh()
|
|
T:Refresh("sepgp_logs")
|
|
end
|
|
|
|
function sepgp_logs:setHideScript()
|
|
local detachedFrame, tablet
|
|
for i=1,4 do
|
|
tablet = getglobal(string.format("Tablet20DetachedFrame%d",1))
|
|
if tablet and tablet.owner ~= nil and tablet.owner == "sepgp_logs" then
|
|
if not (tablet:GetScript("OnHide")) then
|
|
tablet:SetScript("OnHide",function()
|
|
if not T:IsAttached("sepgp_logs") then
|
|
T:Attach("sepgp_logs")
|
|
this:SetScript("OnHide",nil)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function sepgp_logs:Toggle(forceShow)
|
|
if T:IsAttached("sepgp_logs") then
|
|
T:Detach("sepgp_logs")
|
|
if (T:IsLocked("sepgp_logs")) then
|
|
T:ToggleLocked("sepgp_logs")
|
|
end
|
|
self:setHideScript()
|
|
elseif (forceShow) then
|
|
else
|
|
T:Attach("sepgp_logs")
|
|
end
|
|
end
|
|
|
|
function sepgp_logs:reverse(arr)
|
|
CP:Recycle(sepgp_logs.tmp)
|
|
for _,val in ipairs(arr) do
|
|
table.insert(sepgp_logs.tmp,val)
|
|
end
|
|
local i, j = 1, table.getn(sepgp_logs.tmp)
|
|
while i < j do
|
|
sepgp_logs.tmp[i], sepgp_logs.tmp[j] = sepgp_logs.tmp[j], sepgp_logs.tmp[i]
|
|
i = i + 1
|
|
j = j - 1
|
|
end
|
|
return sepgp_logs.tmp
|
|
end
|
|
|
|
function sepgp_logs:BuildLogsTable()
|
|
-- {timestamp,line}
|
|
return self:reverse(sepgp_log)
|
|
end
|
|
|
|
function sepgp_logs:OnTooltipUpdate()
|
|
local cat = T:AddCategory(
|
|
"columns", 2,
|
|
"text", C:Orange("Time"), "child_textR", 1, "child_textG", 1, "child_textB", 1, "child_justify", "LEFT",
|
|
"text2", C:Orange("Action"), "child_text2R", 1, "child_text2G", 1, "child_text2B", 1, "child_justify2", "RIGHT"
|
|
)
|
|
local t = sepgp_logs:BuildLogsTable()
|
|
for i = 1, table.getn(t) do
|
|
local timestamp, line = unpack(t[i])
|
|
cat:AddLine(
|
|
"text", C:Silver(timestamp),
|
|
"text2", line
|
|
)
|
|
end
|
|
end |