annotate modules/ReAction_HideBlizzard/ReAction_HideBlizzard.lua @ 38:00f08528faaf

HideBlizzard now reroutes InterfaceOptions->ActionBars to InterfaceOptions->AddOns->ReAction if hide-blizzard-bars is checked
author Flick <flickerstreak@gmail.com>
date Thu, 03 Apr 2008 21:08:52 +0000
parents 27dde2743f43
children 2d1f35b1a873
rev   line source
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@25 28
flickerstreak@25 29 self.hiddenFrame = CreateFrame("Frame")
flickerstreak@25 30 self.hiddenFrame:Hide()
flickerstreak@25 31 end
flickerstreak@25 32
flickerstreak@25 33 function module:OnEnable()
flickerstreak@25 34 if self.db.profile.hide then
flickerstreak@25 35 self:HideAll(true)
flickerstreak@25 36 end
flickerstreak@30 37 ReAction:RegisterOptions("global", self, {
flickerstreak@30 38 hideBlizzard = {
flickerstreak@30 39 type = "toggle",
flickerstreak@30 40 handler = self,
flickerstreak@30 41 name = L["Hide Blizzard Action Bars"],
flickerstreak@30 42 desc = L["Hide the default main bar and extra action bars"],
flickerstreak@30 43 get = "IsHidden",
flickerstreak@30 44 set = function(info,value) self:SetHidden(value) end,
flickerstreak@30 45 disabled = InCombatLockdown
flickerstreak@30 46 }
flickerstreak@30 47 })
flickerstreak@38 48
flickerstreak@38 49 -- reroute blizzard action bar config to ReAction config window
flickerstreak@38 50 InterfaceOptionsActionBarsPanel:HookScript("OnShow",
flickerstreak@38 51 function()
flickerstreak@38 52 if module:IsHidden() then
flickerstreak@38 53 ReAction:ShowConfig()
flickerstreak@38 54 end
flickerstreak@38 55 end )
flickerstreak@25 56 end
flickerstreak@25 57
flickerstreak@25 58 function module:OnDisable()
flickerstreak@25 59 self:ShowAll(true)
flickerstreak@25 60 end
flickerstreak@25 61
flickerstreak@28 62 function module:OnProfileChanged()
flickerstreak@25 63 if self.db.profile.hide then
flickerstreak@28 64 module:HideAll(true)
flickerstreak@25 65 else
flickerstreak@28 66 module:ShowAll(true)
flickerstreak@25 67 end
flickerstreak@25 68 end
flickerstreak@25 69
flickerstreak@25 70 local frames = {
flickerstreak@25 71 MainMenuBar,
flickerstreak@31 72 PetActionBarFrame,
flickerstreak@25 73 BonusActionBarFrame,
flickerstreak@25 74 ShapeshiftBarFrame,
flickerstreak@25 75 MultiBarLeft,
flickerstreak@25 76 MultiBarRight,
flickerstreak@25 77 MultiBarBottomLeft,
flickerstreak@25 78 MultiBarBottomRight,
flickerstreak@25 79 SlidingActionBarTexture0,
flickerstreak@25 80 SlidingActionBarTexture1,
flickerstreak@25 81 }
flickerstreak@25 82
flickerstreak@25 83 local hidden = { }
flickerstreak@25 84
flickerstreak@25 85 function module:HideAll( force )
flickerstreak@25 86 if not(self.db.profile.hide) or force then
flickerstreak@25 87 self.db.profile.hide = true
flickerstreak@25 88 for _, f in pairs(frames) do
flickerstreak@25 89 hidden[f] = hidden[f] or { parent = f:GetParent(), wasShown = f:IsShown() }
flickerstreak@25 90 f:SetParent(self.hiddenFrame)
flickerstreak@25 91 f:Hide()
flickerstreak@25 92 end
flickerstreak@25 93 end
flickerstreak@25 94 end
flickerstreak@25 95
flickerstreak@25 96 function module:ShowAll( force )
flickerstreak@25 97 if self.db.profile.hide or force then
flickerstreak@25 98 self.db.profile.hide = false
flickerstreak@25 99
flickerstreak@25 100 for _, f in pairs(frames) do
flickerstreak@25 101 local h = hidden[f]
flickerstreak@25 102 if h then
flickerstreak@25 103 f:SetParent(h.parent)
flickerstreak@25 104 if h.wasShown then
flickerstreak@25 105 f:Show()
flickerstreak@25 106 end
flickerstreak@25 107 end
flickerstreak@25 108 end
flickerstreak@25 109 end
flickerstreak@25 110 end
flickerstreak@25 111
flickerstreak@25 112 function module:IsHidden()
flickerstreak@25 113 return self.db.profile.hide
flickerstreak@25 114 end
flickerstreak@25 115
flickerstreak@25 116 function module:SetHidden(h)
flickerstreak@25 117 if h then
flickerstreak@25 118 self:HideAll()
flickerstreak@25 119 else
flickerstreak@25 120 self:ShowAll()
flickerstreak@25 121 end
flickerstreak@25 122 end
flickerstreak@25 123