Tooltip - RGXMods/RGX-Framework GitHub Wiki
Tooltip — RGXTooltip
Tooltip composition and native-tooltip augmentation. Replaces the SetOwner → ClearLines → AddLine × N → Show boilerplate (71 call sites in one surveyed consumer) with one call, and wraps Blizzard's TooltipDataProcessor so one addon's erroring hook can no longer break tooltip rendering for every other addon — Blizzard does not pcall-wrap that dispatch; RGX does.
local Tip = RGX:GetTooltip()
Composed tooltips
-- Show a fully composed tooltip anchored to a frame
Tip:Show(frame, {
anchor = "ANCHOR_RIGHT", -- default
title = "Pet Charms", -- optional first line, white
lines = {
"Plain string line (wraps).",
{ "Total", tostring(amount) }, -- double line: left, right
{ text = "Missing", r = 1, g = 0.2, b = 0.2 }, -- colored single line
{ text = detail, wrap = true },
},
})
Tip:Hide()
One-call hover wiring
-- Wires OnEnter/OnLeave in one call; builder runs at hover time so
-- content can be computed live. Return nil to skip showing.
Tip:Attach(frame, function(self)
return { title = "Live", lines = { "Computed at hover time" } }
end)
Native tooltip augmentation
-- Human vocabulary, never Enum.TooltipDataType values.
-- Valid types: item, spell, unit, aura, pet, mount, macro
Tip:HookNative("item", function(tooltip, data)
tooltip:AddLine("Extra RGX line", 1, 1, 1)
end)
One real Blizzard registration per type, ever — all RGX consumers for that type share a single pcall-guarded entry point. Registrations are session-persistent by design (Blizzard offers no unregister).
API
| Method | Returns | Notes |
|---|---|---|
Tip:Show(anchorFrame, opts) |
boolean | opts.anchor, opts.offsetX/Y, opts.title, opts.lines |
Tip:Hide() |
— | |
Tip:Attach(frame, builder) |
boolean | builder(frame) → opts table or nil |
Tip:HookNative(typeName, callback) |
boolean | callback(tooltip, data); false on unknown type |
Source: library/tooltip/tooltip.lua. Test it in-game via RGX-Hello's Tooltip tab.