vanilla-wow-addons – Rev 1

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

local nameFilter;

--[[ Search Functions ]]--

function BagnonSpot_Search(text)
        if text and text ~= "" then
                nameFilter = string.lower(text)
        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 BagnonSpot_ClearSearch()
        nameFilter = nil
        
        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

                BagnonSpot:ClearAllPoints()
                BagnonSpot:SetPoint("TOPLEFT", frame:GetName() .. "Title", "TOPLEFT", -2, 1)
                BagnonSpot:SetPoint("BOTTOMRIGHT", frame:GetName() .. "Title", "BOTTOMRIGHT", 4, -1)
                BagnonSpot:Show()
        end
end

local function ToItemID(hyperLink)
        if hyperLink then
                local _, _, w = string.find(hyperLink, "item:(%d+)")
                return w
        end
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 and not string.find(string.lower(name), nameFilter) then
                                item:SetAlpha(item:GetParent():GetParent():GetAlpha()/3)
                        else
                                item:SetAlpha(item:GetParent():GetParent():GetAlpha())
                        end
                end
        else
                item:SetAlpha(item:GetParent():GetParent():GetAlpha())
        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.