vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
function GB_Hook_Functions()
--      HOOK FUNCTIONS FOR PICKING UP STUFF
        GB_Old_SpellButton_OnClick = SpellButton_OnClick;
        SpellButton_OnClick = GB_SpellButton_OnClick;
        GB_Old_ContainerFrameItemButton_OnClick = ContainerFrameItemButton_OnClick;
        ContainerFrameItemButton_OnClick = GB_ContainerFrame_OnClick;
        GB_Old_PaperDollItemSlotButton_OnClick = PaperDollItemSlotButton_OnClick;
        PaperDollItemSlotButton_OnClick = GB_PaperDollItemSlotButton_OnClick;
        GB_Old_PickupMacro = PickupMacro;
        PickupMacro = GB_PickupMacro;

--      FOR COSMOS COMPATIBILITY  (uuuugh :P)
        GB_Old_TotemStomper_WatchSpellbook = TotemStomper_WatchSpellbook;
        TotemStomper_WatchSpellbook = GB_TotemStomper_WatchSpellbook;

--      MYINVENTORY COMPATIBILITY
        GB_Old_MyInventoryFrameItemButton_OnClick = MyInventoryFrameItemButton_OnClick;
        MyInventoryFrameItemButton_OnClick = GB_MyInventoryFrameItemButton_OnClick;

--      ALL IN ONE INVENTORY COMPATIBILITY
        GB_Old_AllInOneInventoryFrameItemButton_OnClick = AllInOneInventoryFrameItemButton_OnClick;
        AllInOneInventoryFrameItemButton_OnClick = GB_AllInOneInventoryFrameItemButton_OnClick;

--      TO UPDATE MACROS WHEN YOU ADD NEW ONES
        GB_Old_MacroFrame_Update = MacroFrame_Update;
        MacroFrame_Update = GB_MacroFrame_Update;

--  Click-casting for the default raid frames
--      GB_Old_RaidPulloutButton_OnClick = RaidPulloutButton_OnClick;
--      RaidPulloutButton_OnClick = GB_RaidPulloutButton_OnClick;

--      Click-casting and mouseovers for CTRA frames
        GB_Old_CT_RA_MemberFrame_OnClick = CT_RA_MemberFrame_OnClick;
        CT_RA_MemberFrame_OnClick = GB_CT_RA_MemberFrame_OnClick;
        GB_Old_CT_RA_MemberFrame_OnEnter = CT_RA_MemberFrame_OnEnter;
        CT_RA_MemberFrame_OnEnter = GB_CT_RA_MemberFrame_OnEnter;
        GB_Old_CT_RA_MemberFrame_OnLeave = CT_RA_MemberFrame_OnLeave;
        CT_RA_MemberFrame_OnLeave = GB_CT_RA_MemberFrame_OnLeave;

--      Support for Perl's Raid Frames, probably doesn't work, Perl's not built for click-casting
        GB_Old_Perl_Raid_MouseUp = Perl_Raid_MouseUp;
        GB_Perl_Raid_MouseUp = Perl_Raid_MouseUp;

--      Support for beyondRaid frames
        GB_Old_beyondRaidUnitOnClick = beyondRaidUnitOnClick;
        beyondRaidUnitOnClick = GB_beyondRaidUnitOnClick;

--      Support for Mars Raid
        GB_Old_MarsRaidFrame_OnClick = MarsRaidFrame_OnClick;
        MarsRaidFrame_OnClick = GB_MarsRaidFrame_OnClick;
        GB_Old_MarsRaidFrame_OnEnter = MarsRaidFrame_OnEnter;
        MarsRaidFrame_OnEnter = GB_MarsRaidFrame_OnEnter;
        GB_Old_MarsRaidFrame_OnLeave = MarsRaidFrame_OnLeave;
        MarsRaidFrame_OnLeave = GB_MarsRaidFrame_OnLeave;

--      Support for Discord Unit Frames 2.0
        if (DUF_TargetOfTargetFrame) then
                GB_Old_DUF_Element_OnClick = DUF_Element_OnClick;
                DUF_Element_OnClick = GB_DUF_Element_OnClick;
                GB_Old_DUF_UnitFrame_OnClick = DUF_UnitFrame_OnClick;
                DUF_UnitFrame_OnClick = GB_DUF_UnitFrame_OnClick;
                GB_Old_DUF_Element_OnEnter = DUF_Element_OnEnter;
                DUF_Element_OnEnter = GB_DUF_Element_OnEnter;
                GB_Old_DUF_UnitFrame_OnEnter = DUF_UnitFrame_OnEnter;
                DUF_UnitFrame_OnEnter = GB_DUF_UnitFrame_OnEnter;
                GB_Old_DUF_Element_OnLeave = DUF_Element_OnLeave;
                DUF_Element_OnLeave = GB_DUF_Element_OnLeave;
                GB_Old_DUF_UnitFrame_OnLeave = DUF_UnitFrame_OnLeave;
                DUF_UnitFrame_OnLeave = GB_DUF_UnitFrame_OnLeave;
        end

        -- Gotta get set the bars when the default raid frames load
        GB_Old_RaidFrame_LoadUI = RaidFrame_LoadUI;
        RaidFrame_LoadUI = GB_RaidFrame_LoadUI;
end

function GB_RaidFrame_LoadUI()
        GB_Old_RaidFrame_LoadUI();
        GB_Set_Appearance("raid");
end

function GB_MacroFrame_Update()
        GB_Old_MacroFrame_Update();
        GB_Update_Macros();
end

function GB_Clear_MouseAction()
        GB_MOUSE_ACTION = {nil};
end

function GB_Set_MouseAction(id, id2, idtype, options)
        GB_Clear_MouseAction();
        GB_MOUSE_ACTION.id = id;
        GB_MOUSE_ACTION.id2 = id2;
        GB_MOUSE_ACTION.idtype = idtype;
        GB_MOUSE_ACTION.options = {};
        if (options) then
                GB_Copy_Table(options, GB_MOUSE_ACTION.options);
        else
                local table = GB_Get_DefaultButtonSettings();
                GB_Copy_Table(table, GB_MOUSE_ACTION.options);
        end
end

function GB_AllInOneInventoryFrameItemButton_OnClick(button, ignoreShift)
        local bag, slot = AllInOneInventory_GetIdAsBagSlot(this:GetID());
        if ( button == "LeftButton" ) then
                if ( not IsShiftKeyDown() ) then
                        local itemname = GB_Get_ItemName(bag, slot);
                        local _, _, locked = GetContainerItemInfo(bag, slot);
                        if (itemname and (not locked)) then
                                GB_Set_MouseAction(itemname, "", "item");
                                GB_Old_AllInOneInventoryFrameItemButton_OnClick(button, ignoreShift);
                        else
                                GB_Old_AllInOneInventoryFrameItemButton_OnClick(button, ignoreShift);
                                GB_Clear_MouseAction();
                        end
                else
                        GB_Old_AllInOneInventoryFrameItemButton_OnClick(button, ignoreShift);
                end
        else
                GB_Old_AllInOneInventoryFrameItemButton_OnClick(button, ignoreShift);
        end
end

function GB_ContainerFrame_OnClick(button, ignoreShift)
        if ( button == "LeftButton" ) then
                if ( not IsShiftKeyDown() ) then
                        local bag = this:GetParent():GetID();
                        local slot = this:GetID();
                        local itemname = GB_Get_ItemName(bag, slot);
                        local _, _, locked = GetContainerItemInfo(bag, slot);
                        if (itemname) then
                                GB_Set_MouseAction(itemname, "", "item");
                                GB_Old_ContainerFrameItemButton_OnClick(button, ignoreShift);
                        else
                                GB_Old_ContainerFrameItemButton_OnClick(button, ignoreShift);
                                GB_Clear_MouseAction();
                        end
                else
                        GB_Old_ContainerFrameItemButton_OnClick(button, ignoreShift);
                end
        else
                GB_Old_ContainerFrameItemButton_OnClick(button, ignoreShift);
        end
end

function GB_MyInventoryFrameItemButton_OnClick(button, ignoreShift)
        local bag, slot = this.bagIndex, this.itemIndex;
        if ( button == "LeftButton" ) then
                if ( not IsShiftKeyDown() ) then
                        local itemname = GB_Get_ItemName(bag, slot);
                        local _, _, locked = GetContainerItemInfo(bag, slot);
                        if (itemname and (not locked)) then
                                GB_Set_MouseAction(itemname, "", "item");
                                GB_Old_MyInventoryFrameItemButton_OnClick(button, ignoreShift);
                        else
                                GB_Old_MyInventoryFrameItemButton_OnClick(button, ignoreShift);
                                GB_Clear_MouseAction();
                        end
                else
                        GB_Old_MyInventoryFrameItemButton_OnClick(button, ignoreShift);
                end
        else
                GB_Old_MyInventoryFrameItemButton_OnClick(button, ignoreShift);
        end
end

function GB_PaperDollItemSlotButton_OnClick(button, ignoreShift)
        GB_Old_PaperDollItemSlotButton_OnClick(button, ignoreShift);
        if ( button == "LeftButton" ) then
                if ( not IsShiftKeyDown() ) then
                        if ( GetInventoryItemTexture("player", this:GetID()) ) then
                                local itemname = GB_Get_ItemName(this:GetID());
                                GB_Set_MouseAction(itemname, "", "inv");
                        end
                end
        end
end

function GB_PickupMacro(arg)
        GB_Old_PickupMacro(arg);
        local macroname, texture = GetMacroInfo(arg);
        GB_Set_MouseAction(macroname, "", "macro");
end

function GB_SpellButton_OnClick(drag)
        GB_Old_SpellButton_OnClick(drag);
        if (drag) then
                local spellName, spellRank = GetSpellName(SpellBook_GetSpellID(this:GetID()), BOOKTYPE_SPELL);
                GB_Set_MouseAction(spellName, spellRank, "spell");
        end
end

function GB_TotemStomper_WatchSpellbook(drag)
        GB_Old_TotemStomper_WatchSpellbook(drag);
        if (drag) then
                local spellName, spellRank = GetSpellName(SpellBook_GetSpellID(this:GetID()), BOOKTYPE_SPELL);
                GB_Set_MouseAction(spellName, spellRank, "spell");
        end
end

Generated by GNU Enscript 1.6.5.90.