mirror of
https://github.com/Blaststar/Questie-Octo-Vanilla.git
synced 2026-10-27 07:30:49 +00:00
104 lines
3.7 KiB
Lua
104 lines
3.7 KiB
Lua
-- 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
|