-- UnitFrames.lua
local _;
local pairs = pairs;
+local InCombatLockdown = InCombatLockdown;
+local CTimerAfter = C_Timer.After;
-local UnitFrames = CreateFrame("Frame", "OmaUnitFrames");
+local updateAuraTooltips = OmaUFAuras.UpdateAuraTooltips;
+
+local UnitFrames = CreateFrame("Frame", "OmaUnitFrame", UIParent);
local M = {};
OmaUnitFrames = M;
local function initialize()
- local player = M.InitializePlayer(UIParent);
- --M.InitializePet(player);
- local target = M.InitializeTarget(UIParent);
- --M.InitializeToT(target);
- -- TODO boss frames, (arena frames)
+ UnitFrames:SetFrameStrata("LOW");
+ UnitFrames:SetPoint("CENTER");
+ UnitFrames:SetWidth(1);
+ UnitFrames:SetHeight(1);
+ local player = M.InitializePlayer(UnitFrames);
+ M.InitializePet(player);
+ local target = M.InitializeTarget(UnitFrames);
+ --M.InitializeToT(target); -- might not do this
+ M.InitializeBoss(UnitFrames);
end
local hidden = false;
if hidden then return end
hidden = true;
- for _, frame in pairs({PlayerFrame, TargetFrame, TargetFrameToT, PetFrame}) do
+ local frames = {PlayerFrame, TargetFrame, TargetFrameToT, PetFrame,
+ PlayerFrameAlternateManaBar, ComboFrame, PriestBarFrame, RuneFrame,
+ WarlockPowerFrame, MonkHarmonyBarFrame, PaladinPowerBarFrame,
+ MageArcaneChargesFrame, CastingBarFrame, PetCastingBarFrame};
+ for i = 1,MAX_BOSS_FRAMES do
+ --table.insert(frames, _G["Boss"..i.."TargetFrame"]);
+ --table.insert(frames, _G["Boss"..i.."TargetFrameHealthBar"]);
+ --table.insert(frames, _G["Boss"..i.."TargetFrameManaBar"]);
+ end
+ for _, frame in pairs(frames) do
frame:UnregisterAllEvents();
- frame.healthbar:UnregisterAllEvents();
- frame.manabar:UnregisterAllEvents();
+ if frame.healthbar then frame.healthbar:UnregisterAllEvents() end
+ if frame.manabar then frame.manabar:UnregisterAllEvents() end
if frame.spellbar then frame.spellbar:UnregisterAllEvents() end
if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end
frame:Hide();
end
- -- TODO create frames for class powers, currently using Simple Holy Power
- for _, frame in pairs({PlayerFrameAlternateManaBar, ComboFrame,
- PriestBarFrame, RuneFrame, WarlockPowerFrame, MonkHarmonyBarFrame,
- PaladinPowerBarFrame, MageArcaneChargesFrame}) do
- frame:UnregisterAllEvents();
- frame:Hide();
- end
-
-- from ShadowedUF, re-register vehicle events for default auras
PlayerFrame:RegisterEvent("PLAYER_ENTERING_WORLD");
PlayerFrame:RegisterEvent("UNIT_ENTERING_VEHICLE");
PlayerFrame:SetDontSavePosition(true);
end
+-- untested, not playing arena, from ShadowedUF
+local hiddenFrame = CreateFrame("Frame");
+hiddenFrame:Hide();
+local arenaHidden = false;
+local function hideArenaFrames()
+ -- not run if /reload happens in combat, may cause problems?
+ if not arenaHidden and not InCombatLockdown() then
+ arenaHidden = true;
+ ArenaEnemyFrames:UnregisterAllEvents();
+ ArenaEnemyFrames:SetParent(hiddenFrame);
+ ArenaPrepFrames:UnregisterAllEvents();
+ ArenaPrepFrames:SetParent(hiddenFrame);
+ SetCVar("showArenaEnemyFrames", 0, "SHOW_ARENA_ENEMY_FRAMES_TEXT");
+ end
+end
+
+local function updateTooltipFuncs()
+ -- let MoveAnything hook these to anchor tooltip elsewhere
+ M.UpdatePlayerTooltips();
+ M.UpdatePetTooltips();
+ M.UpdateTargetTooltips();
+ M.UpdateBossTooltips();
+ updateAuraTooltips();
+end
+
UnitFrames:RegisterEvent("PLAYER_LOGIN");
-UnitFrames:SetScript("OnEvent", function(self, event)
- if event == "PLAYER_LOGIN" then
+UnitFrames:RegisterEvent("PLAYER_ENTERING_WORLD");
+UnitFrames:RegisterEvent("ADDON_LOADED");
+UnitFrames:SetScript("OnEvent", function(self, event, addon)
+ if event == "PLAYER_ENTERING_WORLD" then
+ CTimerAfter(0.01, updateTooltipFuncs);
+ elseif event == "ADDON_LOADED" and addon == "Blizzard_ArenaUI" then
+ hideArenaFrames();
+ elseif event == "PLAYER_LOGIN" then
OmaUFLoadChar();
hideBlizzardFrames();
initialize();