vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        Banknon
                Combines the player's bank into a single frame
--]]

--[[ Loading Functions ]]--

function Banknon_OnLoad()
        --Create the confirmation dialog when purchasing a bank slot
        StaticPopupDialogs["CONFIRM_BUY_BANK_SLOT_BANKNON"] = {
                text = TEXT(CONFIRM_BUY_BANK_SLOT),
                button1 = TEXT(YES),
                button2 = TEXT(NO),
                
                OnAccept = function()
                        PurchaseSlot();
                end,
                
                OnShow = function()
                        MoneyFrame_Update(this:GetName().."MoneyFrame", GetBankSlotCost(GetNumBankSlots()) );
                end,
                
                hasMoneyFrame = 1,
                timeout = 0,
                hideOnEscape = 1,
        };

        this:RegisterEvent("ADDON_LOADED");
end

--[[ Event Handler ]]--

function Banknon_OnEvent(event)
        if ( event == "PLAYER_MONEY" or event == "PLAYERBANKBAGSLOTS_CHANGED") then
                if(Banknon:IsShown() ) then
                        Banknon_UpdateSlotCost();
                end
        elseif ( event == "BANKFRAME_OPENED") then
                Banknon_UpdatePurchaseButtonVis();
        elseif ( event == "BANKFRAME_CLOSED") then
                Banknon_UpdatePurchaseButtonVis();
        elseif ( event == "ADDON_LOADED" and arg1 == "Banknon") then
                Banknon:UnregisterEvent("ADDON_LOADED");
                Banknon_Load();
        end
end

function Banknon_Load()
        BagnonFrame_Load(Banknon, {-1, 5, 6, 7, 8, 9, 10}, BAGNON_BANK_TITLE);
        
        if(CT_BankFrame_AcceptFrame) then
                CT_BankFrame_AcceptFrame:SetParent(Banknon);
        end

        Banknon:RegisterEvent("PLAYER_MONEY");
        Banknon:RegisterEvent("PLAYERBANKBAGSLOTS_CHANGED");
        Banknon:RegisterEvent("BANKFRAME_OPENED");
        Banknon:RegisterEvent("BANKFRAME_CLOSED");
        
        Banknon_UpdateSlotCost();
end

--[[ UI Functions ]]--

--OnShow
function Banknon_OnShow()
        Banknon_UpdatePurchaseButtonVis();
        PlaySound("igMainMenuOpen");
end

--OnHide
function Banknon_OnHide()
        PlaySound("igMainMenuClose");
        CloseBankFrame();
end

--[[ Bank Slots functions ]]--

--Show/Hide the bag frame
function Banknon_ToggleSlots()
        if( not BanknonBags:IsShown() ) then
                BanknonBags:Show();
                BagnonSets["Banknon"].bagsShown = 1;
                this:SetText(BAGNON_HIDEBAGS);
        else
                BanknonBags:Hide();
                BagnonSets["Banknon"].bagsShown = nil;
                this:SetText(BAGNON_SHOWBAGS);
        end
        
        Banknon_UpdatePurchaseButtonVis(not BagnonSets["Banknon"].bagsShown);
end

function Banknon_UpdateSlotCost()
        local cost = GetBankSlotCost( GetNumBankSlots() );
        if( GetMoney() >= cost ) then
                SetMoneyFrameColor("BanknonCost", 1.0, 1.0, 1.0);
        else
                SetMoneyFrameColor("BanknonCost", 1.0, 0.1, 0.1)
        end
        MoneyFrame_Update("BanknonCost", cost);
        
        Banknon_UpdatePurchaseButtonVis();
end

--yes, magic numbers are bad
function Banknon_UpdatePurchaseButtonVis(hide)
        if( BanknonBags:IsVisible() or hide) then
                local _, full = GetNumBankSlots();
                if( not full and bgn_atBank and (Banknon.player and Banknon.player == UnitName("player") ) and not hide ) then
                        BanknonPurchase:Show();
                        BanknonCost:Show();
                        BanknonBags:SetHeight(72);
                else
                        BanknonPurchase:Hide();
                        BanknonCost:Hide();
                        BanknonBags:SetHeight(46);
                end
        end
        BagnonFrame_TrimToSize(Banknon);
end

Generated by GNU Enscript 1.6.5.90.