e8f2d3b - Change bar texture, explicitly hide focus spell bar
[wowui.git] / OmaUF / UnitFrames.lua
1 -- UnitFrames.lua
2 local _;
3 local pairs = pairs;
4 local InCombatLockdown = InCombatLockdown;
5
6 local UnitFrames = CreateFrame("Frame", "OmaUnitFrames");
7
8 local M = {};
9 OmaUnitFrames = M;
10
11 local function initialize()
12     local player = M.InitializePlayer(UIParent);
13     M.InitializePet(player);
14     local target = M.InitializeTarget(UIParent);
15     --M.InitializeToT(target); -- might not do this
16     M.InitializeBoss(UIParent);
17     -- TODO boss frames, (arena frames)
18 end
19
20 local hidden = false;
21 local function hideBlizzardFrames()
22     if hidden then return end
23     hidden = true;
24
25     local frames = {PlayerFrame, TargetFrame, TargetFrameToT, PetFrame,
26         PlayerFrameAlternateManaBar, ComboFrame, PriestBarFrame, RuneFrame,
27         WarlockPowerFrame, MonkHarmonyBarFrame, PaladinPowerBarFrame,
28         MageArcaneChargesFrame};
29     for i = 1,MAX_BOSS_FRAMES do
30         table.insert(frames, _G["Boss"..i.."TargetFrame"]);
31         table.insert(frames, _G["Boss"..i.."TargetFrameHealthBar"]);
32         table.insert(frames, _G["Boss"..i.."TargetFrameManaBar"]);
33     end
34     for _, frame in pairs(frames) do
35         frame:UnregisterAllEvents();
36         if frame.healthbar then frame.healthbar:UnregisterAllEvents() end
37         if frame.manabar then frame.manabar:UnregisterAllEvents() end
38         if frame.spellbar then frame.spellbar:UnregisterAllEvents() end
39         if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end
40         frame:Hide();
41     end
42
43     -- TODO create frames for class powers, currently using Simple Holy Power
44     --for _, frame in pairs({PlayerFrameAlternateManaBar, ComboFrame,
45     --        PriestBarFrame, RuneFrame, WarlockPowerFrame, MonkHarmonyBarFrame,
46     --        PaladinPowerBarFrame, MageArcaneChargesFrame}) do
47     --    frame:UnregisterAllEvents();
48     --    frame:Hide();
49     --end
50
51     -- from ShadowedUF, re-register vehicle events for default auras
52     PlayerFrame:RegisterEvent("PLAYER_ENTERING_WORLD");
53     PlayerFrame:RegisterEvent("UNIT_ENTERING_VEHICLE");
54     PlayerFrame:RegisterEvent("UNIT_ENTERED_VEHICLE");
55     PlayerFrame:RegisterEvent("UNIT_EXITING_VEHICLE");
56     PlayerFrame:RegisterEvent("UNIT_EXITED_VEHICLE");
57     PlayerFrame:SetMovable(true);
58     PlayerFrame:SetUserPlaced(true);
59     PlayerFrame:SetDontSavePosition(true);
60 end
61
62 -- untested, not playing arena, from ShadowedUF
63 local hiddenFrame = CreateFrame("Frame");
64 hiddenFrame:Hide();
65 local arenaHidden = false;
66 local function hideArenaFrames()
67     -- not run if /reload happens in combat, may cause problems?
68     if not arenaHidden and not InCombatLockdown() then
69         arenaHidden = true;
70         ArenaEnemyFrames:UnregisterAllEvents();
71         ArenaEnemyFrames:SetParent(hiddenFrame);
72         ArenaPrepFrames:UnregisterAllEvents();
73         ArenaPrepFrames:SetParent(hiddenFrame);
74         SetCVar("showArenaEnemyFrames", 0, "SHOW_ARENA_ENEMY_FRAMES_TEXT");
75     end
76 end
77
78 UnitFrames:RegisterEvent("PLAYER_LOGIN");
79 UnitFrames:RegisterEvent("ADDON_LOADED");
80 UnitFrames:SetScript("OnEvent", function(self, event, addon)
81     if event == "PLAYER_LOGIN" then
82         OmaUFLoadChar();
83         hideBlizzardFrames();
84         initialize();
85     elseif event == "ADDON_LOADED" and addon == "Blizzard_ArenaUI" then
86         hideArenaFrames();
87     end
88 end);