local UnitInRange = UnitInRange;
local CreateFrame, RegisterStateDriver, RegisterUnitWatch = CreateFrame, RegisterStateDriver, RegisterUnitWatch;
local STANDARD_TEXT_FONT = STANDARD_TEXT_FONT;
+local GameTooltip = nil;
+local GameTooltip_SetDefaultAnchor = nil;
local registerEvents = OmaRFEvents.RegisterEvents;
local unitEvent = OmaRFEvents.UnitEvent;
frame:RegisterEvent("UNIT_PET");
frame:RegisterEvent("PLAYER_ROLES_ASSIGNED");
frame:RegisterEvent("GROUP_ROSTER_UPDATE");
+ frame:RegisterEvent("PLAYER_ENTERING_WORLD");
+ frame:RegisterEvent("READY_CHECK");
+ frame:RegisterEvent("READY_CHECK_CONFIRM");
+ frame:RegisterEvent("READY_CHECK_FINISHED");
registerEvents(frame);
frame:SetScript("OnUpdate", unitUpdate);
unitEvent(frame, "UPDATE_ALL_BARS", frame.displayed);
frame:SetScript("OnUpdate", nil);
end
+local function showTooltip(frame)
+ GameTooltip_SetDefaultAnchor(GameTooltip, PlayerFrame);
+ GameTooltip:SetUnit(frame:GetAttribute("unit"));
+end
+
+local function hideTooltip(frame)
+ GameTooltip:FadeOut();
+end
+
local function setupFrame(frame, secure, unit)
secure:SetAttribute("unit", unit);
frame:SetAttribute("unit", unit);
frame.rez:SetPoint("BOTTOMRIGHT", frame.background, "CENTER", 12, -12);
frame.rez:SetTexture("Interface\\RaidFrame\\Raid-Icon-Rez");
frame.rez:Hide();
+ frame.ready = frame:CreateTexture(nil, "OVERLAY");
+ frame.ready:SetPoint("TOPLEFT", frame.background, "BOTTOMLEFT", 0, 12);
+ frame.ready:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMLEFT", 12, 0);
+ frame.ready:Hide();
-- set up indicators
setupIndicators(frame);
-- set scripts
frame:SetScript("OnShow", frameShow);
frame:SetScript("OnHide", frameHide);
frame:SetScript("OnEvent", unitEvent);
+ -- let other addons hook these to anchor tooltip elsewhere
+ GameTooltip = _G["GameTooltip"];
+ GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"];
+ secure:SetScript("OnEnter", showTooltip);
+ secure:SetScript("OnLeave", hideTooltip);
-- set attributes
secure:RegisterForClicks("AnyDown");
for attr, val in pairs(attributes) do