Rather than tremove and tinsert (which don't return anything) add the frame to your table by name
Code:
TDButton_FramePool = {};
function TDButton_CreateOverlay(parent, id, texture, r, g, b)
local frame = TDButton_FramePool['TDButton_Overlay_' .. id]
if not frame then
frame = CreateFrame('Frame', 'TDButton_Overlay_' .. id, parent);
TDButton_FramePool['TDButton_Overlay_' .. id] = frame
frame:SetFrameStrata('HIGH');
frame:SetPoint('CENTER', 0, 0);
frame:SetWidth(parent:GetWidth() * 1.4);
frame:SetHeight(parent:GetHeight() * 1.4);
frame.texture = frame:CreateTexture('GlowOverlay', 'OVERLAY');
frame.texture:SetAllPoints(frame);
frame.texture:SetBlendMode('ADD');
end
frame.texture:SetTexture(texture or TDDps_Options_GetTexture());
frame.texture:SetVertexColor(
r or TDDps_Options.highlightColor.r,
g or TDDps_Options.highlightColor.g,
b or TDDps_Options.highlightColor.b,
TDDps_Options.highlightColor.a
);
return frame;
end
function TDButton_DestroyAllOverlays()
for key, frame in pairs(TDButton_FramePool) do
frame:Hide();
end
end