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.

116 lines
2.7 KiB

local GlobalAddonName, ExRT = ...
local UnitName, GetRaidTargetIndex, SetRaidTargetIcon = UnitName, GetRaidTargetIndex, SetRaidTargetIcon
local VMRT = nil
local module = ExRT:New("Marks",ExRT.L.Marks)
local ELib,L = ExRT.lib,ExRT.L
function module.main:ADDON_LOADED()
VMRT = _G.VMRT
VMRT.Marks = VMRT.Marks or {}
VMRT.Marks.list = VMRT.Marks.list or {}
end
function module:Enable()
module:RegisterTimer()
module.Enabled = true
end
function module:Disable()
module:UnregisterTimer()
module.Enabled = nil
end
do
local tmr = 0
function module:timer(elapsed)
tmr = tmr + elapsed
if tmr > .5 then
tmr = 0
for i=1,8 do
local name = VMRT.Marks.list[i]
if name and name:find("[, ]") then
for subname in name:gmatch("[^, ]+") do
if UnitName(subname) then
if GetRaidTargetIndex(subname)~=i then
SetRaidTargetIcon(subname, i)
end
break
end
end
elseif name and UnitName(name) and GetRaidTargetIndex(name)~=i then
SetRaidTargetIcon(name, i)
end
end
end
end
end
function module:SetName(markNum,name)
if name == "" then
name = nil
end
VMRT.Marks.list[markNum] = name
end
function module:GetName(markNum)
return VMRT.Marks.list[markNum]
end
function module:ClearNames()
for i=1,8 do
VMRT.Marks.list[i] = nil
end
end
function module.options:Load()
self:CreateTilte()
local function MarksEditBoxTextChanged(self,isUser)
if not isUser then
return
end
local i = self._i
local name = self:GetText()
if name == "" then
name = nil
end
VMRT.Marks.list[i] = name
end
self.namesEditBox = {}
for i=1,8 do
self.namesEditBox[i] = ELib:Edit(self):Size(600,20):Point(45,-65-(i-1)*24):Text(VMRT.Marks.list[i]):OnChange(MarksEditBoxTextChanged):Tooltip(L.MarksMultiplyNames)
self.namesEditBox[i]._i = i
self.namesEditBox[i].icon = ELib:Icon(self.namesEditBox[i],"Interface\\TargetingFrame\\UI-RaidTargetingIcon_"..i,22):Point("RIGHT",self.namesEditBox[i],"LEFT",-5,0)
end
self.showButton = ELib:Button(self,L.Enable):Size(632,20):Point("TOP",0,-35):Tooltip(L.MarksTooltip):OnClick(function (self)
if not module.Enabled then
self:SetText(L.MarksDisable)
module:Enable()
else
self:SetText(L.Enable)
module:Disable()
end
end)
if module.Enabled then
self.showButton:SetText(L.MarksDisable)
end
self.showButton:SetScript("OnShow",function (self)
if module.Enabled then
self:SetText(L.MarksDisable)
else
self:SetText(L.Enable)
end
end)
self.clearButton = ELib:Button(self,L.MarksClear):Size(632,20):Point("TOP",0,-265):OnClick(function ()
module:ClearNames()
for i=1,8 do
self.namesEditBox[i]:SetText("")
end
end)
5 years ago
end