mirror of
https://github.com/MarkuruThunderhoof/RecipeRadar.git
synced 2026-09-22 07:26:56 +00:00
99 lines
2.8 KiB
Lua
99 lines
2.8 KiB
Lua
|
|
-- AvailabilityTooltip.lua: handles the recipe availability tooltip
|
|
-- $Id: AvailabilityTooltip.lua 282 2006-04-12 08:41:25Z jnmiller $
|
|
|
|
function RecipeRadar_AvailabilityTooltip_AddLine(msg, color)
|
|
|
|
if (RecipeRadarAvailabilityTooltip.Lines ==
|
|
RecipeRadar_AvailabilityTooltip_MaxLines) then
|
|
RecipeRadar_Print("ASSERT FAILED: tooltip has too many lines.")
|
|
return
|
|
end
|
|
|
|
local line_num = RecipeRadarAvailabilityTooltip.Lines + 1
|
|
local line = getglobal("RecipeRadarAvailabilityTooltipText" .. line_num)
|
|
|
|
-- handle null colors
|
|
if (color) then
|
|
line:SetTextColor(color.r, color.g, color.b)
|
|
else
|
|
line:SetTextColor(1, 1, 1)
|
|
end
|
|
|
|
-- handle null messages
|
|
if (not msg or msg == "") then
|
|
line:SetText(" ")
|
|
else
|
|
line:SetText(msg)
|
|
end
|
|
|
|
line:Show()
|
|
|
|
RecipeRadarAvailabilityTooltip.Lines = line_num
|
|
|
|
end
|
|
|
|
function RecipeRadar_AvailabilityTooltip_Show(frame)
|
|
|
|
if (not frame or RecipeRadarAvailabilityTooltip.Lines == 0) then
|
|
RecipeRadar_AvailabilityTooltip_Hide()
|
|
return
|
|
end
|
|
|
|
-- calculate the width of the tooltip
|
|
local height = 20
|
|
local width = 0
|
|
for i = 1, RecipeRadarAvailabilityTooltip.Lines do
|
|
local line = getglobal("RecipeRadarAvailabilityTooltipText" .. i)
|
|
height = height + line:GetHeight() + 2
|
|
if (line:GetWidth() + 20 > width) then
|
|
width = line:GetWidth() + 20
|
|
end
|
|
end
|
|
|
|
RecipeRadarAvailabilityTooltip:SetWidth(width)
|
|
RecipeRadarAvailabilityTooltip:SetHeight(height)
|
|
RecipeRadarAvailabilityTooltip:ClearAllPoints()
|
|
|
|
-- place on the left or right according to the position of the main frame
|
|
local frame_left = (frame:GetLeft() or 0) - width
|
|
local frame_right = GetScreenWidth() - (frame:GetRight() or 0) - width
|
|
|
|
local offset = 0
|
|
if (RecipeRadar_Options.ActiveTab == 2) then
|
|
offset = RECIPERADAR_VENDOR_OFFSET
|
|
end
|
|
|
|
if (frame_left < frame_right) then
|
|
if (RecipeRadarListScrollFrame:IsVisible()) then
|
|
RecipeRadarAvailabilityTooltip:SetPoint(
|
|
"TOPLEFT", frame:GetName(), "TOPRIGHT", 35, 0)
|
|
else
|
|
RecipeRadarAvailabilityTooltip:SetPoint(
|
|
"TOPLEFT", frame:GetName(), "TOPRIGHT", 13, 0)
|
|
end
|
|
else
|
|
RecipeRadarAvailabilityTooltip:SetPoint(
|
|
"TOPRIGHT", frame:GetName(), "TOPLEFT", -33 + offset, 0)
|
|
end
|
|
|
|
-- basic drawing code
|
|
RecipeRadarAvailabilityTooltip:SetBackdropColor(
|
|
TOOLTIP_DEFAULT_BACKGROUND_COLOR.r,
|
|
TOOLTIP_DEFAULT_BACKGROUND_COLOR.g,
|
|
TOOLTIP_DEFAULT_BACKGROUND_COLOR.b)
|
|
RecipeRadarAvailabilityTooltip:Show()
|
|
|
|
end
|
|
|
|
function RecipeRadar_AvailabilityTooltip_Hide()
|
|
|
|
for i = 1, RecipeRadarAvailabilityTooltip.Lines do
|
|
getglobal("RecipeRadarAvailabilityTooltipText" .. i):Hide()
|
|
end
|
|
|
|
RecipeRadarAvailabilityTooltip.Lines = 0
|
|
--RecipeRadarAvailabilityTooltip:Hide()
|
|
|
|
end
|