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.
55 lines
1.5 KiB
55 lines
1.5 KiB
local WIT, core = ...
|
|
|
|
local AceGUI = LibStub("AceGUI-3.0")
|
|
|
|
local GridColumns = core.GridColumns
|
|
|
|
function GridColumns.TomTomColumn()
|
|
local self = GridColumns.GridColumn('Waypoints')
|
|
|
|
self.Description = core.GetString('WaypointsDescription')
|
|
self.Sortable = false
|
|
|
|
function self.Value(data)
|
|
return data.Waypoints and core.TomTomHelper.IsTomTomAvailable()
|
|
end
|
|
|
|
function self.GetRowText(row)
|
|
return self.Value(row.Data) and ("|cFF00A2E8" .. core.GetString("AddWaypoints")) or ''
|
|
end
|
|
|
|
local baseIsVisible = self.IsVisible
|
|
function self.IsVisible(rows)
|
|
if not baseIsVisible or not core.TomTomHelper.IsTomTomAvailable() then return false end
|
|
|
|
for _, row in pairs(rows) do
|
|
if row.Data.Waypoints then
|
|
return true
|
|
end
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
function self.GetCell(row)
|
|
local container = AceGUI:Create("SimpleGroup")
|
|
local cell = AceGUI:Create("InteractiveLabel")
|
|
local value = self.Value(row.Data)
|
|
cell:SetText(value and self.GetRowText(row) or '')
|
|
cell:SetWidth(cell.label:GetStringWidth() + 5)
|
|
cell:SetUserData("waypoints", row.Data.Waypoints)
|
|
|
|
if value then
|
|
cell:SetCallback("OnClick", function(item)
|
|
local waypoints = item:GetUserData("waypoints")
|
|
core.TomTomHelper.AddWaypoints(waypoints)
|
|
end)
|
|
end
|
|
|
|
container:AddChild(cell)
|
|
|
|
return container
|
|
end
|
|
|
|
return self
|
|
end
|
|
|