From 55259345dcbd32c836ae6418913fb022b8956cfc Mon Sep 17 00:00:00 2001 From: rawoil Date: Fri, 21 Jan 2022 10:57:29 +0800 Subject: [PATCH] fix tooltip --- rTooltip/core.lua | 51 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/rTooltip/core.lua b/rTooltip/core.lua index 23e0d79..c664b26 100644 --- a/rTooltip/core.lua +++ b/rTooltip/core.lua @@ -56,6 +56,13 @@ cfg.pos = "ANCHOR_NONE" --"ANCHOR_CURSOR" -- Functions ----------------------------- +-- Tooltip skin +local fakeBg = CreateFrame("Frame", nil, UIParent, "BackdropTemplate") +fakeBg:SetBackdrop({ bgFile = cfg.backdrop.bgFile, edgeFile = cfg.backdrop.bgFile, edgeSize = 1 }) +local function __GetBackdrop() return fakeBg:GetBackdrop() end +local function __GetBackdropColor() return 0, 0, 0, .7 end +local function __GetBackdropBorderColor() return 0, 0, 0 end + local function GetHexColor(color) if color.r then return ("%.2x%.2x%.2x"):format(color.r*255, color.g*255, color.b*255) @@ -343,19 +350,41 @@ local function SetCompareItemBorderColor(anchorFrame) end end +local function HideBackdrop(frame) + if frame.NineSlice then frame.NineSlice:SetAlpha(0) end + if frame.SetBackdrop then frame:SetBackdrop(nil) end +end + local function SkinTooltip(self) if self:IsForbidden() then return end if (not self.isSkinned) then + HideBackdrop(self) + self:DisableDrawLayer("BACKGROUND") StripTextures(self) CreateBackdrop(self) + if self.GetBackdrop then + self.GetBackdrop = __GetBackdrop + self.GetBackdropColor = __GetBackdropColor + self.GetBackdropBorderColor = __GetBackdropBorderColor + end + self.isSkinned = true end end +local function OnTooltipCleared(self) + if self:IsForbidden() then return end + + GameTooltip_ClearMoney(self) + GameTooltip_ClearStatusBars(self) + GameTooltip_ClearProgressBars(self) + GameTooltip_ClearWidgetSet(self) +end + ----------------------------- -- Init ----------------------------- @@ -388,8 +417,8 @@ Tooltip_Small:SetShadowColor(0,0,0,0.75) --gametooltip statusbar GameTooltipStatusBar:ClearAllPoints() -GameTooltipStatusBar:SetPoint("LEFT",3,0) -GameTooltipStatusBar:SetPoint("RIGHT",-3,0) +GameTooltipStatusBar:SetPoint("LEFT",5,0) +GameTooltipStatusBar:SetPoint("RIGHT",-5, 0) GameTooltipStatusBar:SetPoint("TOP",0,-2.5) GameTooltipStatusBar:SetHeight(4) --gametooltip statusbar bg @@ -421,16 +450,18 @@ local tooltips = { GameTooltip,ShoppingTooltip1,ShoppingTooltip2,ItemRefTooltip, WorldMapCompareTooltip1,WorldMapCompareTooltip2,SmallTextTooltip,EmbeddedItemTooltip } for i, tooltip in next, tooltips do tooltip:SetScale(cfg.scale) - -- if tooltip:HasScript("OnTooltipCleared") then - -- tooltip:HookScript("OnTooltipCleared", SetBackdropStyle) - -- end + SkinTooltip(tooltip) + if tooltip:HasScript("OnTooltipCleared") then + -- tooltip:HookScript("OnTooltipCleared", SetBackdropStyle) + tooltip:HookScript("OnTooltipCleared", OnTooltipCleared) + end end -SkinTooltip(GameTooltip) -SkinTooltip(ItemRefTooltip) -SkinTooltip(EmbeddedItemTooltip) -SkinTooltip(ShoppingTooltip1) -SkinTooltip(ShoppingTooltip2) +-- SkinTooltip(GameTooltip) +-- SkinTooltip(ItemRefTooltip) +-- SkinTooltip(EmbeddedItemTooltip) +-- SkinTooltip(ShoppingTooltip1) +-- SkinTooltip(ShoppingTooltip2) --loop over menues local menues = { -- 1.7.9.5