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