1a61ccc - Add Ra-den aura
[wowui.git] / kehys / hideblizz.lua
1 -- hideblizz.lua
2 -- 2019 Aleksi Blinnikka
3 local _;
4 local InCombatLockdown = InCombatLockdown;
5 -- hiding Blizzard frames somewhat based on ShadowedUF
6 local function hideBlizzardRaidButton()
7     if InCombatLockdown() then return end
8     local manager = CompactRaidFrameManager;
9     -- remove show and unlock buttons from manager
10     manager.displayFrame.hiddenModeToggle:Hide();
11     manager.displayFrame.lockedModeToggle:Hide();
12 end
13
14 local hidden = false;
15 local function hideBlizzardRaid()
16     if hidden then return end
17     hidden = true;
18     local function hide()
19         if InCombatLockdown() then return end
20         CompactRaidFrameContainer:Hide();
21         local shown = CompactRaidFrameManager_GetSetting("IsShown");
22         if shown and shown ~= "0" then
23             CompactRaidFrameManager_SetSetting("IsShown", "0");
24         end
25     end
26
27     CompactRaidFrameContainer:UnregisterAllEvents();
28     -- there may still be frames created at startup getting events
29     for i=1,MAX_RAID_MEMBERS do
30         local frame = _G["CompactRaidFrame"..i];
31         if not frame then break end
32         frame:UnregisterAllEvents();
33     end
34     hooksecurefunc("CompactRaidFrameManager_UpdateShown", hide);
35     hide();
36     CompactRaidFrameContainer:HookScript("OnShow", hide);
37     hooksecurefunc("CompactRaidFrameManager_UpdateOptionsFlowContainer", hideBlizzardRaidButton);
38     hideBlizzardRaidButton();
39
40     -- hide focus frame
41     for _, frame in pairs({FocusFrame, FocusFrameToT, FocusFrameSpellBar}) do
42         frame:UnregisterAllEvents();
43         if frame.healthbar then frame.healthbar:UnregisterAllEvents() end
44         if frame.manabar then frame.manabar:UnregisterAllEvents() end
45         if frame.spellbar then frame.spellbar:UnregisterAllEvents() end
46         if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end
47         frame:Hide();
48     end
49 end
50
51 local uf_hidden = false;
52 local function hideBlizzardUnitFrames()
53     if uf_hidden then return end
54     uf_hidden = true;
55
56     local frames = {
57         PlayerFrame, PlayerFrameAlternateManaBar, PaladinPowerBarFrame,
58         WarlockPowerFrame, ComboFrame, PriestBarFrame, RuneFrame,
59         MonkHarmonyBarFrame, MageArcaneChargesFrame, CastingBarFrame,
60         PetFrame, PetCastingBarFrame, TargetFrame, TargetFrameToT,
61     };
62     for i = 1,MAX_BOSS_FRAMES do
63         table.insert(frames, _G["Boss"..i.."TargetFrame"]);
64         table.insert(frames, _G["Boss"..i.."TargetFrameHealthBar"]);
65         table.insert(frames, _G["Boss"..i.."TargetFrameManaBar"]);
66         -- keep boss frame powerBarAlt
67     end
68     for _, frame in pairs(frames) do
69         frame:UnregisterAllEvents();
70         if frame.healthbar then frame.healthbar:UnregisterAllEvents() end
71         if frame.manabar then frame.manabar:UnregisterAllEvents() end
72         if frame.spellbar then frame.spellbar:UnregisterAllEvents() end
73         --if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end
74         frame:Hide();
75     end
76
77     -- from ShadowedUF, re-register vehicle events for default auras
78     PlayerFrame:RegisterEvent("PLAYER_ENTERING_WORLD");
79     PlayerFrame:RegisterEvent("UNIT_ENTERING_VEHICLE");
80     PlayerFrame:RegisterEvent("UNIT_ENTERED_VEHICLE");
81     PlayerFrame:RegisterEvent("UNIT_EXITING_VEHICLE");
82     PlayerFrame:RegisterEvent("UNIT_EXITED_VEHICLE");
83     PlayerFrame:SetMovable(true);
84     PlayerFrame:SetUserPlaced(true);
85     PlayerFrame:SetDontSavePosition(true);
86 end
87
88 local hider = CreateFrame("Frame");
89 hider:Hide();
90 hider:RegisterEvent("PLAYER_LOGIN");
91 hider:RegisterEvent("PLAYER_REGEN_ENABLED");
92 hider:SetScript("OnEvent", function(self, event)
93     if event == "PLAYER_REGEN_ENABLED" then
94         -- if CompactRaidFrameManager_UpdateOptionsFlowContainer was called in combat
95         -- couldn't hide the button
96         hideBlizzardRaidButton();
97     elseif event == "PLAYER_LOGIN" then
98         hideBlizzardRaid();
99         hideBlizzardUnitFrames();
100     end
101 end);