mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-22 07:36:56 +00:00
3fe072c594
pfUI's Lua hooksecurefunc lived in pfUI.env and shadowed ClassicAPI's C global for all pfUI code. Replace it with a thin pfUI.hooksecurefunc shim that keeps the missing-target no-op our call sites rely on (ClassicAPI errors on a nil target) and delegates the actual hook to _G.hooksecurefunc. Migrated all 70 internal call sites (modules/libs/skins) to pfUI.hooksecurefunc; bare hooksecurefunc now resolves to ClassicAPI's C version everywhere. Dropped the unused prepend path and the orphaned pfUI.hooks table.
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
|
|
|
|
pfUI.hooksecurefunc(GameTooltip, "SetBagItem", function(self, container, slot)
|
|
_, libtooltip.itemCount = GetContainerItemInfo(container, slot)
|
|
end)
|