vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[

Bar1 = ActionButton1-12
Bar2 = MultiBarBottomLeft
Bar3 = MultiBarBottomRight
Bar4 = MultiBarRight
Bar5 = MultiBarLeft
Bar6 = ShapeshiftButton1-10
Bar7 = PetActionButton1-10
Bar8 = Bags
Bar9 = MicroButtons
Bar10 = BonusActionButton1-12

]]--

StaticPopupDialogs["BARTENDER2CONFIRM"] = { text = "Reset ALL settings?", button1 = "Yes", button2 = "No", timeout = 0, whileDead = 1, OnAccept = function() Bartender:ResetALL() end}

Bartender = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceHook-2.0", "AceDB-2.0", "AceConsole-2.0", "AceModuleCore-2.0")
Bartender:RegisterDB("BarDB")
Bartender:SetModuleMixins("AceEvent-2.0")

Bartender.version = "2.0." .. string.sub("$Revision: 11401 $", 12, -3)
Bartender.date = string.sub("$Date: 2006-09-19 22:35:24 +0300 (Tue, 19 Sep 2006) $", 8, 17)

Bartender:RegisterDefaults('profile', BT2Defaults )

local _G = getfenv(0)
local DBVersion = "Bar2DB-2"

function Bartender:OnEnable()
        self:RegisterEvent("UPDATE_BONUS_ACTIONBAR")
        self:Hook("ActionButton_ShowGrid")
        self:Hook("ActionButton_HideGrid")
        self:Hook("MultiActionBar_ShowAllGrids")
        self:Hook("MultiActionBar_HideAllGrids")
        self:Hook("UpdateTalentButton")
        self:Hook("MainMenuBar_UpdateKeyRing")
        self:MakeFrames()
        self:OnProfileEnable()
        self:ScheduleEvent(self.EnableAllBars, 10.0, self);
        self:Print("How may I serve you?")
end

function Bartender:EnableAllBars()
        SHOW_MULTI_ACTIONBAR_1 = 1
        SHOW_MULTI_ACTIONBAR_2 = 1
        SHOW_MULTI_ACTIONBAR_3 = 1
        SHOW_MULTI_ACTIONBAR_4 = 1
        MultiActionBar_Update()
        SetActionBarToggles(1,1,1,1)
end

function Bartender:OnProfileEnable()
        self:AllowMoving()
        if not self.db.profile.Extra[DBVersion] then
                self:ResetALL()
        end
        self:SetAllParents()
        self:SetupBars()
        self:ButtonHideCheck()
        self:ButtonScaleCheck()
        self:ButtonHotKeyCheck()
        self:ButtonAlphaCheck()
        self:ButtonNoCustomPositionCheck()
        self:ButtonZoomCheck()
        self:LoadAllPositions()
        self:UPDATE_BONUS_ACTIONBAR()
        MainMenuBar:Hide()
        MultiActionBar_Update()
        self:HideNormalTexture()
end

function Bartender:AllowMoving()
        MultiBarLeft:ClearAllPoints()
        MultiBarRight:ClearAllPoints()
        MultiBarBottomLeft:ClearAllPoints()
        MultiBarBottomRight:ClearAllPoints()
        for i,v in ipairs(AllButtons) do v:ClearAllPoints() end
end

function Bartender:MakeFrames()
        for i=1,10 do
                self:CreateFrame("Bar"..i)
        end
end

function Bartender:DefaultBars()
        for i=1,10 do
                _G["Bar"..i]:ClearAllPoints()
                _G["Bar"..i]:Show()
                _G["Bar"..i]:SetScale(1)
        end
        for i=1,12 do
                _G["Bar1Button"..i]:SetAlpha(1)
                _G["Bar2Button"..i]:SetAlpha(1)
                _G["Bar3Button"..i]:SetAlpha(1)
                _G["Bar4Button"..i]:SetAlpha(1)
                _G["Bar5Button"..i]:SetAlpha(1)
                _G["Bar10Button"..i]:SetAlpha(1)
        end
        for i=1,10 do
                _G["Bar6Button"..i]:SetAlpha(1)
                _G["Bar7Button"..i]:SetAlpha(1)
        end
        for i=1,5 do
                _G["Bar8Button"..i]:SetAlpha(1)
        end
        for i=1,8 do
                _G["Bar9Button"..i]:SetAlpha(1)
        end
        Bar1:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, -5)
        Bar2:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, 31)
        Bar3:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, 67)
        Bar4:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -41, 100)
        Bar5:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -77, 100)
        Bar6:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 20, 110)
        Bar7:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 20, 140)
        Bar8:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -190, 30)
        Bar9:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -205, -5)
        Bar10:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, -5)
        self.db.profile.Extra[DBVersion] = true
end

function Bartender:SetAllParents()
        for i=1,12 do
                _G["Bar1Button"..i]:SetParent("Bar1")
                _G["Bar10Button"..i]:SetParent("Bar10")
        end
                MultiBarBottomLeft:SetParent("Bar2")
                MultiBarBottomRight:SetParent("Bar3")
                MultiBarRight:SetParent("Bar4")
                MultiBarLeft:SetParent("Bar5")
        for i=1,10 do
                _G["Bar6Button"..i]:SetParent("Bar6")
                _G["Bar7Button"..i]:SetParent("Bar7")
        end
        for i=1,5 do
                _G["Bar8Button"..i]:SetParent("Bar8")
        end
        for i=1,8 do
                _G["Bar9Button"..i]:SetParent("Bar9")
        end
        KeyRingButton:SetParent("UIParent")
end

function Bartender:SetupBars()
        for i=1,10 do
                self["SetupBar"..i](self)
        end
end

-- for bars 1-5 + 10
function Bartender:SetupActionBars(bar)
        local BarString = bar:GetName()
        local Rows = self.db.profile[BarString].Rows
        local ButtonPerRow = math.floor(12 / Rows) -- just a precaution
        local Padding = self.db.profile[BarString].Padding
        bar:SetWidth(36 * ButtonPerRow + ((ButtonPerRow - 1) * Padding) + 8)
        bar:SetHeight(36 * Rows + ((Rows - 1) * Padding) + 8)
        for i=1,Rows do
                if i > 1 then
                        local FirstButton = (ButtonPerRow * (i - 1) + 1)
                        _G[BarString.."Button"..FirstButton]:ClearAllPoints()
                        _G[BarString.."Button"..FirstButton]:SetPoint("TOPLEFT", BarString.."Button"..(FirstButton - ButtonPerRow), "BOTTOMLEFT", 0, -Padding)
                end
                for k=(ButtonPerRow * (i - 1) + 2),(ButtonPerRow * i) do
                        _G[BarString.."Button"..k]:ClearAllPoints()
                        _G[BarString.."Button"..k]:SetPoint("BOTTOMLEFT", BarString.."Button"..k - 1, "BOTTOMRIGHT", Padding, 0)
                end
        end
        _G[BarString.."Button1"]:ClearAllPoints()
        _G[BarString.."Button1"]:SetPoint("TOPLEFT", BarString, "TOPLEFT", 5, -3)
        self:LoadPosition(bar)
end

function Bartender:SetupBar1()
        self:SetupActionBars(Bar1)
end

function Bartender:SetupBar2()
        self:SetupActionBars(Bar2)
end

function Bartender:SetupBar3()
        self:SetupActionBars(Bar3)
end

function Bartender:SetupBar4()
        self:SetupActionBars(Bar4)
end

function Bartender:SetupBar5()
        self:SetupActionBars(Bar5)
end

function Bartender:SetupBar6()
        local pad = self.db.profile.Bar6.Padding
        if self.db.profile.Bar6.Swap then
                Bar6:SetWidth(38)
                Bar6:SetHeight(308 + (pad * 9))
                for i=2,10 do
                        _G["Bar6Button"..i]:SetPoint("BOTTOMLEFT", "Bar6Button"..i - 1, "TOPLEFT", 0, pad)
                end
        else
                Bar6:SetWidth(308 + (pad * 9))
                Bar6:SetHeight(38)
                for i=2,10 do
                        _G["Bar6Button"..i]:SetPoint("BOTTOMLEFT", "Bar6Button"..i - 1, "BOTTOMRIGHT", pad, 0)
                end
        end
        Bar6Button1:SetPoint("BOTTOMLEFT", "Bar6", "BOTTOMLEFT", 5, 5)
        self:LoadPosition(Bar6)
end

function Bartender:SetupBar7()
        local pad = self.db.profile.Bar7.Padding
        if self.db.profile.Bar7.Swap then
                Bar7:SetWidth(38)
                Bar7:SetHeight(308 + (pad * 9))
                for i=2,10 do
                        _G["Bar7Button"..i]:SetPoint("BOTTOMLEFT", "Bar7Button"..i - 1, "TOPLEFT", 0, pad)
                end
        else
                Bar7:SetWidth(308 + (pad * 9))
                Bar7:SetHeight(38)
                for i=2,10 do
                        _G["Bar7Button"..i]:SetPoint("BOTTOMLEFT", "Bar7Button"..i - 1, "BOTTOMRIGHT", pad, 0)
                end
        end
        Bar7Button1:SetPoint("BOTTOMLEFT", "Bar7", "BOTTOMLEFT", 5, 5)
        self:LoadPosition(Bar7)
end

function Bartender:SetupBar8()
        local pad = self.db.profile.Bar8.Padding
        if self.db.profile.Bar8.Swap then
                Bar8:SetWidth(45)
                Bar8:SetHeight(193 + (pad *4))
                for i=2,5 do
                        _G["Bar8Button"..i]:SetPoint("BOTTOMLEFT", "Bar8Button"..i - 1, "TOPLEFT", 0, pad)
                end
        else
                Bar8:SetWidth(193 + (pad * 4))
                Bar8:SetHeight(45)
                for i=2,5 do
                        _G["Bar8Button"..i]:SetPoint("BOTTOMLEFT", "Bar8Button"..i - 1, "BOTTOMRIGHT", pad, 0)
                end
        end
        Bar8Button1:SetPoint("BOTTOMLEFT", "Bar8", "BOTTOMLEFT", 5, 5)
        self:LoadPosition(Bar8)
end

function Bartender:SetupBar9()
        local pad = self.db.profile.Bar9.Padding
        if self.db.profile.Bar9.Swap then
                Bar9:SetWidth(34)
                Bar9:SetHeight(302 + (pad * 7))
                for i=2,8 do
                        _G["Bar9Button"..i]:SetPoint("BOTTOMLEFT", "Bar9Button"..i - 1, "TOPLEFT", 0, pad - 21)
                end
        else
                Bar9:SetWidth(236 + (pad * 7))
                Bar9:SetHeight(43)
                for i=2,8 do
                        _G["Bar9Button"..i]:SetPoint("BOTTOMLEFT", "Bar9Button"..i - 1, "BOTTOMRIGHT", pad, 0)
                end
        end
        Bar9Button1:SetPoint("BOTTOMLEFT", "Bar9", "BOTTOMLEFT", 3, 4)
        self:LoadPosition(Bar9)
end

function Bartender:SetupBar10()
        self:SetupActionBars(Bar10)
end

function Bartender:ButtonHideCheck()
        for i=1,10 do
                if self.db.profile["Bar"..i].Hide then _G["Bar"..i]:Hide() end
        end
end

function Bartender:ButtonScaleCheck()
        for i=1,10 do
                _G["Bar"..i]:SetScale(self.db.profile["Bar"..i].Scale)
        end
end

function Bartender:ButtonHotKeyCheck()
        for i=1,12 do
                if self.db.profile.Bar1.HideHotKey then _G["Bar1Button"..i.."HK"]:Hide() end
                if self.db.profile.Bar2.HideHotKey then _G["Bar2Button"..i.."HK"]:Hide() end
                if self.db.profile.Bar3.HideHotKey then _G["Bar3Button"..i.."HK"]:Hide() end
                if self.db.profile.Bar4.HideHotKey then _G["Bar4Button"..i.."HK"]:Hide() end
                if self.db.profile.Bar5.HideHotKey then _G["Bar5Button"..i.."HK"]:Hide() end
                if self.db.profile.Bar10.HideHotKey then _G["Bar10Button"..i.."HK"]:Hide() end
        end
end

function Bartender:ButtonAlphaCheck()
        for i=1,12 do
                _G["Bar1Button"..i]:SetAlpha(self.db.profile.Bar1.Alpha)
                _G["Bar2Button"..i]:SetAlpha(self.db.profile.Bar2.Alpha)
                _G["Bar3Button"..i]:SetAlpha(self.db.profile.Bar3.Alpha)
                _G["Bar4Button"..i]:SetAlpha(self.db.profile.Bar4.Alpha)
                _G["Bar5Button"..i]:SetAlpha(self.db.profile.Bar5.Alpha)
                _G["Bar10Button"..i]:SetAlpha(self.db.profile.Bar10.Alpha)
        end
        for i=1,10 do
                _G["Bar6Button"..i]:SetAlpha(self.db.profile.Bar6.Alpha)
                _G["Bar7Button"..i]:SetAlpha(self.db.profile.Bar7.Alpha)
        end
        for i=1,5 do
                _G["Bar8Button"..i]:SetAlpha(self.db.profile.Bar8.Alpha)
        end
        for i=1,8 do
                _G["Bar9Button"..i]:SetAlpha(self.db.profile.Bar9.Alpha)
        end
end

function Bartender:ButtonNoCustomPositionCheck()
        if ((not self.db.profile.Bar1.PosX) and (not self.db.profile.Bar1.PosY)) then Bar1:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, -5) end
        if ((not self.db.profile.Bar2.PosX) and (not self.db.profile.Bar2.PosY)) then Bar2:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, 31) end
        if ((not self.db.profile.Bar3.PosX) and (not self.db.profile.Bar3.PosY)) then Bar3:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, 67) end
        if ((not self.db.profile.Bar4.PosX) and (not self.db.profile.Bar4.PosY)) then Bar4:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -41, 100) end
        if ((not self.db.profile.Bar5.PosX) and (not self.db.profile.Bar5.PosY)) then Bar5:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -77, 100) end
        if ((not self.db.profile.Bar6.PosX) and (not self.db.profile.Bar6.PosY)) then Bar6:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 20, 110) end
        if ((not self.db.profile.Bar7.PosX) and (not self.db.profile.Bar7.PosY)) then Bar7:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 20, 140) end
        if ((not self.db.profile.Bar8.PosX) and (not self.db.profile.Bar8.PosY)) then Bar8:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -190, 30) end
        if ((not self.db.profile.Bar9.PosX) and (not self.db.profile.Bar9.PosY)) then Bar9:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -205, -5) end
        if ((not self.db.profile.Bar10.PosX) and (not self.db.profile.Bar10.PosY)) then Bar10:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, -5) end
end

function Bartender:ButtonZoomCheck()
        if self.db.profile.Extra.HideBorder then
                for i,v in ipairs(AllIcons) do v:SetTexCoord(0.07,0.93,0.07,0.93) end
        else
                for i,v in ipairs(AllIcons) do v:SetTexCoord(0,1,0,1) end
        end
end

function Bartender:LoadAllPositions()
        for i=1,10 do
                if self.db.profile["Bar"..i].PosX and self.db.profile["Bar"..i].PosY then self:LoadPosition(_G["Bar"..i]) end
        end
end

function Bartender:CreateFrame(name, text)
        if not name then return end
        local frame = CreateFrame("Button", name, UIParent)
        frame:EnableMouse(false)
        frame:SetMovable(true)
        frame:RegisterForDrag("LeftButton")
        frame:SetWidth(10)
        frame:SetHeight(10)
        frame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 16, insets = {left = 5, right = 3, top = 3, bottom = 5},})
        frame:ClearAllPoints()
        frame:SetBackdropColor(0, 0, 0, 0)
        frame:SetBackdropBorderColor(0.5, 0.5, 0, 0)
        frame:SetPoint("CENTER", "UIParent", "CENTER", 0, 0)
        frame.Text = frame:CreateFontString(nil, "ARTWORK")
        frame.Text:SetFontObject(GameFontNormal)
        frame.Text:SetText(text)
        frame.Text:Show()
        frame.Text:ClearAllPoints()
        frame.Text:SetPoint("CENTER", name, "CENTER",0,0)
end

function Bartender:SavePosition(arg1)
        if not arg1 then return end
        local frame = arg1:GetName()
        local x,y = arg1:GetLeft(), arg1:GetBottom()
        local s = arg1:GetEffectiveScale()
        x,y = x*s,y*s
        self.db.profile[frame].PosX = x
        self.db.profile[frame].PosY = y
end

function Bartender:LoadPosition(arg1)
        if not arg1 then return end
        local frame = arg1:GetName()
        local x = self.db.profile[frame].PosX
        local y = self.db.profile[frame].PosY
        if ((not x) or (not y)) then return end
        local s = arg1:GetEffectiveScale()
        x,y = x/s,y/s
        arg1:ClearAllPoints()
        arg1:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", x, y)
end

function Bartender:HideBar(arg1)
        self.db.profile[arg1:GetName()].Hide = true
        arg1:Hide()
end

function Bartender:ShowBar(arg1)
        self.db.profile[arg1:GetName()].Hide = nil
        arg1:Show()
end

function Bartender:HideBorder()
        self.db.profile.Extra.HideBorder = true
        self:ButtonZoomCheck()
end

function Bartender:ShowBorder()
        self.db.profile.Extra.HideBorder = nil
        self:ButtonZoomCheck()
end

function Bartender:SwapOff(arg1)
        self.db.profile[arg1:GetName()].Swap = false
        self["Setup"..arg1:GetName()](self)
end

function Bartender:SwapOn(arg1)
        self.db.profile[arg1:GetName()].Swap = true
        self["Setup"..arg1:GetName()](self)
end

function Bartender:Rows(arg1,arg2)
        self.db.profile[arg1:GetName()].Rows = 12 /  math.floor(12 / arg2)
        self["Setup"..arg1:GetName()](self)
end

function Bartender:ShowHK(arg1)
        self.db.profile[arg1:GetName()].HideHotKey = nil
        for i=1,12 do
                _G[arg1:GetName().."Button"..i.."HK"]:Show()
        end
end

function Bartender:HideHK(arg1)
        self.db.profile[arg1:GetName()].HideHotKey = true
        for i=1,12 do
                _G[arg1:GetName().."Button"..i.."HK"]:Hide()
        end
end

function Bartender:Scale(arg1,arg2)
        arg1:SetScale(arg2)
        self.db.profile[arg1:GetName()].Scale = arg2    
        self:LoadPosition(arg1)
end

function Bartender:Alpha(arg1,arg2)
        if self.unlock then
                self:Print("Please lock your bars first")
                return
        elseif ((arg1 == Bar1) or (arg1 == Bar2) or (arg1 == Bar3) or (arg1 == Bar4) or (arg1 == Bar5) or (arg1 == Bar10)) then
                for i=1,12 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(arg2)
                end
                self.db.profile[arg1:GetName()].Alpha = arg2    
        elseif ((arg1 == Bar6) or (arg1 == Bar7)) then
                for i=1,10 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(arg2)
                end
                self.db.profile[arg1:GetName()].Alpha = arg2    
        elseif arg1 == Bar8 then
                for i=1,5 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(arg2)
                end
                self.db.profile[arg1:GetName()].Alpha = arg2    
        elseif arg1 == Bar9 then
                for i=1,8 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(arg2)
                end
                self.db.profile[arg1:GetName()].Alpha = arg2    
        end
end

function Bartender:Padding(arg1,arg2)
        self.db.profile[arg1:GetName()].Padding = arg2
        self["Setup"..arg1:GetName()](self)
end

function Bartender:ResetPadding(arg1)
        self.db.profile[arg1:GetName()].Padding = nil
        self["Setup"..arg1:GetName()](self)
end

function Bartender:ResetScale(arg1)
        arg1:SetScale(1)
        self.db.profile[arg1:GetName()].Scale = nil
        self:LoadPosition(arg1)
end

function Bartender:ResetAlpha(arg1)
        if self.unlock then
                self:Print("Please lock your bars first")
                return
        elseif ((arg1 == Bar1) or (arg1 == Bar2) or (arg1 == Bar3) or (arg1 == Bar4) or (arg1 == Bar5) or (arg1 == Bar10)) then
                for i=1,12 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(1)
                end
                self.db.profile[arg1:GetName()].Alpha = nil
        elseif ((arg1 == Bar6) or (arg1 == Bar7)) then
                for i=1,10 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(1)
                end
                self.db.profile[arg1:GetName()].Alpha = nil
        elseif arg1 == Bar8 then
                for i=1,5 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(1)
                end
                self.db.profile[arg1:GetName()].Alpha = nil
        elseif arg1 == Bar9 then
                for i=1,8 do
                        _G[arg1:GetName().."Button"..i]:SetAlpha(1)
                end
                self.db.profile[arg1:GetName()].Alpha = nil
        end
end

function Bartender:ResetPosition(arg1)
        self.db.profile[arg1:GetName()].PosX = nil
        self.db.profile[arg1:GetName()].PosY = nil
        arg1:ClearAllPoints()
        if arg1 == Bar1 then
                Bar1:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, -5)
        elseif arg1 == Bar2 then
                Bar2:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, 31)
        elseif arg1 == Bar3 then
                Bar3:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, 67)
        elseif arg1 == Bar4 then
                Bar4:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -41, 100)
        elseif arg1 == Bar5 then
                Bar5:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -77, 100)
        elseif arg1 == Bar6 then
                Bar6:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 20, 110)
        elseif arg1 == Bar7 then
                Bar7:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 20, 140)
        elseif arg1 == Bar8 then
            Bar8:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -190, 30)
        elseif arg1 == Bar9 then
            Bar9:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMRIGHT", -205, -5)
        elseif arg1 == Bar10 then
                Bar10:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", -5, -5)
        end
end

function Bartender:ResetBar(arg1)
        if self.unlock then
                self:Print("Please lock your bars first")
                return
        else
                self.db.profile[arg1:GetName()].Scale = nil
                self.db.profile[arg1:GetName()].Padding = nil
                self.db.profile[arg1:GetName()].Swap = nil
                self.db.profile[arg1:GetName()].Hide = nil
                arg1:Show()
                arg1:SetScale(1)
                if ((arg1 == Bar1) or (arg1 == Bar2) or (arg1 == Bar3) or (arg1 == Bar4) or (arg1 == Bar5) or (arg1 == Bar10)) then
                        self:ShowHK(arg1)
                end
                self:ResetAlpha(arg1)
                self:ResetPosition(arg1)
                self["Setup"..arg1:GetName()](self)
        end
end

function Bartender:ResetALL()
        self:Print("Creating new DB")
        self:ResetDB("profile")
        self:DefaultBars()
        self:SetupBars()
        self:ShowBorder()
        self:UPDATE_BONUS_ACTIONBAR()
        self:Lock()
end

function Bartender:LockButtons()
        if LOCK_ACTIONBAR == "1" then
                LOCK_ACTIONBAR = "0"
                Bartender:Print("ActionBar lock |cffffffcf[|r|cffff0000Off|cffffffcf]|r")
        else
                LOCK_ACTIONBAR = "1"
                Bartender:Print("ActionBar lock |cffffffcf[|r|cff00ff00On|cffffffcf]|r")
        end
end

function Bartender:Move()
        for i=1,10 do
                _G["Bar"..i]:EnableMouse(true)
                _G["Bar"..i]:SetScript("OnEnter", function() this:SetBackdropBorderColor(0.5, 0.5, 0, 1) end)
                _G["Bar"..i]:SetScript("OnLeave", function() this:SetBackdropBorderColor(0, 0, 0, 0) end)
                _G["Bar"..i]:SetScript("OnDragStart", function() this:StartMoving() this:SetBackdropBorderColor(0, 0, 0, 0) end)
                _G["Bar"..i]:SetScript("OnDragStop", function() this:StopMovingOrSizing() self:SavePosition(this) end)
                _G["Bar"..i]:SetBackdropColor(0, 1, 0, 0.5)
                _G["Bar"..i]:SetFrameLevel(3)
        end
        for i,v in ipairs(AllButtons) do v:SetAlpha(0.5) v:SetFrameLevel(2) end
        Bar1.Text:SetText("Bar1")
        Bar2.Text:SetText("Bar2")
        Bar3.Text:SetText("Bar3")
        Bar4.Text:SetText("Bar4")
        Bar5.Text:SetText("Bar5")
        Bar6.Text:SetText("Bar6 (Shapebar)")
        Bar7.Text:SetText("Bar7 (Petbar)")
        Bar8.Text:SetText("Bar8 (Bagbar)")
        Bar9.Text:SetText("Bar9 (Microbar)")
        Bar10.Text:SetText("Bar10 (Bonusbar)")
        self.unlock = true
        self:EnableAllBars()
end

function Bartender:Lock()
        for i=1,10 do
                _G["Bar"..i]:EnableMouse(false)
                _G["Bar"..i]:SetScript("OnEnter", function() self:DummyFunction() end)
                _G["Bar"..i]:SetScript("OnLeave", function() self:DummyFunction() end)
                _G["Bar"..i]:SetScript("OnDragStart", function() self:DummyFunction() end)
                _G["Bar"..i]:SetScript("OnDragStop", function() self:DummyFunction() end)
                _G["Bar"..i]:SetBackdropColor(0, 0, 0, 0)
                _G["Bar"..i]:SetBackdropBorderColor(0, 0, 0, 0)
                _G["Bar"..i].Text:SetText("")
                _G["Bar"..i]:SetFrameLevel(1)
        end
        for i,v in ipairs(AllButtons) do v:SetAlpha(self.db.profile.Bar8.Alpha) v:SetFrameLevel(2) end
        self.unlock = nil
end

function Bartender:DummyFunction()
end

function Bartender:ActionButton_ShowGrid(button)
        if ( not button ) then
                button = this;
        end
        button.showgrid = button.showgrid+1
        for i=1,12 do
                _G[button:GetName().."NormalTexture"]:SetVertexColor(0,0,0) 
                _G[button:GetName().."NormalTexture"]:SetAlpha(0.3)
        end
        button:Show()
end

function Bartender:ActionButton_HideGrid(button)
        if ( not button ) then
                button = this;
        end
        button.showgrid = button.showgrid-1
        if ( button.showgrid == 0 and not HasAction(ActionButton_GetPagedID(button)) ) then
                button:Hide()
                self:HideNormalTexture()
        end
end

function Bartender:MultiActionBar_ShowAllGrids()
        self.hooks["MultiActionBar_ShowAllGrids"].orig()
        for i=1,12 do
                _G["Bar1Button"..i]:Show()
                _G["Bar1Button"..i.."NT"]:SetVertexColor(0,0,0)
                _G["Bar1Button"..i.."NT"]:SetAlpha(0.3)
        end
        self:HideNormalTexture()
end

function Bartender:MultiActionBar_HideAllGrids()
                self.hooks["MultiActionBar_HideAllGrids"].orig()
                for i=1,12 do
                        local buttons = _G["Bar1Button"..i]
                        if ( not HasAction(ActionButton_GetPagedID(buttons)) ) then
                                buttons:Hide()
                        end
                end
        self:HideNormalTexture()
end

function Bartender:UpdateTalentButton()
end

function Bartender:MainMenuBar_UpdateKeyRing()
        KeyRingButton:Hide()
end

function Bartender:HideNormalTexture()
        for i,v in ipairs(AllNormalTextures) do v:SetAlpha(0) end
end

function Bartender:UPDATE_BONUS_ACTIONBAR()
        if self.db.profile.Bar10.NoSwap then 
                Bar10:Hide()
                Bar1:Show()
                CURRENT_ACTIONBAR_PAGE = 1
                ChangeActionBarPage()
                BonusActionBarFrame:Hide()
                return
        else
                local x = GetBonusBarOffset()
                if x == 3 then
                        Bar1:Hide()
                        if not self.db.profile.Bar10.Hide then
                                Bar10:Show()
                                BonusActionBarFrame:Show()
                        end
                        CURRENT_ACTIONBAR_PAGE = 9
                        ChangeActionBarPage()
                elseif x == 2 then
                        Bar1:Hide()
                        if not self.db.profile.Bar10.Hide then
                                Bar10:Show()
                                BonusActionBarFrame:Show()
                        end
                        CURRENT_ACTIONBAR_PAGE = 8
                        ChangeActionBarPage()
                elseif x == 1 then
                        Bar1:Hide()
                        if not self.db.profile.Bar10.Hide then
                                Bar10:Show()
                                BonusActionBarFrame:Show()
                        end
                        CURRENT_ACTIONBAR_PAGE = 7
                        ChangeActionBarPage()
                else
                        Bar10:Hide()
                        if not self.db.profile.Bar1.Hide then
                                Bar1:Show()
                                BonusActionBarFrame:Hide()
                        end
                        CURRENT_ACTIONBAR_PAGE = 1
                        ChangeActionBarPage()
                        BonusActionBarFrame:Hide()
                end
        end
end

Generated by GNU Enscript 1.6.5.90.