vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        Bagnon
                Displays the player's inventory in a single frame
--]]

local bBagSlotButton_OnEnter, bMainBag_OnEnter, bKeyRingButton_OnEnter;
local bBagSlotButton_OnClick, bKeyRingButton_OnClick, bMainBag_OnClick;

--[[ Loading Functions ]]--

function Bagnon_OnLoad()
        this:RegisterEvent("ADDON_LOADED");
end

--[[ Event Handler ]]--

function Bagnon_OnEvent(event)
        if ( event == "ADDON_LOADED" and arg1 == "Bagnon") then
                Bagnon:UnregisterEvent("ADDON_LOADED");
                Bagnon_Load();
        end
end

function Bagnon_Load()
        BagnonFrame_Load(Bagnon, {-2, 0, 1, 2, 3, 4}, BAGNON_INVENTORY_TITLE);
        Bagnon_AddBagHooks();
end

--[[ UI Functions ]]--

--OnShow
function Bagnon_OnShow()
        MainMenuBarBackpackButton:SetChecked(1);
        PlaySound("igBackPackOpen");
end

--OnHide
function Bagnon_OnHide()
        MainMenuBarBackpackButton:SetChecked(0);
        PlaySound("igBackPackClose");
end

--Show Bags
function Bagnon_ToggleBags()
        if( not BagnonBags:IsShown() ) then
                BagnonBags:Show();
                BagnonSets["Bagnon"].bagsShown = 1;
                this:SetText(BAGNON_HIDEBAGS);
        else
                BagnonBags:Hide();
                BagnonSets["Bagnon"].bagsShown = nil;
                this:SetText(BAGNON_SHOWBAGS);
        end
        
        BagnonFrame_TrimToSize(Bagnon);
end

--[[ Bag Overrides ]]--

function Bagnon_AddBagHooks()
        bMainBag_OnEnter = MainMenuBarBackpackButton:GetScript("OnEnter");
        bMainBag_OnClick = MainMenuBarBackpackButton:GetScript("OnClick");
        MainMenuBarBackpackButton:SetScript("OnEnter", BagnonBlizMainBag_OnEnter);
        MainMenuBarBackpackButton:SetScript("OnLeave", BagnonBlizBag_OnLeave);
        MainMenuBarBackpackButton:SetScript("OnClick", BagnonBlizMainBag_OnClick);
        
        bBagSlotButton_OnEnter = BagSlotButton_OnEnter;
        BagSlotButton_OnEnter = BagnonBlizBag_OnEnter;
        bBagSlotButton_OnClick = getglobal("CharacterBag0Slot"):GetScript("OnClick");
        for i = 0, 3 do
                getglobal("CharacterBag" .. i .. "Slot"):SetScript("OnLeave", BagnonBlizBag_OnLeave);
                getglobal("CharacterBag" .. i .. "Slot"):SetScript("OnClick", BagnonBlizBag_OnClick);
        end
        
        bKeyRingButton_OnEnter = KeyRingButton:GetScript("OnEnter");
        bKeyRingButton_OnClick = KeyRingButton:GetScript("OnClick");
        KeyRingButton:SetScript("OnEnter", BagnonBlizKeyRing_OnEnter);
        KeyRingButton:SetScript("OnLeave", BagnonBlizBag_OnLeave);
        KeyRingButton:SetScript("OnClick", BagnonBlizKeyRing_OnClick);
end

--Main Bag
function BagnonBlizMainBag_OnEnter()
        if( Bagnon:IsShown() ) then
                BagnonFrame_HighlightSlots(Bagnon, this:GetID());
        end
        bMainBag_OnEnter();
end

function BagnonBlizMainBag_OnClick()
        if( IsShiftKeyDown() ) then
                BagnonFrame_ToggleBag(Bagnon, this:GetID());
        else
                bMainBag_OnClick();
        end
end

--Normal Bags
function BagnonBlizBag_OnEnter()
        if(Bagnon:IsShown() ) then
                BagnonFrame_HighlightSlots(Bagnon, this:GetID() - 19);
        end
        
        bBagSlotButton_OnEnter();
end

function BagnonBlizBag_OnClick()
        if( IsShiftKeyDown() ) then
                BagnonFrame_ToggleBag(Bagnon, this:GetID() - 19);
        else
                bBagSlotButton_OnClick();
        end
end

function BagnonBlizBag_OnLeave()
        GameTooltip:Hide();
        BagnonFrame_UnhighlightAll(Bagnon);
end

--KeyRing
function BagnonBlizKeyRing_OnEnter()
        if(Bagnon:IsShown() ) then
                BagnonFrame_HighlightSlots(Bagnon, this:GetID());
        end
        bKeyRingButton_OnEnter();
end

function BagnonBlizKeyRing_OnClick()
        if( IsShiftKeyDown() ) then
                BagnonFrame_ToggleBag(Bagnon, this:GetID());
        else
                bKeyRingButton_OnClick();
        end
end

Generated by GNU Enscript 1.6.5.90.