vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:


function EQL3_Tooltip_OnLoad()
        -- this will catch mobs needed for quests
        this:RegisterEvent('UPDATE_MOUSEOVER_UNIT');
        
        -- this should catch items when you're going to sell them
        EQL3_ContainerFrameItemButton_OnEnter = ContainerFrameItemButton_OnEnter;
        ContainerFrameItemButton_OnEnter = EQL3_New_ContainerFrameItemButton_OnEnter;
end


function EQL3_Tooltip_OnEvent(event)

    if (event == 'UPDATE_MOUSEOVER_UNIT') then
        -- check if quest mob if player wants the tooltip feature...
                                if ( QuestlogOptions[EQL3_Player].MobTooltip == 1 ) then
                                        EQL3_ScanTooltip();
                                end
    end

end



-- New function for container items
function EQL3_New_ContainerFrameItemButton_OnEnter()
        -- call old function
        EQL3_ContainerFrameItemButton_OnEnter();
        
        -- if player wants the tooltip feature...
        if ( QuestlogOptions[EQL3_Player].ItemTooltip == 1 ) then
                EQL3_ScanTooltip();
        end
end

function EQL3_ScanTooltip()
    if ( GameTooltip ~= nil and
                                 getglobal('GameTooltipTextLeft1'):IsVisible() and
                                 getglobal('GameTooltipTextLeft1'):GetText() ~= nil ) then

                        return EQL3_ScanTooltipItem(getglobal('GameTooltipTextLeft1'):GetText());

    end
                
                return false;
end



function EQL3_ScanTooltipItem(queryString)
        if(queryString == nil) then return false; end
        
        local oldSelection = GetQuestLogSelection();
                if(oldSelection < 1) then oldSelection = 1; end
                
        local questID;
        local numEntries = GetNumQuestLogEntries();
        local questTitle, level, questTag, isHeader;
        local numObjectives;
        local found = false;
        local text, typ, finished;
        
        -- loop through all quests
        for i=1, numEntries, 1 do
                questID = i;
                questTitle, level, questTag, isHeader = GetQuestLogTitle(questID);
                
                if (not isHeader) then
                        SelectQuestLogEntry(questID);
                        if(questTitle) then                             
                                numObjectives = GetNumQuestLeaderBoards();
                                if(numObjectives > 0) then      
                                        
                                        -- loop through all objectives
                                        for j=1, numObjectives, 1 do
                                                text, typ, finished = GetQuestLogLeaderBoard(j);
                                                if(not text or strlen(text) == 0) then
                                                        text = typ;
                                                end
                                                x = string.find(text, queryString);
                                                if (x ~= nil) then
                                                
                                                        local completion = nil;
                                                        
                                                        for y, z in string.gfind(text, "(%d+)/(%d+)") do
                                                                completion = "   ("..y.."/"..z..")";
                                                        end
                                                        
                                                        -- DEFAULT_CHAT_FRAME:AddMessage("EQL: ".. y..", "..z, 1, 1, 1, 1);
                                                        
                                                        if ( QuestlogOptions[EQL3_Player].ShowQuestLevels == 1 ) then
                                                                if(questTag ~= NIL) then
                                                                        level = level.."+"
                                                                end
                                                                questTitle = "["..level.."] "..questTitle;
                                                        end
                                                        
                                                        if ( QuestlogOptions[EQL3_Player].CustomTooltipColor == 1 ) then
                                                                questTitle = EQL3_ColorText(questTitle, QuestlogOptions[EQL3_Player].Color["Tooltip"].r, QuestlogOptions[EQL3_Player].Color["Tooltip"].g, QuestlogOptions[EQL3_Player].Color["Tooltip"].b);
                                                        else
                                                                questTitle = EQL3_ColorText(questTitle, 1.0, 0.8, 0.0);
                                                        end
                                                        
                                                        if (completion ~= nil) then
                                                                questTitle = questTitle..completion;
                                                        end
                                                        
                                                        -- add tooltip line
                                                        GameTooltip:AddLine(" ", 1, 1, 1, 1);
                                                        GameTooltip:AddLine(questTitle, 1, 1, 1, 1);    
                                                        GameTooltip:SetHeight(GameTooltip:GetHeight() + 28);
                                                        
                                                        -- resize tooltip
                                                        leng = getglobal(GameTooltip:GetName() .. "TextLeft" .. GameTooltip:NumLines()):GetStringWidth();
                                                        leng = leng + 22;
                                                
                                                        if ( leng > GameTooltip:GetWidth() ) then
                                                                GameTooltip:SetWidth(leng);
                                                        end
                                                        
                                                        found = true;
                                                end
                                                if(found) then
                                                        break;
                                                end
                                        end -- loop through all objectives
                                        
                                end
                        end
                end
                
        end -- loop through all quests
        
end



function EQL3_ScanTooltipForQuest()

end