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.
95 lines
2.7 KiB
95 lines
2.7 KiB
local WIT, core = ...
|
|
|
|
local AceGUI = LibStub("AceGUI-3.0")
|
|
|
|
local GridColumns = core.GridColumns
|
|
|
|
function GridColumns.CustomActionsColumn(options)
|
|
options = options or {}
|
|
options.Name = options.Name or 'Actions'
|
|
|
|
local self = GridColumns.GridColumn(options)
|
|
|
|
self.Sortable = false
|
|
|
|
function self.Value(data)
|
|
return true
|
|
end
|
|
|
|
function self.GetRowText(row)
|
|
return ''
|
|
end
|
|
|
|
function self.GetColumnMinWidth(rows)
|
|
local label = AceGUI:Create("Label")
|
|
label:SetText(self.DisplayName or self.Name)
|
|
|
|
local maxWidth = label.label:GetStringWidth() + 5
|
|
|
|
label:SetText(core.GetString("Edit") .. "x")
|
|
local width = label.label:GetStringWidth() + 20
|
|
|
|
if width > maxWidth then
|
|
maxWidth = width
|
|
end
|
|
|
|
label:Release()
|
|
|
|
return maxWidth
|
|
end
|
|
|
|
function self.GetCell(row)
|
|
local container = AceGUI:Create("SimpleGroup")
|
|
container:SetLayout("Flow")
|
|
|
|
local editButton = AceGUI:Create("Button")
|
|
editButton:SetAutoWidth(true)
|
|
editButton:SetText(core.GetString("Edit"))
|
|
editButton:SetCallback("OnClick", function()
|
|
local recorder = core.Recorder()
|
|
|
|
if not recorder.Session.IsRunning then
|
|
recorder.LoadSession(row.Data)
|
|
recorder.Show()
|
|
core.UI.MainWindow.Hide()
|
|
else
|
|
print(core.GetString("RecordingInProgress"))
|
|
end
|
|
end)
|
|
container:AddChild(editButton)
|
|
|
|
local removeButton = AceGUI:Create("Button")
|
|
removeButton:SetAutoWidth(true)
|
|
removeButton:SetText("X")
|
|
removeButton:SetCallback("OnClick", function()
|
|
if not IsShiftKeyDown() then return end
|
|
|
|
local farms = core.Config.GetUserFarms()
|
|
|
|
for i, farm in pairs(farms) do
|
|
if farm.Id == row.Data.Id then
|
|
tremove(farms, i)
|
|
end
|
|
end
|
|
|
|
core.UserDataModule.ClearCache()
|
|
core.UI.MainWindow.ShowModule(core.UserDataModule)
|
|
end)
|
|
removeButton:SetCallback("OnEnter", function()
|
|
GameTooltip:SetOwner(removeButton.frame, "ANCHOR_PRESERVE")
|
|
GameTooltip:ClearAllPoints()
|
|
GameTooltip:SetPoint("LEFT", removeButton.frame, "RIGHT")
|
|
GameTooltip:ClearLines()
|
|
GameTooltip:AddLine(core.GetString("ShiftToRemove"))
|
|
GameTooltip:Show()
|
|
end)
|
|
removeButton:SetCallback("OnLeave", function()
|
|
GameTooltip:Hide()
|
|
end)
|
|
container:AddChild(removeButton)
|
|
|
|
return container
|
|
end
|
|
|
|
return self
|
|
end
|
|
|