mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-22 15:46:56 +00:00
60 lines
1.6 KiB
Lua
60 lines
1.6 KiB
Lua
-- load pfUI environment
|
|
setfenv(1, pfUI:GetEnvironment())
|
|
|
|
--[[ libtooltip ]]--
|
|
-- A pfUI library that provides additional GameTooltip information.
|
|
--
|
|
-- libtooltip:GetItemID()
|
|
-- returns the itemID of the current GameTooltip
|
|
-- `nil` when no item is displayed
|
|
--
|
|
-- libtooltip:GetItemLink()
|
|
-- returns the itemLink of the current GameTooltip
|
|
-- `nil` when no item is displayed
|
|
--
|
|
-- libtooltip:GetItemCount()
|
|
-- returns the item count (bags) of the current GameTooltip
|
|
-- `nil` when no item is displayed
|
|
|
|
-- return instantly when another libtooltip is already active
|
|
if pfUI.api.libtooltip then return end
|
|
|
|
local libtooltip = CreateFrame("Frame" , "pfLibTooltip", GameTooltip)
|
|
|
|
libtooltip:SetScript("OnShow", function()
|
|
if this:GetParent():HasItem() then
|
|
libtooltip.itemName, libtooltip.itemLink, libtooltip.itemID = this:GetParent():GetItem()
|
|
end
|
|
end)
|
|
|
|
libtooltip:SetScript("OnHide", function()
|
|
this.itemID = nil
|
|
this.itemLink = nil
|
|
this.itemCount = nil
|
|
this.itemName = nil
|
|
end)
|
|
|
|
-- core functions
|
|
libtooltip.GetItemID = function(self)
|
|
if not libtooltip.itemLink then return end
|
|
if not libtooltip.itemID then
|
|
libtooltip.itemID = C_Item.GetItemInfoInstant(libtooltip.itemLink)
|
|
end
|
|
|
|
return libtooltip.itemID
|
|
end
|
|
|
|
libtooltip.GetItemLink = function(self)
|
|
return libtooltip.itemLink
|
|
end
|
|
|
|
libtooltip.GetItemCount = function(self)
|
|
return libtooltip.itemCount
|
|
end
|
|
|
|
pfUI.api.libtooltip = libtooltip
|
|
|
|
hooksecurefunc(GameTooltip, "SetBagItem", function(self, container, slot)
|
|
_, libtooltip.itemCount = GetContainerItemInfo(container, slot)
|
|
end)
|