local addonName, addonTable = ... addonTable.Funcs = {} local MyFuncs = addonTable.Funcs local f = CreateFrame("Frame", nil, UIParent) function MyFuncs.OnEvent(self, event, ...) if event == "ACTIONBAR_PAGE_CHANGED" then if GetActionBarPage() ~= 1 then ChangeActionBarPage(1) end elseif event == "UPDATE_BINDINGS" then MyFuncs.UpdateBindings() elseif event == "PLAYER_LOGIN" then BINDING_HEADER_EXTRABAR = "ExtraBar" BINDING_NAME_EXTRABARBUTTON1 = "Button 1" BINDING_NAME_EXTRABARBUTTON2 = "Button 2" BINDING_NAME_EXTRABARBUTTON3 = "Button 3" BINDING_NAME_EXTRABARBUTTON4 = "Button 4" BINDING_NAME_EXTRABARBUTTON5 = "Button 5" BINDING_NAME_EXTRABARBUTTON6 = "Button 6" BINDING_NAME_EXTRABARBUTTON7 = "Button 7" BINDING_NAME_EXTRABARBUTTON8 = "Button 8" BINDING_NAME_EXTRABARBUTTON9 = "Button 9" BINDING_NAME_EXTRABARBUTTON10 = "Button 10" BINDING_NAME_EXTRABARBUTTON11 = "Button 11" BINDING_NAME_EXTRABARBUTTON12 = "Button 12" elseif event == "ADDON_LOADED" and ... == addonName then ActionBarUpButton:Disable() ActionBarDownButton:Disable() PetActionBarFrame:HookScript("OnShow", function() MyFuncs.MovePetBar() end) MyFuncs.MovePetBar() --[[elseif event == "PLAYER_GAINS_VEHICLE_DATA" then self.hide = true elseif event == "PLAYER_LOSES_VEHICLE_DATA" then self.hide = false]] else MyFuncs.MovePetBar() end end function MyFuncs.MovePetBar() if UnitAffectingCombat("player") then f.needMove = true return end if StanceBarFrame:IsVisible() then PetActionBarFrame:SetPoint("BOTTOMLEFT", ExtraBarButton1, "TOPLEFT", 0, 4) else PetActionBarFrame:SetPoint("BOTTOMLEFT", StanceBarFrame, "BOTTOMLEFT", 0, 0) end end function MyFuncs.UpdateBindings() for i=1,12,1 do local button = _G["ExtraBarButton"..i] local id = button:GetID() local hotkey = _G[button:GetName().."HotKey"] local key = GetBindingKey("EXTRABARBUTTON"..i) local text = GetBindingText(key, "KEY_", 1) if text == "" then hotkey:SetText(RANGE_INDICATOR) hotkey:SetPoint("TOPLEFT", button, "TOPLEFT", 1, -2) hotkey:Hide() else hotkey:SetText(text) hotkey:SetPoint("TOPLEFT", button, "TOPLEFT", -2, -2) hotkey:Show() SetOverrideBindingClick(button, true, key, button:GetName(), "LeftButton") end end end f:RegisterEvent("ACTIONBAR_PAGE_CHANGED") f:RegisterEvent("ADDON_LOADED") f:RegisterEvent("PLAYER_ENTERING_WORLD") f:RegisterEvent("UPDATE_BINDINGS") f:RegisterEvent("PLAYER_LOGIN") f:RegisterEvent("PLAYER_LOSES_VEHICLE_DATA") f:RegisterEvent("PLAYER_GAINS_VEHICLE_DATA") f:SetScript("OnEvent", MyFuncs.OnEvent) f:SetScript("OnUpdate", function(self, elapsed) if self.needMove == true and UnitAffectingCombat("player") == false then MyFuncs.MovePetBar() self.needMove = false end --[[if self.hide == true and self:IsShown() == true and UnitAffectingCombat("player") == false then MyFuncs.HideBar() end if self.hide == false and self:IsShown() == false and UnitAffectingCombat("player") == false then MyFuncs.ShowBar() end]] for i=1,12,1 do if not UnitAffectingCombat("player") then if MainMenuBar:IsShown() == 1 and _G["ExtraBarButton"..i]:IsShown() == nil then _G["ExtraBarButton"..i]:Show() elseif MainMenuBar:IsShown() == nil and _G["ExtraBarButton"..i]:IsShown() == 1 then _G["ExtraBarButton"..i]:Hide() end end end --[[if not ( MainMenuBar:IsShown() == self:IsShown() ) and not UnitAffectingCombat("player") then MyFuncs.ToggleBar() end if MainMenuBar:IsShown() and not self:IsShown() and UnitAffectingCombat("player") == false then MyFuncs.ShowBar() elseif not MainMenuBar:IsShown() and self:IsShown() and UnitAffectingCombat("player") == false then MyFuncs.HideBar() end]] end) function MyFuncs.HideBar() for i=1,12,1 do _G["ExtraBarButton"..i]:Hide() end end function MyFuncs.ShowBar() for i=1,12,1 do _G["ExtraBarButton"..i]:Show() end end for id=13,24 do local b = CreateFrame("CheckButton", "ExtraBarButton"..(id-12), UIParent, "ActionBarButtonTemplate") b:SetSize(36*UIParent:GetScale(), 36*UIParent:GetScale()) b:SetAttribute("action", id) b:SetID(id) b:SetPoint("BOTTOMLEFT", _G["MultiBarBottomRightButton"..(id-12)], "TOPLEFT", 0, 4) b:Show() end