Code:
---------------------------
-- VAR
---------------------------
local addon, ns = ...
local previousButton
local buttonSize = 30
local stringSize = 14
local stringIconWorldmarkerPrefix = "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_"
local TEX_WORLD_RAID_MARKERS = {
stringIconWorldmarkerPrefix.."6:"..stringSize..":"..stringSize.."|t",
stringIconWorldmarkerPrefix.."4:"..stringSize..":"..stringSize.."|t",
stringIconWorldmarkerPrefix.."3:"..stringSize..":"..stringSize.."|t",
stringIconWorldmarkerPrefix.."7:"..stringSize..":"..stringSize.."|t",
stringIconWorldmarkerPrefix.."1:"..stringSize..":"..stringSize.."|t",
}
local stringIconPassButton = "|TInterface\\Buttons\\UI-GroupLoot-Pass-Up:"..stringSize..":"..stringSize..":0:0|t"
---------------------------
-- FUNC
---------------------------
--basic button func
local function CreateBasicButton(parent, name, text, tooltipText)
local button = CreateFrame("Button", name, parent, "SecureActionButtonTemplate, UIPanelButtonTemplate")
button.text = _G[button:GetName().."Text"]
button.text:SetText(text)
button:SetWidth(buttonSize)
button:SetHeight(buttonSize)
button:SetScript("OnEnter", function(self)
GameTooltip:SetOwner(self, "ANCHOR_TOP")
GameTooltip:AddLine(tooltipText, 0, 1, 0.5, 1, 1, 1)
GameTooltip:Show()
end)
button:SetScript("OnLeave", function(self) GameTooltip:Hide() end)
return button
end
---------------------------
-- INIT
---------------------------
--create manager frame
local manager = CreateFrame("Frame", addon, UIParent, "SecureHandlerStateTemplate")
manager:SetSize(buttonSize,buttonSize)
manager:SetPoint("CENTER", 0,0)
--RegisterStateDriver(manager, "visibility", "[group:party][group:raid] show; hide")
--create world marker buttons
for i=1, #TEX_WORLD_RAID_MARKERS do
local stringIcon = TEX_WORLD_RAID_MARKERS[i]
local button = CreateBasicButton(manager, addon.."Button"..i, stringIcon, "WorldMarker"..i)
button:SetAttribute("type", "macro")
button:SetAttribute("macrotext", format("/wm %d", i))
if not previousButton then
button:SetPoint("CENTER")
else
button:SetPoint("TOP", previousButton, "BOTTOM", 0, 0)
end
previousButton = button
local cancelButton = CreateBasicButton(manager, addon.."Button"..i.."Cancel", stringIconPassButton, "Clear WorldMarker"..i)
cancelButton:SetAttribute("type", "macro")
cancelButton:SetAttribute("macrotext", format("/cwm %d", i))
cancelButton:SetPoint("RIGHT", button, "LEFT", 0, 0)
if i == #TEX_WORLD_RAID_MARKERS then
local button = CreateBasicButton(manager, addon.."ButtonCancelAll", stringIconPassButton, "Clear all world markers")
button:SetAttribute("type", "macro")
button:SetAttribute("macrotext", "/cwm all")
--alternative
--button:SetScript("OnClick", ClearRaidMarker)
button:SetPoint("TOP", previousButton, "BOTTOM", 0, 0)
end
end