--[[ Tipachu Adds item icons to tooltips --]] local DEFAULT_ICON_SIZE = 24 --add icon to the tooltip local function setTooltipIcon(self, icon) local title = icon and _G[self:GetName() .. 'TextLeft1'] if title then title:SetFormattedText('|T%s:%d|t %s', icon, _G['TipachuSize'] or DEFAULT_ICON_SIZE, title:GetText()) end end --tooltip hooking generator local function newTooltipHooker(method, func) return function(tooltip) local modified = false tooltip:HookScript('OnTooltipCleared', function(self, ...) modified = false end) tooltip:HookScript(method, function(self, ...) if not modified then modified = true func(self, ...) end end) end end local hookItem = newTooltipHooker('OnTooltipSetItem', function(self, ...) local name, link = self:GetItem() if link then setTooltipIcon(self, GetItemIcon(link)) end end) local hookSpell = newTooltipHooker('OnTooltipSetSpell', function(self, ...) local name, rank, id = self:GetSpell() if id then setTooltipIcon(self, select(3, GetSpellInfo(id))) end end) --hook tooltips for _, tooltip in pairs{GameTooltip, ItemRefTooltip} do hookItem(tooltip) hookSpell(tooltip) end