|
|
|
|
--imports
|
|
|
|
|
local WIM = WIM;
|
|
|
|
|
local _G = _G;
|
|
|
|
|
local Notes = WIM.Notifications;
|
|
|
|
|
local NoteIndex = 1;
|
|
|
|
|
|
|
|
|
|
--set namespace
|
|
|
|
|
setfenv(1, WIM);
|
|
|
|
|
|
|
|
|
|
local LDB = CreateModule("LDB", true);
|
|
|
|
|
|
|
|
|
|
local isLdbLoaded = false;
|
|
|
|
|
local icon = "Interface\\Addons\\"..addonTocName.."\\Skins\\Default\\minimap";
|
|
|
|
|
local iconNew = "Interface\\Addons\\"..addonTocName.."\\Skins\\Default\\minimap_new";
|
|
|
|
|
local data = {
|
|
|
|
|
type = "data source",
|
|
|
|
|
text = "", --L["No New Messages"],
|
|
|
|
|
icon = icon,
|
|
|
|
|
OnClick = function(frame, button)
|
|
|
|
|
if(button == "LeftButton") then
|
|
|
|
|
Menu:ClearAllPoints();
|
|
|
|
|
if(Menu:IsShown()) then
|
|
|
|
|
Menu:Hide();
|
|
|
|
|
else
|
|
|
|
|
Menu:SetPoint("TOPLEFT", frame, "BOTTOMLEFT", 0, 0);
|
|
|
|
|
Menu:Show();
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
if(db.minimap.rightClickNew) then
|
|
|
|
|
if(_G.IsShiftKeyDown()) then
|
|
|
|
|
-- display tools menu
|
|
|
|
|
PopContextMenu("MENU_MINIMAP", frame:GetName());
|
|
|
|
|
else
|
|
|
|
|
ShowAllUnreadWindows();
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
if(_G.IsShiftKeyDown()) then
|
|
|
|
|
ShowAllUnreadWindows();
|
|
|
|
|
else
|
|
|
|
|
-- display tools menu
|
|
|
|
|
PopContextMenu("MENU_MINIMAP", frame:GetName());
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
OnTooltipShow = function(tooltip)
|
|
|
|
|
tooltip:AddLine("WIM |cff00ff00(v"..version..")|r");
|
|
|
|
|
for i=1, #Notes do
|
|
|
|
|
tooltip:AddDoubleLine("|cff"..Notes[i].color..Notes[i].tag..":|r", "|cffffffff"..Notes[i].text.."|r");
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
LDB:RegisterEvent("ADDON_LOADED");
|
|
|
|
|
|
|
|
|
|
local function setText(text)
|
|
|
|
|
if(data.text ~= text) then
|
|
|
|
|
data.text = text;
|
|
|
|
|
return true;
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local updateFrame = _G.CreateFrame("Frame");
|
|
|
|
|
updateFrame.timer = 0;
|
|
|
|
|
updateFrame.icon = true;
|
|
|
|
|
updateFrame:SetScript("OnUpdate", function(self, elapsed)
|
|
|
|
|
if(isLdbLoaded) then
|
|
|
|
|
self.timer = self.timer + elapsed;
|
|
|
|
|
while(self.timer >= 1) do
|
|
|
|
|
if(#Notes > 0) then
|
|
|
|
|
if(Notes[NoteIndex]) then
|
|
|
|
|
setText(Notes[NoteIndex].tag..": "..Notes[NoteIndex].text);
|
|
|
|
|
else
|
|
|
|
|
NoteIndex = 0;
|
|
|
|
|
end
|
|
|
|
|
self.icon = not self.icon;
|
|
|
|
|
if(self.icon) then
|
|
|
|
|
-- show icon
|
|
|
|
|
data.icon = icon;
|
|
|
|
|
else
|
|
|
|
|
-- show variant
|
|
|
|
|
data.icon = iconNew;
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
self.icon = true;
|
|
|
|
|
if(setText(L["No New Messages"])) then
|
|
|
|
|
-- set normal icon
|
|
|
|
|
data.icon = icon;
|
|
|
|
|
end
|
|
|
|
|
NoteIndex = 0;
|
|
|
|
|
end
|
|
|
|
|
NoteIndex = NoteIndex + 1;
|
|
|
|
|
self.timer = 0;
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local function loadLDB()
|
|
|
|
|
-- if data source is not registered yet and ldb exists, register it.
|
|
|
|
|
if(not isLdbLoaded and _G.LibStub:GetLibrary("LibDataBroker-1.1", true)) then
|
|
|
|
|
_G.LibStub:GetLibrary("LibDataBroker-1.1"):NewDataObject("WIM", data);
|
|
|
|
|
isLdbLoaded = true;
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function LDB:OnEnable()
|
|
|
|
|
loadLDB();
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function LDB:ADDON_LOADED(...)
|
|
|
|
|
-- see if LDB is loaded
|
|
|
|
|
loadLDB();
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- There really isn't a reason as to why you would want this disabled.
|
|
|
|
|
LDB.canDisable = false;
|
|
|
|
|
LDB:Enable();
|