vanilla-wow-addons – Rev 1
?pathlinks?
-- Set both the parent and the position of GameTooltip
function TitanTooltip_SetOwnerPosition(parent, anchorPoint, relativeToFrame, relativePoint, xOffset, yOffset)
GameTooltip:SetOwner(parent, "ANCHOR_NONE");
GameTooltip:SetPoint(anchorPoint, relativeToFrame, relativePoint, xOffset, yOffset);
end
function TitanTooltip_SetGameTooltip()
local fontscale = TitanPanelGetVar("FontScale");
if ( this.tooltipCustomFunction ) then
this.tooltipCustomFunction();
elseif ( this.tooltipTitle ) then
GameTooltip:SetText(this.tooltipTitle, HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
if ( this.tooltipText ) then
TitanTooltip_AddTooltipText(this.tooltipText);
end
end
if not TitanPanelGetVar("DisableFont") then
GameTooltip:SetScale(fontscale);
end
GameTooltip:Show();
end
function TitanTooltip_SetPanelTooltip(id)
if not TitanPanelGetVar("ToolTipsShown") then
return;
end
if ( not this.tooltipCustomFunction and not this.tooltipTitle ) then
return;
end
TITAN_PANEL_DROPOFF_ADDON = id;
-- Set GameTooltip
local button = TitanUtils_GetButton(id);
local position = TitanPanelGetVar("Position");
local scale = TitanPanelGetVar("Scale");
local offscreenX, offscreenY;
local i = TitanPanel_GetButtonNumber(id);
if (TitanPanelSettings.Location[i] == "Bar") then
if position == TITAN_PANEL_PLACE_TOP then
TitanTooltip_SetOwnerPosition(button, "TOPLEFT", button:GetName(), "BOTTOMLEFT", -10, -4 * scale);
TitanTooltip_SetGameTooltip();
-- Adjust GameTooltip position if it's off the screen
offscreenX, offscreenY = TitanUtils_GetOffscreen(GameTooltip);
if ( offscreenX == -1 ) then
TitanTooltip_SetOwnerPosition(button, "TOPLEFT", "TitanPanelBarButton", "BOTTOMLEFT", 0, 0);
TitanTooltip_SetGameTooltip();
elseif ( offscreenX == 1 ) then
TitanTooltip_SetOwnerPosition(button, "TOPRIGHT", "TitanPanelBarButton", "BOTTOMRIGHT", 0, 0);
TitanTooltip_SetGameTooltip();
end
else
TitanTooltip_SetOwnerPosition(button, "BOTTOMLEFT", button:GetName(), "TOPLEFT", -10, 4 * scale);
TitanTooltip_SetGameTooltip();
-- Adjust GameTooltip position if it's off the screen
offscreenX, offscreenY = TitanUtils_GetOffscreen(GameTooltip);
if ( offscreenX == -1 ) then
TitanTooltip_SetOwnerPosition(button, "BOTTOMLEFT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "TOPLEFT", 0, 0);
TitanTooltip_SetGameTooltip();
elseif ( offscreenX == 1 ) then
TitanTooltip_SetOwnerPosition(button, "BOTTOMRIGHT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "TOPRIGHT", 0, 0);
TitanTooltip_SetGameTooltip();
end
end
else
TitanTooltip_SetOwnerPosition(button, "BOTTOMLEFT", button:GetName(), "TOPLEFT", -10, 4 * scale);
TitanTooltip_SetGameTooltip();
-- Adjust GameTooltip position if it's off the screen
offscreenX, offscreenY = TitanUtils_GetOffscreen(GameTooltip);
if ( offscreenX == -1 ) then
TitanTooltip_SetOwnerPosition(button, "BOTTOMLEFT", "TitanPanelAuxBarButton", "TOPLEFT", 0, 0);
TitanTooltip_SetGameTooltip();
elseif ( offscreenX == 1 ) then
TitanTooltip_SetOwnerPosition(button, "BOTTOMRIGHT", "TitanPanelAuxBarButton", "TOPRIGHT", 0, 0);
TitanTooltip_SetGameTooltip();
end
end
end
function TitanTooltip_AddTooltipText(text)
if ( text ) then
-- Append a "\n" to the end
if ( string.sub(text, -1, -1) ~= "\n" ) then
text = text.."\n";
end
for text1, text2 in string.gfind(text, "([^\t\n]*)\t?([^\t\n]*)\n") do
if ( text2 ~= "" ) then
GameTooltip:AddDoubleLine(text1, text2);
elseif ( text1 ~= "" ) then
GameTooltip:AddLine(text1);
else
GameTooltip:AddLine("\n");
end
end
end
end