annotate modules/ReAction_HideBlizzard/ReAction_HideBlizzard.lua @ 25:bf997ea151ca

yet another attempt to add missing files
author Flick <flickerstreak@gmail.com>
date Fri, 07 Mar 2008 22:19:03 +0000
parents
children 21bcaf8215ff
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 local _G = _G
flickerstreak@25 13
flickerstreak@25 14 -- module declaration
flickerstreak@25 15 local moduleID = "HideBlizzard"
flickerstreak@25 16 local module = ReAction:NewModule( moduleID )
flickerstreak@25 17
flickerstreak@25 18
flickerstreak@25 19 -- module methods
flickerstreak@25 20 function module:OnInitialize()
flickerstreak@25 21 self.db = ReAction:AcquireDBNamespace(moduleID)
flickerstreak@25 22 ReAction:RegisterDefaults(moduleID,"profile",
flickerstreak@25 23 {
flickerstreak@25 24 hide = false
flickerstreak@25 25 }
flickerstreak@25 26 )
flickerstreak@25 27
flickerstreak@25 28 self.hiddenFrame = CreateFrame("Frame")
flickerstreak@25 29 self.hiddenFrame:Hide()
flickerstreak@25 30
flickerstreak@25 31 -- disable the buttons to hide/show the blizzard multiaction bars
flickerstreak@25 32 -- see UIOptionsFrame.lua and .xml
flickerstreak@25 33 -- This is called every time the options panel is shown, after it is set up
flickerstreak@25 34 local disabledOptionsButtons = {
flickerstreak@25 35 _G["UIOptionsFrameCheckButton"..UIOptionsFrameCheckButtons["SHOW_MULTIBAR1_TEXT"].index],
flickerstreak@25 36 _G["UIOptionsFrameCheckButton"..UIOptionsFrameCheckButtons["SHOW_MULTIBAR2_TEXT"].index],
flickerstreak@25 37 _G["UIOptionsFrameCheckButton"..UIOptionsFrameCheckButtons["SHOW_MULTIBAR3_TEXT"].index],
flickerstreak@25 38 _G["UIOptionsFrameCheckButton"..UIOptionsFrameCheckButtons["SHOW_MULTIBAR4_TEXT"].index],
flickerstreak@25 39 _G["UIOptionsFrameCheckButton"..UIOptionsFrameCheckButtons["ALWAYS_SHOW_MULTIBARS_TEXT"].index],
flickerstreak@25 40 }
flickerstreak@25 41 hooksecurefunc("UIOptionsFrame_Load",
flickerstreak@25 42 function()
flickerstreak@25 43 if self.db.profile.hide then
flickerstreak@25 44 for _, f in pairs(disabledOptionsButtons) do
flickerstreak@25 45 f.disabled = true
flickerstreak@25 46 OptionsFrame_DisableCheckBox(f)
flickerstreak@25 47 end
flickerstreak@25 48 end
flickerstreak@25 49 end
flickerstreak@25 50 )
flickerstreak@25 51 end
flickerstreak@25 52
flickerstreak@25 53 function module:OnEnable()
flickerstreak@25 54 if self.db.profile.hide then
flickerstreak@25 55 self:HideAll(true)
flickerstreak@25 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@25 63 function module:OnProfileEnable()
flickerstreak@25 64 if self.db.profile.hide then
flickerstreak@25 65 self:HideAll(true)
flickerstreak@25 66 else
flickerstreak@25 67 self:ShowAll(true)
flickerstreak@25 68 end
flickerstreak@25 69 end
flickerstreak@25 70
flickerstreak@25 71
flickerstreak@25 72 local frames = {
flickerstreak@25 73 MainMenuBar,
flickerstreak@25 74 PetActionButton1,
flickerstreak@25 75 PetActionButton2,
flickerstreak@25 76 PetActionButton3,
flickerstreak@25 77 PetActionButton4,
flickerstreak@25 78 PetActionButton5,
flickerstreak@25 79 PetActionButton6,
flickerstreak@25 80 PetActionButton7,
flickerstreak@25 81 PetActionButton8,
flickerstreak@25 82 PetActionButton9,
flickerstreak@25 83 PetActionButton10,
flickerstreak@25 84 BonusActionBarFrame,
flickerstreak@25 85 ShapeshiftBarFrame,
flickerstreak@25 86 MultiBarLeft,
flickerstreak@25 87 MultiBarRight,
flickerstreak@25 88 MultiBarBottomLeft,
flickerstreak@25 89 MultiBarBottomRight,
flickerstreak@25 90 SlidingActionBarTexture0,
flickerstreak@25 91 SlidingActionBarTexture1,
flickerstreak@25 92 }
flickerstreak@25 93
flickerstreak@25 94 local hidden = { }
flickerstreak@25 95
flickerstreak@25 96 function module:HideAll( force )
flickerstreak@25 97 if not(self.db.profile.hide) or force then
flickerstreak@25 98 self.db.profile.hide = true
flickerstreak@25 99 -- the pet bar is a child of MainMenuBar, but can't be permanently hidden because it will
flickerstreak@25 100 -- break automatic pet bar show/hide. Need to reparent it instead.
flickerstreak@25 101 PetActionBarFrame:SetParent(UIParent)
flickerstreak@25 102 -- for some odd reason PetActionBarFrame has mouse input enabled even though it has no mouse
flickerstreak@25 103 -- input handlers. Because of this it can potentially trap mouse clicks from getting through
flickerstreak@25 104 -- to things behind it. It's not feasible to move it, either, since UIParent_ManageFramePositions()
flickerstreak@25 105 -- will move it back to its original position whenever it's called.
flickerstreak@25 106 PetActionBarFrame:EnableMouse(false)
flickerstreak@25 107
flickerstreak@25 108 for _, f in pairs(frames) do
flickerstreak@25 109 hidden[f] = hidden[f] or { parent = f:GetParent(), wasShown = f:IsShown() }
flickerstreak@25 110 f:SetParent(self.hiddenFrame)
flickerstreak@25 111 f:Hide()
flickerstreak@25 112 end
flickerstreak@25 113 end
flickerstreak@25 114 end
flickerstreak@25 115
flickerstreak@25 116 function module:ShowAll( force )
flickerstreak@25 117 if self.db.profile.hide or force then
flickerstreak@25 118 self.db.profile.hide = false
flickerstreak@25 119
flickerstreak@25 120 PetActionBarFrame:SetParent(MainMenuBar)
flickerstreak@25 121 for _, f in pairs(frames) do
flickerstreak@25 122 local h = hidden[f]
flickerstreak@25 123 if h then
flickerstreak@25 124 f:SetParent(h.parent)
flickerstreak@25 125 if h.wasShown then
flickerstreak@25 126 f:Show()
flickerstreak@25 127 end
flickerstreak@25 128 end
flickerstreak@25 129 end
flickerstreak@25 130 end
flickerstreak@25 131 end
flickerstreak@25 132
flickerstreak@25 133 function module:IsHidden()
flickerstreak@25 134 return self.db.profile.hide
flickerstreak@25 135 end
flickerstreak@25 136
flickerstreak@25 137 function module:SetHidden(h)
flickerstreak@25 138 if h then
flickerstreak@25 139 self:HideAll()
flickerstreak@25 140 else
flickerstreak@25 141 self:ShowAll()
flickerstreak@25 142 end
flickerstreak@25 143 end
flickerstreak@25 144
flickerstreak@25 145 function module:GetGlobalOptions()
flickerstreak@25 146 if self.globalOptions == nil then
flickerstreak@25 147 self.globalOptions = {
flickerstreak@25 148 hideBlizzard = {
flickerstreak@25 149 type = "toggle",
flickerstreak@25 150 handler = self,
flickerstreak@25 151 name = L["Hide Default Action Bars"],
flickerstreak@25 152 desc = L["Hide the default main bar and extra action bars"],
flickerstreak@25 153 get = "IsHidden",
flickerstreak@25 154 set = "SetHidden",
flickerstreak@25 155 disabled = function() return InCombatLockdown() end
flickerstreak@25 156 }
flickerstreak@25 157 }
flickerstreak@25 158 end
flickerstreak@25 159 return self.globalOptions
flickerstreak@25 160 end