local WIT, core = ... local AceGUI = LibStub("AceGUI-3.0") local GridColumns = core.GridColumns function GridColumns.TomTomColumn(options) options = options or {} options.Name = options.Name or 'Waypoints' options.Sortable = options.Sortable or false local self = GridColumns.GridColumn(options) self.Description = core.GetString('WaypointsDescription') 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(module, 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