ElvUI/Modules/Skins/Blizzard/Tooltip.lua

97 lines
3.0 KiB
Lua

local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule('Skins')
local TT = E:GetModule('Tooltip')
local _G = _G
local pairs = pairs
local unpack = unpack
local function IslandTooltipStyle(self)
self:SetBackdrop()
self:SetTemplate('Transparent', nil, true)
end
function S:StyleTooltips()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tooltip) then return end
for _, tt in pairs({
_G.ItemRefTooltip,
_G.ItemRefShoppingTooltip1,
_G.ItemRefShoppingTooltip2,
_G.FriendsTooltip,
_G.WarCampaignTooltip,
_G.EmbeddedItemTooltip,
_G.ReputationParagonTooltip,
_G.GameTooltip,
_G.ShoppingTooltip1,
_G.ShoppingTooltip2,
_G.QuickKeybindTooltip,
_G.QuestScrollFrame.StoryTooltip,
_G.QuestScrollFrame.CampaignTooltip,
-- ours
_G.ElvUIConfigTooltip,
_G.ElvUISpellBookTooltip
}) do
TT:SetStyle(tt)
end
end
function S:TooltipFrames()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tooltip) then return end
S:StyleTooltips()
S:HandleCloseButton(_G.ItemRefTooltip.CloseButton)
-- Skin Blizzard Tooltips
local ItemTooltip = _G.GameTooltip.ItemTooltip
ItemTooltip:CreateBackdrop('Default')
ItemTooltip.backdrop:SetOutside(ItemTooltip.Icon)
ItemTooltip.Count:ClearAllPoints()
ItemTooltip.Count:Point('BOTTOMRIGHT', ItemTooltip.Icon, 'BOTTOMRIGHT', 1, 0)
ItemTooltip.Icon:SetTexCoord(unpack(E.TexCoords))
S:HandleIconBorder(ItemTooltip.IconBorder)
-- StoryTooltip
local StoryTooltip = _G.QuestScrollFrame.StoryTooltip
StoryTooltip:SetFrameLevel(4)
-- EmbeddedItemTooltip (also Paragon Reputation)
local embedded = _G.EmbeddedItemTooltip
embedded:SetTemplate('Transparent')
if embedded.ItemTooltip.Icon then
S:HandleIcon(embedded.ItemTooltip.Icon, true)
end
embedded:HookScript('OnShow', function(tt)
tt:SetTemplate('Transparent')
end)
-- Skin GameTooltip Status Bar
_G.GameTooltipStatusBar:SetStatusBarTexture(E.media.normTex)
_G.GameTooltipStatusBar:CreateBackdrop('Transparent')
_G.GameTooltipStatusBar:ClearAllPoints()
_G.GameTooltipStatusBar:Point('TOPLEFT', _G.GameTooltip, 'BOTTOMLEFT', E.Border, -(E.Spacing * 3))
_G.GameTooltipStatusBar:Point('TOPRIGHT', _G.GameTooltip, 'BOTTOMRIGHT', -E.Border, -(E.Spacing * 3))
E:RegisterStatusBar(_G.GameTooltipStatusBar)
-- Tooltip Styling
TT:SecureHook('GameTooltip_ShowStatusBar') -- Skin Status Bars
TT:SecureHook('GameTooltip_ShowProgressBar') -- Skin Progress Bars
TT:SecureHook('GameTooltip_AddQuestRewardsToTooltip') -- Color Progress Bars
TT:SecureHook('SharedTooltip_SetBackdropStyle', 'SetStyle') -- This also deals with other tooltip borders like AzeriteEssence Tooltip
-- Used for Island Skin
TT:RegisterEvent('ADDON_LOADED', function(event, addon)
if addon == 'Blizzard_IslandsQueueUI' then
local tt = _G.IslandsQueueFrameTooltip:GetParent()
tt:GetParent():HookScript('OnShow', IslandTooltipStyle)
tt.IconBorder:Kill()
tt.Icon:SetTexCoord(unpack(E.TexCoords))
TT:UnregisterEvent(event)
end
end)
end
S:AddCallback('TooltipFrames')