vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        spot.lua
                Scripts for Bagnon_Spot, which provides filtering functionality for Bagnon
--]]

local nameFilter;

--[[ Search Box Functions ]]--

function BagnonSpot_OnHide()
        nameFilter = nil;
        
        if(Bagnon and Bagnon:IsShown() ) then   
                BagnonFrame_Generate(Bagnon);
        end
        if(Banknon and Banknon:IsShown() ) then 
                BagnonFrame_Generate(Banknon);
        end
end

function BagnonSpotSearch_OnTextChanged()
        if(this:GetText() and this:GetText() ~= "") then
                nameFilter = string.lower(this:GetText());
        else
                nameFilter = nil;
        end
        
        if(Bagnon and Bagnon:IsShown() ) then   
                BagnonFrame_Generate(Bagnon);
        end
        if(Banknon and Banknon:IsShown() ) then 
                BagnonFrame_Generate(Banknon);
        end
end

--[[ Function Overrides ]]--

BagnonFrame_OnDoubleClick = function(frame)
        if(arg1 == "LeftButton") then
                BagnonSpot:Hide();
                BagnonSpot.frame = frame;
                
                local x, y = GetCursorPosition();
                x = x / UIParent:GetScale();
                y = y / UIParent:GetScale();

                BagnonSpot:ClearAllPoints();
                BagnonSpot:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", x - 24, y + 24);
                BagnonSpot:Show();
        end
end

local function ToItemID(hyperLink)
        if(hyperLink) then
                local _, _, w = string.find(hyperLink, "item:(%d+)") ;
                return w;
        end
        return nil;
end

-- Darkens items we're not searching for
local oBagnonItem_Update = BagnonItem_Update;
BagnonItem_Update = function(item)
        oBagnonItem_Update(item);
        
        if( nameFilter ) then
                
                local link;
                
                if(item.isLink) then
                        if(BagnonDB) then
                                link = BagnonDB.GetItemData(item:GetParent():GetParent().player, item:GetParent():GetID() , item:GetID());
                        end
                else
                        link = ToItemID( GetContainerItemLink(item:GetParent():GetID() , item:GetID()) );
                end
                
                if(link) then
                        local name = (GetItemInfo(link));
                        
                        if(name) then
                                if( not string.find(string.lower(name), nameFilter) ) then
                                        getglobal(item:GetName() .. "IconTexture"):SetVertexColor(0.5, 0.5, 0.5, 0.5);
                                else
                                        getglobal(item:GetName() .. "IconTexture"):SetVertexColor(1, 1, 1, 1);
                                end
                        else
                                getglobal(item:GetName() .. "IconTexture"):SetVertexColor(1, 1, 1, 1);
                        end
                end
        else
                getglobal(item:GetName() .. "IconTexture"):SetVertexColor(1, 1, 1, 1);
        end
end

local oBagnonFrame_OnHide = BagnonFrame_OnHide
BagnonFrame_OnHide = function()
        oBagnonFrame_OnHide();
        
        if(BagnonSpot:IsVisible() and BagnonSpot.frame == this) then
                BagnonSpot:Hide();
        end
end

local oBagnonFrame_OnEnter = BagnonFrame_OnEnter;
BagnonFrame_OnEnter = function()
        oBagnonFrame_OnEnter();
        
        if(BagnonSets.showTooltips) then
                GameTooltip:AddLine(BAGNON_SPOT_TOOLTIP);
                GameTooltip:Show();
        end
end

Generated by GNU Enscript 1.6.5.90.