vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
-- Reposition stuff
function CT_BottomBar_Enable()
        CT_BottomBarFrame:Show();
        CT_BottomBar_Enabled[UnitName("player")] = 1;
        -- Bags
        MainMenuBarBackpackButton:ClearAllPoints();
        MainMenuBarBackpackButton:SetPoint("TOPRIGHT", "CT_BottomBarFrameBags", "TOPRIGHT", -6, -4);
        
        -- Mini Buttons
        CharacterMicroButton:ClearAllPoints();
        CharacterMicroButton:SetPoint("TOPLEFT", "CT_BottomBarFrameMiniButtons", "TOPLEFT", 12, 17);
        
        -- Up & Down buttons
        ActionBarUpButton:ClearAllPoints();
        ActionBarDownButton:ClearAllPoints();
        ActionBarUpButton:SetPoint("TOPLEFT", "CT_BottomBarFrameBarUpDown", "TOPLEFT", -6, 4);
        ActionBarDownButton:SetPoint("TOPLEFT", "CT_BottomBarFrameBarUpDown", "TOPLEFT", -6, -15);
        
        -- Action bar
        ActionButton1:ClearAllPoints();
        ActionButton1:SetPoint("TOPLEFT", "CT_BottomBarFrameBar", "TOPLEFT", 7, -4);
        
        -- Bonus Action Bar
        BonusActionButton1:ClearAllPoints();
        BonusActionButton1:SetPoint("TOPLEFT", "CT_BottomBarFrameBar", "TOPLEFT", 7, -4);
        
        -- Latency
        MainMenuBarPerformanceBar:ClearAllPoints();
        MainMenuBarPerformanceBar:SetPoint("TOPRIGHT", "MainMenuBarPerformanceBarFrame", "TOPRIGHT", 0, 8)
        MainMenuBarPerformanceBarFrame:ClearAllPoints();
        MainMenuBarPerformanceBarFrame:SetHeight(45);
        MainMenuBarPerformanceBarFrame:SetPoint("TOPLEFT", "CT_BottomBarFrameLatency", "TOPLEFT", 10, 3);
        
        -- Action Bar Number
        MainMenuBarPageNumber:ClearAllPoints();
        MainMenuBarPageNumber:SetPoint("TOPLEFT", "CT_BottomBarFrameBarNumber", "TOPLEFT", 4, -16)
        
        -- Experience Bar
        MainMenuExpBar:ClearAllPoints();
        MainMenuExpBar:SetPoint("TOPLEFT", "CT_BottomBarFrameXP", "TOPLEFT", 0, -1);
        
        -- Main bar (Hide it)
        MainMenuBar:ClearAllPoints();
        MainMenuBar:SetPoint("TOP", "UIParent", "BOTTOM");
        
        for k, v in CT_BottomBar_HiddenFrames[UnitName("player")] do
                this = getglobal("CT_BottomBarFrame" .. k);
                if ( getglobal("CT_BottomBarFrame" .. k).GetScript ) then
                        getglobal("CT_BottomBarFrame" .. k):GetScript("OnHide")();
                end
                getglobal("CT_BottomBarFrame" .. k):Hide();
        end
        
        -- Left Gryphon
        CT_BottomBarFrameGryphonsFrameLeft:ClearAllPoints();
        CT_BottomBarFrameGryphonsFrameLeft:SetPoint("BOTTOMRIGHT", "ActionButton1", "BOTTOMLEFT", 25, -5);
        
        -- Right Gryphon
        CT_BottomBarFrameGryphonsFrameRight:ClearAllPoints();
        CT_BottomBarFrameGryphonsFrameRight:SetPoint("BOTTOMLEFT", "MainMenuBarBackpackButton", "BOTTOMRIGHT", -26, -2);
        
        if ( CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] ) then
                CT_BottomBar_RotateMiniButtons(1);
        end
        if ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] ) then
                CT_BottomBar_RotateBars(1);
        end
        if ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] ) then
                CT_BottomBar_RotateBags(1);
        end
        if ( CT_BottomBar_HiddenFrames[UnitName("player")]["Bags"] ) then
                MainMenuBarBackpackButton:ClearAllPoints();
                MainMenuBarBackpackButton:SetPoint("TOP", "UIParent", "BOTTOM", 0, -100)
        end
        CT_BottomBar_HideBars(CT_BottomBar_HiddenFrames[UnitName("player")]["Class"]);
        CT_BottomBar_CheckLeftGryphon();
        CT_BottomBar_CheckRightGryphon();
end

function CT_BottomBar_Disable()
        CT_BottomBarFrame:Hide();
        
        CT_BottomBar_Enabled[UnitName("player")] = nil;
        
        -- Main bar (Show it)
        MainMenuBar:ClearAllPoints();
        MainMenuBar:SetPoint("BOTTOM", "UIParent", "BOTTOM");
        
        -- Bags
        MainMenuBarBackpackButton:ClearAllPoints();
        MainMenuBarBackpackButton:SetPoint("BOTTOMRIGHT", "MainMenuBarArtFrame", "BOTTOMRIGHT", -6, 2);
        local tbl = {
                [0] = "MainMenuBarBackpackButton",
                "CharacterBag0Slot",
                "CharacterBag1Slot",
                "CharacterBag2Slot",
                "CharacterBag3Slot"
        };
        for i = 1, 4, 1 do
                getglobal(tbl[i]):ClearAllPoints();
                getglobal(tbl[i]):SetPoint("RIGHT", tbl[i-1], "LEFT", -5, 0);
        end
        
        -- Mini Buttons
        CharacterMicroButton:ClearAllPoints();
        CharacterMicroButton:SetPoint("BOTTOMLEFT", "MainMenuBarArtFrame", "BOTTOMLEFT", 552, 2);
        
        -- Up & Down buttons
        ActionBarUpButton:ClearAllPoints();
        ActionBarDownButton:ClearAllPoints();
        ActionBarUpButton:SetPoint("CENTER", "MainMenuBarArtFrame", "TOPLEFT", 522, -22);
        ActionBarDownButton:SetPoint("CENTER", "MainMenuBarArtFrame", "TOPLEFT", 522, -42);
        
        -- Action bar
        ActionButton1:ClearAllPoints();
        ActionButton1:SetPoint("BOTTOMLEFT", "MainMenuBarArtFrame", "BOTTOMLEFT", 8, 4);
        
        -- Bonus Action bar
        BonusActionButton1:ClearAllPoints();
        BonusActionButton1:SetPoint("BOTTOMLEFT", "BonusActionBarFrame", "BOTTOMLEFT", 5, 4);
        
        -- Experience Bar
        MainMenuExpBar:ClearAllPoints();
        MainMenuExpBar:SetPoint("TOP", "MainMenuBar", "TOP");
        
        -- Latency
        MainMenuBarPerformanceBarFrame:ClearAllPoints();
        MainMenuBarPerformanceBarFrame:SetPoint("BOTTOMRIGHT", "MainMenuExpBar", "BOTTOMRIGHT", -227, -50);
        MainMenuBarPerformanceBarFrame:SetHeight(64);
        MainMenuBarPerformanceBar:ClearAllPoints();
        MainMenuBarPerformanceBar:SetPoint("TOPRIGHT", "MainMenuBarPerformanceBarFrame", "TOPRIGHT");
        
        -- Action Bar Number
        MainMenuBarPageNumber:ClearAllPoints();
        MainMenuBarPageNumber:SetPoint("CENTER", "MainMenuBarArtFrame", "CENTER", 30, -5)

        -- Bonus Action Bar
        BonusActionBarFrame:ClearAllPoints();
        BonusActionBarFrame:SetPoint("TOPLEFT", "MainMenuBar", "BOTTOMLEFT", 40, 0);
        
        -- Left Gryphon
        MainMenuBarLeftEndCap:ClearAllPoints();
        MainMenuBarLeftEndCap:SetPoint("BOTTOM", "MainMenuBarArtFrame", "BOTTOM", -544, 0);
        
        -- Right Gryphon
        MainMenuBarRightEndCap:ClearAllPoints();
        MainMenuBarRightEndCap:SetPoint("BOTTOM", "MainMenuBarArtFrame", "BOTTOM", 544, 0);
        
        -- Shwo or hide pet texture
        if ( CT_BottomBar_HiddenFrames[UnitName("player")]["Class"] or CT_BottomBar_HiddenFrames[UnitName("player")]["ClassBackground"] ) then
                CT_BottomBar_HideTextures(1);
        else
                CT_BottomBar_HideTextures();
        end
        
        -- Show stuff that we might be hiding when it's enabled
        MainMenuBarBackpackButton:Show();
        CharacterBag0Slot:Show();
        CharacterBag1Slot:Show();
        CharacterBag2Slot:Show();
        CharacterBag3Slot:Show();
        
        CharacterMicroButton:Show();
        SpellbookMicroButton:Show();
        if ( UnitLevel("player") >= 10 ) then
                TalentMicroButton:Show();
        end
        QuestLogMicroButton:Show();
        SocialsMicroButton:Show();
        WorldMapMicroButton:Show();
        MainMenuMicroButton:Show();
        HelpMicroButton:Show();
        
        MainMenuBarPageNumber:Show();
        
        ActionBarUpButton:Show();
        ActionBarDownButton:Show();
        
        MainMenuBarPerformanceBarFrame:Show();
        MainMenuBarPerformanceBar:Show();
        
        MainMenuExpBar:Show();
        
        for i = 1, 12, 1 do
                getglobal("ActionButton" .. i):Show();
                getglobal("BonusActionButton" .. i):Show();
        end
        if ( GetBonusBarOffset() > 0 ) then
                BonusActionBarFrame.mode = "hide";
                BonusActionBarFrame.state = "bottom";
                ShowBonusActionBar();
        end
        for i = 2, 12, 1 do
                getglobal("ActionButton" .. i):ClearAllPoints();
                getglobal("ActionButton" .. i):SetPoint("LEFT", "ActionButton" .. i-1, "RIGHT", 6, 0);
                getglobal("BonusActionButton" .. i):ClearAllPoints();
                getglobal("BonusActionButton" .. i):SetPoint("LEFT", "BonusActionButton" .. i-1, "RIGHT", 6, 0);
        end
        tbl = {
                [0] = "CharacterMicroButton",
                "SpellbookMicroButton",
                "TalentMicroButton",
                "QuestLogMicroButton",
                "SocialsMicroButton",
                "WorldMapMicroButton",
                "MainMenuMicroButton",
                "HelpMicroButton"
        };
        for i = 1, 7, 1 do
                getglobal(tbl[i]):ClearAllPoints();
                getglobal(tbl[i]):SetPoint("LEFT", tbl[i-1], "RIGHT", -3, 0);
        end
        
        if ( CT_BottomBar_HiddenFrames[UnitName("player")]["Class"]  ) then
                CT_BottomBar_HideBars(1);
        else
                CT_BottomBar_HideBars();
        end
        
        CT_BottomBar_CheckLeftGryphon();
        CT_BottomBar_CheckRightGryphon();
        
end

CT_AddMovable("CT_BottomBarFrameXPDrag", "Experience Bar", "TOPLEFT", "TOPLEFT", "CT_BottomBarFrame", 14, 28, function(status)
        if ( status and ( not CT_BottomBar_HiddenFrames[UnitName("player")] or not CT_BottomBar_HiddenFrames[UnitName("player")]["XP"] ) ) then
                CT_BottomBarFrameXPDrag:Show()
        else
                CT_BottomBarFrameXPDrag:Hide();
        end
end);

CT_AddMovable("CT_BottomBarFrameBagsDrag", "Bags Bar", "TOPLEFT", "TOPLEFT", "CT_BottomBarFrame", 823, 18, function(status)
        if ( status and ( not CT_BottomBar_HiddenFrames[UnitName("player")] or not CT_BottomBar_HiddenFrames[UnitName("player")]["Bags"] ) ) then
                CT_BottomBarFrameBagsDrag:Show()
        else
                CT_BottomBarFrameBagsDrag:Hide();
        end
end, function()
        if ( CT_BottomBar_RotatedFrames[UnitName("player")] and CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] ) then
                CT_BottomBar_RotateBags();
        end
end);

CT_AddMovable("CT_BottomBarFrameMiniButtonsDrag", "Menu Buttons", "TOPLEFT", "TOPLEFT", "CT_BottomBarFrame", 566, 18, function(status)
        if ( status and ( not CT_BottomBar_HiddenFrames[UnitName("player")] or not CT_BottomBar_HiddenFrames[UnitName("player")]["MiniButtons"] ) ) then
                CT_BottomBarFrameMiniButtonsDrag:Show();
        else
                CT_BottomBarFrameMiniButtonsDrag:Hide();
        end
end, function()
        if ( CT_BottomBar_RotatedFrames[UnitName("player")] and CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] ) then
                CT_BottomBar_RotateMiniButtons();
        end
end);

CT_AddMovable("CT_BottomBarFrameLatencyDrag", "Latency Meter", "TOPLEFT", "TOPLEFT", "CT_BottomBarFrame", 784, 18, function(status)
        if ( status and ( not CT_BottomBar_HiddenFrames[UnitName("player")] or not CT_BottomBar_HiddenFrames[UnitName("player")]["Latency"] ) ) then
                CT_BottomBarFrameLatencyDrag:Show()
        else
                CT_BottomBarFrameLatencyDrag:Hide();
        end
end);

CT_AddMovable("CT_BottomBarFrameBarDrag", "Main Hotbar", "TOPLEFT", "TOPLEFT", "CT_BottomBarFrame", 23, 18, function(status)
        if ( status and ( not CT_BottomBar_HiddenFrames[UnitName("player")] or not CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbar"] ) ) then
                CT_BottomBarFrameBarDrag:Show()
        else
                CT_BottomBarFrameBarDrag:Hide();
        end
end, function()
        if ( CT_BottomBar_RotatedFrames[UnitName("player")] and CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] ) then
                CT_BottomBar_RotateBars();
        end
end);

-- Globals
CT_BottomBar_EnableCBs = { };
CT_BottomBar_HiddenFrames = { };
CT_BottomBar_Enabled = { };
CT_BottomBar_RotatedFrames = { };

tinsert(UISpecialFrames, "CT_BottomBar_OptionsFrame");

function CT_BottomBar_RotateBags(force)
        if ( ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] and not force ) or ( force or 0 ) == -1 ) then
                CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] = nil;
                if ( not CT_BottomBar_HiddenFrames[UnitName("player")]["BagsBackground"] ) then
                        CT_BottomBarFrameBagsBackground:Show();
                else
                        CT_BottomBarFrameBagsBackground:Hide();
                end
                MainMenuBarBackpackButton:ClearAllPoints();
                MainMenuBarBackpackButton:SetPoint("TOPRIGHT", "CT_BottomBarFrameBags", "TOPRIGHT", -8, -4);
                local tbl = {
                        [0] = "MainMenuBarBackpackButton",
                        "CharacterBag0Slot",
                        "CharacterBag1Slot",
                        "CharacterBag2Slot",
                        "CharacterBag3Slot"
                };
                for i = 1, 4, 1 do
                        getglobal(tbl[i]):ClearAllPoints();
                        getglobal(tbl[i]):SetPoint("RIGHT", tbl[i-1], "LEFT", -5, 0);
                end
        else
                CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] = 1;
                CT_BottomBarFrameBagsBackground:Hide();
                MainMenuBarBackpackButton:ClearAllPoints();
                MainMenuBarBackpackButton:SetPoint("TOPLEFT", "CT_BottomBarFrameBags", "TOPLEFT", 7, -4);
                local tbl = {
                        [0] = "MainMenuBarBackpackButton",
                        "CharacterBag0Slot",
                        "CharacterBag1Slot",
                        "CharacterBag2Slot",
                        "CharacterBag3Slot"
                };
                for i = 1, 4, 1 do
                        getglobal(tbl[i]):ClearAllPoints();
                        getglobal(tbl[i]):SetPoint("TOP", tbl[i-1], "BOTTOM", 0, -5);
                end
        end
        if ( CT_BarModOptions_RemoveSpaceBags ) then
                CT_BarModOptions_RemoveSpaceBags(CT_BarModOptions_Options[UnitName("player")]["removeBags"]);
        end
        CT_BottomBar_CheckLeftGryphon();
        CT_BottomBar_CheckRightGryphon();
end

function CT_BottomBar_RotateBars(force)
        if ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] and not force ) then
                CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] = nil;
                if ( not CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbarBackgroundLeft"] ) then
                        CT_BottomBarFrameBarHotbarBackgroundLeft:Show();
                        CT_BottomBarFrameBarHotbarBackgroundRight:Show();
                        if ( CT_BarModOptions_Options ) then
                                for i = 1, 12, 1 do
                                        getglobal("ActionButton" .. i):SetScale(UIParent:GetScale());
                                        getglobal("BonusActionButton" .. i):SetScale(UIParent:GetScale());
                                end
                        end
                end
                for i = 2, 12, 1 do
                        getglobal("ActionButton" .. i):ClearAllPoints();
                        getglobal("BonusActionButton" .. i):ClearAllPoints();
                        if ( CT_BarModOptions_Options and CT_BarModOptions_Options[UnitName("player")]["removeBars"] and CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbarBackgroundLeft"]  ) then
                                getglobal("ActionButton" .. i):SetPoint("LEFT", "ActionButton" .. i-1, "RIGHT", 3, 0);
                                getglobal("BonusActionButton" .. i):SetPoint("LEFT", "BonusActionButton" .. i-1, "RIGHT", 3, 0);
                        else
                                getglobal("ActionButton" .. i):SetPoint("LEFT", "ActionButton" .. i-1, "RIGHT", 6, 0);
                                getglobal("BonusActionButton" .. i):SetPoint("LEFT", "BonusActionButton" .. i-1, "RIGHT", 6, 0);
                        end
                end
        else
                CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] = 1;
                CT_BottomBarFrameBarHotbarBackgroundLeft:Hide();
                CT_BottomBarFrameBarHotbarBackgroundRight:Hide();
                for i = 2, 12, 1 do
                        getglobal("ActionButton" .. i):ClearAllPoints();
                        getglobal("BonusActionButton" .. i):ClearAllPoints();
                        if ( CT_BarModOptions_Options and CT_BarModOptions_Options[UnitName("player")]["removeBars"] ) then
                                getglobal("ActionButton" .. i):SetPoint("TOP", "ActionButton" .. i-1, "BOTTOM", 0, -3);
                                getglobal("BonusActionButton" .. i):SetPoint("TOP", "BonusActionButton" .. i-1, "BOTTOM", 0, -3);
                        else
                                getglobal("ActionButton" .. i):SetPoint("TOP", "ActionButton" .. i-1, "BOTTOM", 0, -6);
                                getglobal("BonusActionButton" .. i):SetPoint("TOP", "BonusActionButton" .. i-1, "BOTTOM", 0, -6);
                        end
                end
                if ( CT_BarModOptions_Options ) then
                        for i = 1, 12, 1 do
                                getglobal("ActionButton" .. i):SetScale(CT_BarModOptions_Options[UnitName("player")][6]*UIParent:GetScale());
                                getglobal("BonusActionButton" .. i):SetScale(CT_BarModOptions_Options[UnitName("player")][6]*UIParent:GetScale());
                        end
                end
        end
        CT_updateActionButtons();
        CT_BottomBar_CheckLeftGryphon();
        CT_BottomBar_CheckRightGryphon();
end

CT_BottomBar_oldUpdateTalentButton = UpdateTalentButton;
function CT_BottomBar_newUpdateTalentButton()
        CT_BottomBar_oldUpdateTalentButton();
        if ( not CT_BottomBar_Enabled[UnitName("player")] ) then
                local tbl = {
                        [0] = "CharacterMicroButton",
                        "SpellbookMicroButton",
                        "TalentMicroButton",
                        "QuestLogMicroButton",
                        "SocialsMicroButton",
                        "WorldMapMicroButton",
                        "MainMenuMicroButton",
                        "HelpMicroButton"
                };
                                                
                for i = 1, 7, 1 do
                        getglobal(tbl[i]):ClearAllPoints();
                        getglobal(tbl[i]):SetPoint("LEFT", tbl[i-1], "RIGHT", -3, 0);
                end
        else
                if ( ( CT_BottomBar_Enabled[UnitName("player")] and CT_BottomBar_HiddenFrames[UnitName("player")]["MiniButtons"] ) or UnitLevel("player") <= 10 ) then
                        TalentMicroButton:Hide();
                end
                if ( CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] ) then
                        CT_BottomBar_RotateMiniButtons(1);
                else
                        CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] = 1;
                        CT_BottomBar_RotateMiniButtons();
                end
        end
end
UpdateTalentButton = CT_BottomBar_newUpdateTalentButton;

function CT_BottomBar_RotateMiniButtons(force)
        if ( CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] and not force ) then
                CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] = nil;
                if ( not CT_BottomBar_HiddenFrames[UnitName("player")]["MiniButtonsBackgroundLeft"] ) then
                        CT_BottomBarFrameMiniButtonsBackgroundLeft:Show();
                        CT_BottomBarFrameMiniButtonsBackgroundRight:Show();
                end
                local tbl = {
                        [0] = "CharacterMicroButton",
                        "SpellbookMicroButton",
                        "TalentMicroButton",
                        "QuestLogMicroButton",
                        "SocialsMicroButton",
                        "WorldMapMicroButton",
                        "MainMenuMicroButton",
                        "HelpMicroButton"
                };
                                                
                for i = 1, 7, 1 do
                        getglobal(tbl[i]):ClearAllPoints();
                        getglobal(tbl[i]):SetPoint("LEFT", tbl[i-1], "RIGHT", -3, 0);
                end
        else
                CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] = 1;
                CT_BottomBarFrameMiniButtonsBackgroundLeft:Hide();
                CT_BottomBarFrameMiniButtonsBackgroundRight:Hide();
                local tbl = {
                        [0] = "CharacterMicroButton",
                        "SpellbookMicroButton",
                        "TalentMicroButton",
                        "QuestLogMicroButton",
                        "SocialsMicroButton",
                        "WorldMapMicroButton",
                        "MainMenuMicroButton",
                        "HelpMicroButton"
                };
                                                
                for i = 1, 7, 1 do
                        getglobal(tbl[i]):ClearAllPoints();
                        getglobal(tbl[i]):SetPoint("TOP", tbl[i-1], "BOTTOM", 0, 24);
                end
        end
        CT_BottomBar_CheckLeftGryphon();
        CT_BottomBar_CheckRightGryphon();
end

function CT_BottomBar_OptionsFrame_Hide(...)
        for i = 1, arg.n, 1 do
                -- Pretty big hack, but meh
                local oldThis = this;
                if ( this:GetChecked() ) then
                        CT_BottomBar_HiddenFrames[UnitName("player")][arg[i]] = this:GetName();
                        this = getglobal("CT_BottomBarFrame" .. arg[i]);
                        if ( getglobal("CT_BottomBarFrame" .. arg[i]).GetScript ) then
                                getglobal("CT_BottomBarFrame" .. arg[i]):GetScript("OnHide")();
                        end
                        getglobal("CT_BottomBarFrame" .. arg[i]):Hide();
                else
                        CT_BottomBar_HiddenFrames[UnitName("player")][arg[i]] = nil;
                        this = getglobal("CT_BottomBarFrame" .. arg[i]);
                        if ( getglobal("CT_BottomBarFrame" .. arg[i]).GetScript ) then
                                getglobal("CT_BottomBarFrame" .. arg[i]):GetScript("OnShow")();
                        end
                        getglobal("CT_BottomBarFrame" .. arg[i]):Show();
                end
                this = oldThis;
                if ( arg[i] == "BarHotbarBackgroundLeft" ) then
                        for i = 1, 12, 1 do
                                if ( this:GetChecked() and CT_BarModOptions_Options and CT_BarModOptions_Options[UnitName("player")] ) then
                                        getglobal("ActionButton" .. i):SetScale(( CT_BarModOptions_Options[UnitName("player")][6] or 1 )*UIParent:GetScale());
                                        getglobal("BonusActionButton" .. i):SetScale(( CT_BarModOptions_Options[UnitName("player")][6] or 1)*UIParent:GetScale());
                                elseif ( not this:GetChecked() ) then
                                        getglobal("ActionButton" .. i):SetScale(UIParent:GetScale());
                                        getglobal("BonusActionButton" .. i):SetScale(UIParent:GetScale());
                                end
                                if ( i > 1 and CT_BarModOptions_Options and CT_BarModOptions_Options[UnitName("player")] ) then
                                        getglobal("ActionButton" .. i):ClearAllPoints();
                                        getglobal("BonusActionButton" .. i):ClearAllPoints();
                                        local offset = 6;
                                        if ( CT_BarModOptions_Options and CT_BarModOptions_Options[UnitName("player")]["removeBars"] ) then
                                                offset = 3;
                                        end
                                        if ( CT_BottomBar_RotatedFrames and CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] and CT_BottomBar_Enabled[UnitName("player")] ) then
                                                getglobal("ActionButton" .. i):SetPoint("TOP", "ActionButton" .. i-1, "BOTTOM", 0, -offset);
                                                getglobal("BonusActionButton" .. i):SetPoint("TOP", "BonusActionButton" .. i-1, "BOTTOM", 0, -offset);
                                        elseif ( CT_BottomBar_HiddenFrames and CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbarBackgroundLeft"] and CT_BottomBar_Enabled[UnitName("player")] ) then
                                                getglobal("ActionButton" .. i):SetPoint("LEFT", "ActionButton" .. i-1, "RIGHT", offset, 0);
                                                getglobal("BonusActionButton" .. i):SetPoint("LEFT", "BonusActionButton" .. i-1, "RIGHT", offset, 0);
                                        else
                                                getglobal("ActionButton" .. i):SetPoint("LEFT", "ActionButton" .. i-1, "RIGHT", 6, 0);
                                                getglobal("BonusActionButton" .. i):SetPoint("LEFT", "BonusActionButton" .. i-1, "RIGHT", 6, 0);
                                        end
                                end
                        end
                elseif ( arg[i] == "BarHotbarBackgroundRight" ) then
                        CT_updateActionButtons();
                        if ( not this:GetChecked() and CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] ) then
                                getglobal("CT_BottomBarFrameBarHotbarBackgroundRight"):Hide();
                                getglobal("CT_BottomBarFrameBarHotbarBackgroundLeft"):Hide();
                        end
                elseif ( arg[i] == "BagsBackground" ) then
                        if ( not this:GetChecked() and CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] ) then
                                getglobal("CT_BottomBarFrame" .. arg[i]):Hide();
                        end
                        if ( CT_BarModOptions_RemoveSpaceBags ) then
                                CT_BarModOptions_RemoveSpaceBags(CT_BarModOptions_Options[UnitName("player")]["removeBags"]);
                        end
                elseif ( arg[i] == "MiniButtonsBackgroundRight" ) then
                        if ( not this:GetChecked() and CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] ) then
                                getglobal("CT_BottomBarFrameMiniButtonsBackgroundRight"):Hide();
                                getglobal("CT_BottomBarFrameMiniButtonsBackgroundLeft"):Hide();
                        end
                end
        end
        CT_BottomBar_CheckLeftGryphon();
        CT_BottomBar_CheckRightGryphon();
end

function CT_BottomBar_OptionsFrame_AddToEnableList()
        tinsert(CT_BottomBar_EnableCBs, this:GetName());
        this:Disable();
        getglobal(this:GetName() .. "Text"):SetTextColor(0.3, 0.3, 0.3);
end

function CT_BottomBar_OptionsFrame_EnableMod(enable)
        CT_BottomBar_OptionsFrameAllChecked:SetChecked(enable);
        for k, v in CT_BottomBar_EnableCBs do
                if ( enable ) then
                        getglobal(v):Enable();
                        getglobal(v .. "Text"):SetTextColor(1, 1, 1);
                else
                        getglobal(v):Disable();
                        getglobal(v .. "Text"):SetTextColor(0.3, 0.3, 0.3);
                end
        end
        
        if ( enable ) then
                CT_BottomBar_Enable();
        else
                CT_BottomBar_Disable();
        end
end

function CT_BottomBar_InitMod()
        if ( not CT_BottomBar_HiddenFrames[UnitName("player")] ) then
                CT_BottomBar_HiddenFrames[UnitName("player")] = { };
        else
                for k, v in CT_BottomBar_HiddenFrames[UnitName("player")] do
                        getglobal(v):SetChecked(1);
                end
        end
        if ( not CT_BottomBar_RotatedFrames[UnitName("player")] ) then
                CT_BottomBar_RotatedFrames[UnitName("player")] = { };
        end
        
        if ( not CT_BottomBar_RotatedFrames[UnitName("player")] ) then
                CT_BottomBar_RotatedFrames[UnitName("player")] = { };
        else
                if ( CT_BottomBar_RotatedFrames[UnitName("player")]["MiniButtons"] ) then
                        CT_BottomBar_RotateMiniButtons(1);
                end
                if ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] ) then
                        CT_BottomBar_RotateBars(1);
                end
                if ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] ) then
                        CT_BottomBar_RotateBags(1);
                end
        end
        CT_BottomBar_OptionsFrame_EnableMod(CT_BottomBar_Enabled[UnitName("player")]);
end
function CT_BottomBar_DisplayWindow()
        if ( CT_BottomBar_OptionsFrame:IsVisible() ) then
                HideUIPanel(CT_BottomBar_OptionsFrame);
        else
                ShowUIPanel(CT_BottomBar_OptionsFrame);
        end
end

SlashCmdList["BOTTOMBAR"] = CT_BottomBar_DisplayWindow;
SLASH_BOTTOMBAR1 = "/bottombar";
SLASH_BOTTOMBAR2 = "/bb";
CT_RegisterMod("Breakable Bottom Bar", "Open Options", 2, "Interface\\Icons\\Ability_Warrior_Sunder", "Displays the Breakable Bottom Bar options window.", "switch", "", CT_BottomBar_DisplayWindow);

function CT_BottomBar_CheckRightGryphon()
        if ( CT_BottomBar_HiddenFrames[UnitName("player")]["GryphonsFrameRight"] ) then
                CT_BottomBarFrameGryphonsFrameRight:Hide();
                MainMenuBarRightEndCap:Hide();
        else
                CT_BottomBarFrameGryphonsFrameRight:Show();
                if ( CT_BottomBar_Enabled[UnitName("player")] ) then
                        MainMenuBarRightEndCap:Hide();
                else
                        MainMenuBarRightEndCap:Show();
                end
        end
end

function CT_BottomBar_CheckLeftGryphon()
        if ( CT_BottomBar_HiddenFrames[UnitName("player")]["GryphonsFrameLeft"] ) then
                CT_BottomBarFrameGryphonsFrameLeft:Hide();
                MainMenuBarLeftEndCap:Hide();
        else
                CT_BottomBarFrameGryphonsFrameLeft:Show();
                if ( CT_BottomBar_Enabled[UnitName("player")] ) then
                        MainMenuBarLeftEndCap:Hide();
                else
                        MainMenuBarLeftEndCap:Show();
                end
        end
end

-- Hide pet/shapeshift/stance texture

CT_oldPetActionBar_UpdatePosition = PetActionBar_UpdatePosition;
function CT_newPetActionBar_UpdatePosition()
        CT_oldPetActionBar_UpdatePosition();
        CT_LinkFrameDrag(PetActionButton1, CT_PetBar_Drag, "TOPLEFT", "BOTTOMRIGHT", 2, 2);
        if ( CT_BottomBar_HiddenFrames[UnitName("player")]["Class"] or CT_BottomBar_HiddenFrames[UnitName("player")]["ClassBackground"] ) then
                CT_BottomBar_HideTextures(1);
        else
                CT_BottomBar_HideTextures();
        end
end
PetActionBar_UpdatePosition = CT_newPetActionBar_UpdatePosition;

CT_BarMod_HidePetBarTextures = 1;

function CT_BottomBar_HideTextures(hide)
        if ( hide ) then
                ShapeshiftBarLeft:ClearAllPoints();
                SlidingActionBarTexture0:ClearAllPoints();
                ShapeshiftBarLeft:SetPoint("TOPRIGHT", "UIParent", "TOPLEFT", -500, 0);
                SlidingActionBarTexture0:SetPoint("TOPRIGHT", "UIParent", "TOPLEFT", -500, 0); -- Hide
        else
                SlidingActionBarTexture0:ClearAllPoints();
                if ( CT_PetBar_DragFrame_Orientation == "H" ) then
                        SlidingActionBarTexture0:SetPoint("BOTTOMLEFT", "PetActionButton1", "BOTTOMLEFT", -36, -3);
                else
                        SlidingActionBarTexture0:SetPoint("TOPRIGHT", "UIParent", "TOPLEFT", -500, 0); -- Hide
                end
                ShapeshiftBarLeft:ClearAllPoints();
                if ( CT_BABar_DragFrame_Orientation == "H" ) then
                        ShapeshiftBarLeft:SetPoint("BOTTOMLEFT", "ShapeshiftButton1", "BOTTOMLEFT", -14, -4);
                else
                        ShapeshiftBarLeft:SetPoint("TOPRIGHT", "UIParent", "TOPLEFT", -500, 0);
                end
        end
end

CT_BottomBar_oldShapeshiftBar_Update = ShapeshiftBar_Update;
function CT_BottomBar_newShapeshiftBar_Update(hide)
        if ( hide ) then
                ShapeshiftBarFrame:Hide();
                CT_BABar_Drag:Hide();
        else
                CT_BottomBar_oldShapeshiftBar_Update();
        end
end
ShapeshiftBar_Update = CT_BottomBar_newShapeshiftBar_Update;

CT_BottomBar_oldShapeshiftBar_UpdatePosition = ShapeshiftBar_UpdatePosition;
function CT_BottomBar_newShapeshiftBar_UpdatePosition()
        if ( CT_BottomBar_Enabled[UnitName("player")] ) then
                BonusActionButton1:ClearAllPoints();
                BonusActionButton1:SetPoint("TOPLEFT", "CT_BottomBarFrameBar", "TOPLEFT", 7, -4);
                CT_BarModOptions_RemoveSpaceSpecial(CT_BarModOptions_Options[UnitName("player")]["removeSpecial"]);
        end
        if ( CT_BottomBar_HiddenFrames[UnitName("player")] and CT_BottomBar_HiddenFrames[UnitName("player")]["Class"] ) then
                CT_BottomBar_HideTextures(1);
                if ( CT_BottomBar_HiddenFrames[UnitName("player")]["Class"] ) then
                        CT_BABar_Drag:Hide();
                        ShapeshiftBarFrame:Hide();
                        CT_PetBar_Drag:Hide();
                        PetActionBarFrame:Hide();
                end
        else
                if ( not CT_BottomBar_HiddenFrames[UnitName("player")] or not CT_BottomBar_HiddenFrames[UnitName("player")]["ClassBackground"] ) then
                        CT_BottomBar_HideTextures(nil);
                else
                        CT_BottomBar_HideTextures(1);
                end
                if ( CT_BottomBar_HiddenFrames[UnitName("player")]["Class"] ) then
                        CT_BABar_Drag:Show();
                        ShapeshiftBarFrame:Show();
                        CT_PetBar_Drag:Show();
                        PetActionBarFrame:Show();
                end
        end
end
ShapeshiftBar_UpdatePosition = CT_BottomBar_newShapeshiftBar_UpdatePosition;

function CT_BottomBar_HideBars(hide)
        if ( hide ) then
                CT_BABar_Drag:Hide();
                ShapeshiftBarFrame:Hide();
                CT_PetBar_Drag:Hide();
                PetActionBarFrame:Hide();
        else
                ShapeshiftBar_Update();
                if ( ShapeshiftBarFrame:IsVisible() and CT_MF_ShowFrames ) then
                        CT_BABar_Drag:Show();
                else
                        CT_BABar_Drag:Hide();
                end
                if ( PetHasActionBar() ) then
                        PetActionBarFrame:Show();
                        if ( CT_MF_ShowFrames ) then
                                CT_PetBar_Drag:Show();
                        else
                                CT_PetBar_Drag:Hide();
                        end
                else
                        CT_PetBar_Drag:Hide();
                end
        end
end

CT_BottomBar_oldPetActionBar_Update = PetActionBar_Update;
function CT_BottomBar_newPetActionBar_Update()
        CT_BottomBar_oldPetActionBar_Update();
        if (  CT_BottomBar_HiddenFrames[UnitName("player")]["Class"] or CT_BottomBar_HiddenFrames[UnitName("player")]["ClassBackground"] ) then
                CT_BottomBar_HideTextures(1);
        else
                CT_BottomBar_HideTextures();
        end
        CT_BottomBar_HideBars(CT_BottomBar_HiddenFrames[UnitName("player")]["Class"]);
end
PetActionBar_Update = CT_BottomBar_newPetActionBar_Update;

CT_BottomBar_oldShowPetActionBar = ShowPetActionBar;
function CT_BottomBar_newShowPetActionBar()
        CT_BottomBar_oldShowPetActionBar();
        if (  CT_BottomBar_HiddenFrames[UnitName("player")]["Class"] or CT_BottomBar_HiddenFrames[UnitName("player")]["ClassBackground"] ) then
                CT_BottomBar_HideTextures(1);
        else
                CT_BottomBar_HideTextures();
        end
        CT_BottomBar_HideBars(CT_BottomBar_HiddenFrames[UnitName("player")]["Class"]);
end
ShowPetActionBar = CT_BottomBar_newShowPetActionBar;

CT_BottomBar_oldActionButton_Update = ActionButton_Update;
function CT_BottomBar_newActionButton_Update()
        CT_BottomBar_oldActionButton_Update();
        if ( CT_BottomBar_Enabled[UnitName("player")] and CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbar"] )then
                this:Hide();
        end
end
ActionButton_Update = CT_BottomBar_newActionButton_Update;

CT_BottomBar_oldReputationWatchBar_Update = ReputationWatchBar_Update;
function CT_BottomBar_newReputationWatchBar_Update(newLevel)
        if ( not CT_BottomBarFrameXP:IsShown() ) then
                ReputationWatchBar:Hide();
                return;
        elseif ( not newLevel ) then
                newLevel = UnitLevel("player");
        end
        CT_BottomBar_oldReputationWatchBar_Update(newLevel);
        ReputationWatchBar:ClearAllPoints();
        if ( newLevel < MAX_PLAYER_LEVEL ) then
                -- Display it above the main menu bar.
                ReputationWatchBar:SetPoint("TOP", "MainMenuExpBar", "TOP", 0, 10);
        else
                if ( ReputationWatchBar:IsShown() ) then
                        CT_BottomBarFrameXPTextureFrame:Hide();
                else
                        CT_BottomBarFrameXPTextureFrame:Show();
                end
                -- Display it on top of the main menu bar.
                ReputationWatchBar:SetPoint("TOP", "MainMenuExpBar", "TOP", 0, -1);
        end
end
ReputationWatchBar_Update = CT_BottomBar_newReputationWatchBar_Update;

Generated by GNU Enscript 1.6.5.90.