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
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)
|
|
end
|