7cf4c4b - Add Ashvane and Orgozoa auras for mythic
[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 hider = CreateFrame("Frame");
52 hider:Hide();
53 hider:RegisterEvent("PLAYER_LOGIN");
54 hider:RegisterEvent("PLAYER_REGEN_ENABLED");
55 hider:SetScript("OnEvent", function(self, event)
56     if event == "PLAYER_REGEN_ENABLED" then
57         -- if CompactRaidFrameManager_UpdateOptionsFlowContainer was called in combat
58         -- couldn't hide the button
59         hideBlizzardRaidButton();
60     elseif event == "PLAYER_LOGIN" then
61         hideBlizzardRaid();
62     end
63 end);