flickerstreak@25
|
1 --[[
|
flickerstreak@25
|
2 ReAction 'Hide Blizzard' module
|
flickerstreak@25
|
3
|
flickerstreak@25
|
4 Hides Blizzard action bars. This hides the extra action bars, stance bar, pet bar, and
|
flickerstreak@25
|
5 main menu bar, which in turn hides the experience bar, bag bar, micro menu bar, and lag meter.
|
flickerstreak@25
|
6
|
flickerstreak@25
|
7 --]]
|
flickerstreak@25
|
8
|
flickerstreak@25
|
9 -- local imports
|
flickerstreak@25
|
10 local ReAction = ReAction
|
flickerstreak@25
|
11 local L = ReAction.L
|
flickerstreak@25
|
12
|
flickerstreak@25
|
13 -- module declaration
|
flickerstreak@25
|
14 local moduleID = "HideBlizzard"
|
flickerstreak@25
|
15 local module = ReAction:NewModule( moduleID )
|
flickerstreak@25
|
16
|
flickerstreak@25
|
17
|
flickerstreak@25
|
18 -- module methods
|
flickerstreak@25
|
19 function module:OnInitialize()
|
flickerstreak@28
|
20 self.db = ReAction.db:RegisterNamespace( moduleID,
|
flickerstreak@25
|
21 {
|
flickerstreak@28
|
22 profile = {
|
flickerstreak@28
|
23 hide = false
|
flickerstreak@28
|
24 }
|
flickerstreak@25
|
25 }
|
flickerstreak@25
|
26 )
|
flickerstreak@28
|
27 self.db.RegisterCallback(self,"OnProfileChanged")
|
flickerstreak@43
|
28 self.db.RegisterCallback(self,"OnProfileReset","OnProfileChanged")
|
flickerstreak@25
|
29
|
flickerstreak@25
|
30 self.hiddenFrame = CreateFrame("Frame")
|
flickerstreak@25
|
31 self.hiddenFrame:Hide()
|
flickerstreak@25
|
32 end
|
flickerstreak@25
|
33
|
flickerstreak@25
|
34 function module:OnEnable()
|
flickerstreak@25
|
35 if self.db.profile.hide then
|
flickerstreak@25
|
36 self:HideAll(true)
|
flickerstreak@25
|
37 end
|
flickerstreak@30
|
38 ReAction:RegisterOptions("global", self, {
|
flickerstreak@30
|
39 hideBlizzard = {
|
flickerstreak@30
|
40 type = "toggle",
|
flickerstreak@30
|
41 handler = self,
|
flickerstreak@30
|
42 name = L["Hide Blizzard Action Bars"],
|
flickerstreak@30
|
43 desc = L["Hide the default main bar and extra action bars"],
|
flickerstreak@30
|
44 get = "IsHidden",
|
flickerstreak@30
|
45 set = function(info,value) self:SetHidden(value) end,
|
flickerstreak@30
|
46 disabled = InCombatLockdown
|
flickerstreak@30
|
47 }
|
flickerstreak@30
|
48 })
|
flickerstreak@38
|
49
|
flickerstreak@38
|
50 -- reroute blizzard action bar config to ReAction config window
|
flickerstreak@38
|
51 InterfaceOptionsActionBarsPanel:HookScript("OnShow",
|
flickerstreak@38
|
52 function()
|
flickerstreak@41
|
53 if module:IsEnabled() and module:IsHidden() then
|
flickerstreak@38
|
54 ReAction:ShowConfig()
|
flickerstreak@38
|
55 end
|
flickerstreak@38
|
56 end )
|
flickerstreak@25
|
57 end
|
flickerstreak@25
|
58
|
flickerstreak@25
|
59 function module:OnDisable()
|
flickerstreak@25
|
60 self:ShowAll(true)
|
flickerstreak@25
|
61 end
|
flickerstreak@25
|
62
|
flickerstreak@28
|
63 function module:OnProfileChanged()
|
flickerstreak@25
|
64 if self.db.profile.hide then
|
flickerstreak@28
|
65 module:HideAll(true)
|
flickerstreak@25
|
66 else
|
flickerstreak@28
|
67 module:ShowAll(true)
|
flickerstreak@25
|
68 end
|
flickerstreak@25
|
69 end
|
flickerstreak@25
|
70
|
flickerstreak@25
|
71 local frames = {
|
flickerstreak@25
|
72 MainMenuBar,
|
flickerstreak@25
|
73 MultiBarLeft,
|
flickerstreak@25
|
74 MultiBarRight,
|
flickerstreak@25
|
75 MultiBarBottomLeft,
|
flickerstreak@25
|
76 MultiBarBottomRight,
|
flickerstreak@54
|
77 -- possess bar frame needs to be pulled out separately: stash its children away
|
flickerstreak@54
|
78 PossessBarLeft,
|
flickerstreak@54
|
79 PossessBarRight,
|
flickerstreak@54
|
80 PossessButton1,
|
flickerstreak@54
|
81 PossessButton2
|
flickerstreak@25
|
82 }
|
flickerstreak@25
|
83
|
flickerstreak@25
|
84 local hidden = { }
|
flickerstreak@25
|
85
|
flickerstreak@25
|
86 function module:HideAll( force )
|
flickerstreak@25
|
87 if not(self.db.profile.hide) or force then
|
flickerstreak@25
|
88 self.db.profile.hide = true
|
flickerstreak@25
|
89 for _, f in pairs(frames) do
|
flickerstreak@25
|
90 hidden[f] = hidden[f] or { parent = f:GetParent(), wasShown = f:IsShown() }
|
flickerstreak@25
|
91 f:SetParent(self.hiddenFrame)
|
flickerstreak@25
|
92 f:Hide()
|
flickerstreak@25
|
93 end
|
flickerstreak@25
|
94 end
|
flickerstreak@54
|
95 PossessBarFrame:SetParent(UIParent)
|
flickerstreak@54
|
96 PossessBarFrame:EnableMouse(false)
|
flickerstreak@25
|
97 end
|
flickerstreak@25
|
98
|
flickerstreak@25
|
99 function module:ShowAll( force )
|
flickerstreak@54
|
100 PossessBarFrame:EnableMouse(true)
|
flickerstreak@54
|
101 PossessBarFrame:SetParent(MainMenuBar)
|
flickerstreak@25
|
102 if self.db.profile.hide or force then
|
flickerstreak@25
|
103 self.db.profile.hide = false
|
flickerstreak@25
|
104
|
flickerstreak@25
|
105 for _, f in pairs(frames) do
|
flickerstreak@25
|
106 local h = hidden[f]
|
flickerstreak@25
|
107 if h then
|
flickerstreak@25
|
108 f:SetParent(h.parent)
|
flickerstreak@25
|
109 if h.wasShown then
|
flickerstreak@25
|
110 f:Show()
|
flickerstreak@25
|
111 end
|
flickerstreak@25
|
112 end
|
flickerstreak@25
|
113 end
|
flickerstreak@25
|
114 end
|
flickerstreak@25
|
115 end
|
flickerstreak@25
|
116
|
flickerstreak@25
|
117 function module:IsHidden()
|
flickerstreak@25
|
118 return self.db.profile.hide
|
flickerstreak@25
|
119 end
|
flickerstreak@25
|
120
|
flickerstreak@25
|
121 function module:SetHidden(h)
|
flickerstreak@25
|
122 if h then
|
flickerstreak@25
|
123 self:HideAll()
|
flickerstreak@25
|
124 else
|
flickerstreak@25
|
125 self:ShowAll()
|
flickerstreak@25
|
126 end
|
flickerstreak@25
|
127 end
|
flickerstreak@25
|
128
|