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.

64 lines
1.6 KiB

local TSM = select(2, ...)
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Shopping") -- loads the localization table
local private = {}
function private.Create(parent)
local frame = CreateFrame("Frame", nil, parent)
frame:Hide()
frame:SetAllPoints()
frame:SetScript("OnShow", private.UpdateSTData)
frame:SetScript("OnUpdate", function(self)
if #TSM.Util.shoppingLog ~= self.numLogEntries then
private.UpdateSTData(self)
end
end)
TSMAPI.Design:SetFrameColor(frame)
local stHandlers = {
OnEnter = function(_, data, self)
if not data then return end
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
TSMAPI:SafeTooltipLink(data.link)
GameTooltip:Show()
end,
OnLeave = function()
GameTooltip:ClearLines()
GameTooltip:Hide()
end
}
local colInfo = {
{name=L["Item"], width=0.40},
{name=L["Action"], width=0.15, align="CENTER"},
{name=L["Num"], width=0.13, align="CENTER"},
{name=L["Buyout"], width=0.25, align="RIGHT"},
}
frame.st = TSMAPI:CreateScrollingTable(frame, colInfo, stHandlers, 12)
frame.st:DisableSelection(true)
frame.st:DisableHighlight(true)
return frame
end
function private.UpdateSTData(frame)
local stData = {}
for i=#TSM.Util.shoppingLog, 1, -1 do
local entry = TSM.Util.shoppingLog[i]
local row = {
cols = {
{value=entry.link},
{value=entry.action},
{value=entry.count},
{value=TSMAPI:FormatTextMoney(entry.buyout)},
},
link = entry.link
}
tinsert(stData, row)
end
frame.st:SetData(stData)
frame.numLogEntries = #TSM.Util.shoppingLog
end
do
TSM:AddSidebarFeature(L["Log"], private.Create)
end