WoWInterface SVN Eui

[/] [Eui/] [element/] [actionbars/] [barpet.lua] - Rev 2

Compare with Previous | Blame | View Log

local E, C = unpack(select(2, ...)) -- Import Functions/Constants, Config, Locales

if not C["actionbar"].enable == true then return end

---------------------------------------------------------------------------
-- setup PetActionBar
---------------------------------------------------------------------------

local bar = CreateFrame("Frame", "EuiPetBar", EuiActionBarBackground, "SecureHandlerStateTemplate")
bar:ClearAllPoints()
bar:SetAllPoints(EuiPetActionBarBackground)

function E.PositionBarPet(self)
        local button            
        for i = 1, 10 do
                button = _G["PetActionButton"..i]
                button:ClearAllPoints()
                button:SetParent(EuiPetBar)
                EuiPetActionBarBackground:SetParent(EuiPetBar)
                button:SetFrameStrata("MEDIUM")
                button:SetSize(E.petbuttonsize, E.petbuttonsize)
                if i == 1 then
                        button:SetPoint("TOPLEFT", E.buttonspacing, -E.buttonspacing)
                else
                        if C["actionbar"].bottompetbar ~= true then
                                button:SetPoint("TOP", _G["PetActionButton"..(i - 1)], "BOTTOM", 0, -E.buttonspacing)
                        else
                                button:SetPoint("LEFT", _G["PetActionButton"..(i - 1)], "RIGHT", E.buttonspacing, 0)
                        end     
                end
                button:Show()
                self:SetAttribute("addchild", button)
        end
        
        --Setup Mouseover
        if C["actionbar"].rightbarmouseover == true and C["actionbar"].bottompetbar ~= true then
                EuiPetActionBarBackground:SetAlpha(0)
                EuiPetActionBarBackground:SetScript("OnEnter", function() RightBarMouseOver(1) end)
                EuiPetActionBarBackground:SetScript("OnLeave", function() RightBarMouseOver(0) end)
                EuiLineToPetActionBarBackground:SetScript("OnEnter", function() RightBarMouseOver(1) end)
                EuiLineToPetActionBarBackground:SetScript("OnLeave", function() RightBarMouseOver(0) end)
                
                for i=1, 10 do
                        local b = _G["PetActionButton"..i]
                        b:SetAlpha(0)
                        b:HookScript("OnEnter", function() RightBarMouseOver(1) end)
                        b:HookScript("OnLeave", function() RightBarMouseOver(0) end)
                end
        end
end
        
bar:RegisterEvent("PLAYER_LOGIN")
bar:RegisterEvent("PLAYER_CONTROL_LOST")
bar:RegisterEvent("PLAYER_CONTROL_GAINED")
bar:RegisterEvent("PLAYER_ENTERING_WORLD")
bar:RegisterEvent("PLAYER_FARSIGHT_FOCUS_CHANGED")
bar:RegisterEvent("PET_BAR_UPDATE")
bar:RegisterEvent("PET_BAR_UPDATE_USABLE")
bar:RegisterEvent("PET_BAR_UPDATE_COOLDOWN")
bar:RegisterEvent("PET_BAR_HIDE")
bar:RegisterEvent("UNIT_PET")
bar:RegisterEvent("UNIT_FLAGS")
bar:RegisterEvent("UNIT_AURA")
bar:SetScript("OnEvent", function(self, event, ...)
        if event == "PLAYER_LOGIN" then 
                -- bug reported by Affli on t12 BETA
                PetActionBarFrame.showgrid = 1 -- hack to never hide pet button. :X
                
                E.PositionBarPet(self)
                RegisterStateDriver(self, "visibility", "[pet,novehicleui,nobonusbar:5] show; hide")
                hooksecurefunc("PetActionBar_Update", E.EuiPetBarUpdate)
        elseif event == "PET_BAR_UPDATE" or event == "UNIT_PET" and arg1 == "player" 
        or event == "PLAYER_CONTROL_LOST" or event == "PLAYER_CONTROL_GAINED" or event == "PLAYER_FARSIGHT_FOCUS_CHANGED" or event == "UNIT_FLAGS"
        or arg1 == "pet" and (event == "UNIT_AURA") then
                E.EuiPetBarUpdate()
        elseif event == "PET_BAR_UPDATE_COOLDOWN" then
                PetActionBar_UpdateCooldowns()
        else
                E.StylePet()
        end
end)

Compare with Previous | Blame