All pastes #69452 Raw Edit

Anonymous

public text v1 · immutable
#69452 ·published 2006-06-22 23:06 UTC
rendered paste body
idActionBar = {}

function idActionBar:ActionButtonDown(b)
    b = getglobal('idActionButton'..b)
    if b:GetButtonState() == 'NORMAL' then
        b:SetButtonState('PUSHED')
    end
end

function idActionBar:ActionButtonUp(b)
    b = getglobal('idActionButton'..b)
    if b:GetButtonState() == 'PUSHED' then
        b:SetButtonState('NORMAL')
        UseAction(ActionButton_GetPagedID(b), 0, onSelf)
        if IsCurrentAction(ActionButton_GetPagedID(b)) then
            b:SetChecked(1)
        else
            b:SetChecked(0)
        end
    end
end

function idActionBar:addBar(name, first, last)
    local Button
    local totalWidth
    local totalHeight

    Button = getglobal(name..first)
    Button:ClearAllPoints()
    Button:SetPoint('CENTER', UIParent, 'CENTER')

    for i=first+1, last do
        Button = getglobal(name..i)
        Button:ClearAllPoints()
        Button:SetPoint('LEFT', getglobal(name..i-1), 'RIGHT')
    end

    totalWidth = ((last-first)+1)*getglobal(name..first):GetWidth()
    totalHeight = getglobal(name..first):GetHeight()

    return totalWidth, totalHeight
end

function idActionBar:alterButtonLooks(Button)
    bg = getglobal(Button:GetName()..'NormalTexture2') or getglobal(Button:GetName()..'NormalTexture')
    ic = getglobal(Button:GetName()..'Icon')
    bg:SetAlpha(0)
    ic:SetTexCoord(0.07, 0.93, 0.07, 0.93)
end

function idActionBar:giveStandardBackground(Frame)
    Frame:SetBackdrop({
        bgFile = 'Interface\\Tooltips\\UI-Tooltip-Background',
        edgeFile = '',
        tile = true,
        tileSize = 16,
        edgeSize = 0,
        insets = {
            left = 0,
            right = 0,
            top = 0,
            bottom = 0
        }
    })
    Frame:SetBackdropColor(0,0,0,0.4)
end

function idActionBar:setupMainbar()
    local Mainbar = CreateFrame('frame', 'idActionBarMainbar', UIParent)

    w,h = self:addBar('idActionButton',  1, 12)
    self:addBar('idActionButton', 13, 24)
    self:addBar('idActionButton', 25, 36)

    Mainbar:SetWidth(w)
    Mainbar:SetHeight(h*3)

    for i=1,36 do
        getglobal('idActionButton'..i):SetParent(Mainbar)
        self:alterButtonLooks(getglobal('idActionButton'..i))
    end

    idActionButton1:ClearAllPoints()
    idActionButton1:SetPoint('BOTTOMLEFT', Mainbar, 'BOTTOMLEFT')
    idActionButton13:ClearAllPoints()
    idActionButton13:SetPoint('BOTTOM', idActionButton1, 'TOP')
    idActionButton25:ClearAllPoints()
    idActionButton25:SetPoint('BOTTOM', idActionButton13, 'TOP')


    self:giveStandardBackground(Mainbar)
    Mainbar:ClearAllPoints()
    Mainbar:SetPoint('BOTTOM', UIParent, 'BOTTOM')
    Mainbar:Show()

    self.Mainbar = Mainbar
end

function idActionBar:setupPetbar()
    local PetClasses = {Priest=1,Warlock=1,Hunter=1,}
    if not PetClasses[UnitClass('player')] then return end
    local Petbar = CreateFrame('frame', 'idActionBarPetbar', UIParent)

    w,h = self:addBar('PetActionButton',  1, 10)

    Petbar:SetWidth(w)
    Petbar:SetHeight(h)

    for i=1,36 do
        Button = getglobal('PetActionButton'..i)
        if Button then
            Button:SetParent(Petbar)
            self:alterButtonLooks(Button)
        end
    end

    PetActionButton1:ClearAllPoints()
    PetActionButton1:SetPoint('BOTTOMLEFT', Petbar, 'BOTTOMLEFT')

    Petbar:SetScript("OnEvent", function()
        if event == 'PET_BAR_SHOWGRID' then
            Petbar:Show()
        elseif event == 'PET_BAR_HIDEGRID' then
            Petbar:Hide()
        end
    end)

    self:giveStandardBackground(Petbar)
    Petbar:ClearAllPoints()
    Petbar:SetPoint('BOTTOMLEFT', self.Mainbar, 'TOPLEFT')

    self.Petbar = Petbar
end

function idActionBar:Enable()
    local oldActionButton_HideGrid
    local Petbar

    oldActionButton_HideGrid = ActionButton_HideGrid
    ActionButton_HideGrid = function(Button)
        Button = Button or this
        if string.find(Button:GetName(), 'idActionButton') then
            idActionBar:alterButtonLooks(Button)
        end
        oldActionButton_HideGrid(Button)
    end

    MainMenuBar:Hide()
    self:setupMainbar()
    self:setupPetbar()
end

idActionBar:Enable()