You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.0 KiB
82 lines
2.0 KiB
local _, L = ...
|
|
local Tooltip = {}
|
|
local isConsolePortLoaded = IsAddOnLoaded('ConsolePort')
|
|
L.TooltipMixin = Tooltip
|
|
|
|
function Tooltip:OnShow()
|
|
L.UIFrameFadeIn(self, 0.2, 0, 1)
|
|
self:SetAllPoints()
|
|
end
|
|
|
|
function Tooltip:OnHide()
|
|
self:ClearAllPoints()
|
|
self:OnLeave()
|
|
end
|
|
|
|
function Tooltip:OnEnter()
|
|
local parent = self:GetParent()
|
|
L.UIFrameFadeIn(parent.Hilite, 0.2, parent.Hilite:GetAlpha(), 1)
|
|
if not isConsolePortLoaded then
|
|
self:SetFocus()
|
|
end
|
|
end
|
|
|
|
function Tooltip:OnLeave()
|
|
local parent = self:GetParent()
|
|
L.UIFrameFadeOut(parent.Hilite, 0.2, parent.Hilite:GetAlpha(), 0)
|
|
if not isConsolePortLoaded then
|
|
self:ClearFocus()
|
|
end
|
|
end
|
|
|
|
function Tooltip:SetFocus()
|
|
local parent = self:GetParent()
|
|
GameTooltip_ShowCompareItem(parent)
|
|
if self.pool then
|
|
for tooltip in self.pool:EnumerateActive() do
|
|
if tooltip ~= parent then
|
|
L.UIFrameFadeOut(tooltip, 0.2, tooltip:GetAlpha(), 0.1)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function Tooltip:ClearFocus()
|
|
local parent = self:GetParent()
|
|
if self.pool then
|
|
for tooltip in self.pool:EnumerateActive() do
|
|
if tooltip ~= parent then
|
|
L.UIFrameFadeIn(tooltip, 0.2, tooltip:GetAlpha(), 1)
|
|
end
|
|
end
|
|
end
|
|
for _, sTooltip in pairs(parent.shoppingTooltips) do
|
|
sTooltip:Hide()
|
|
end
|
|
end
|
|
|
|
function Tooltip:SetReferences(item, inspector)
|
|
self.item = item
|
|
self.inspector = inspector
|
|
self.pool = inspector and inspector.tooltipFramePool
|
|
end
|
|
|
|
function Tooltip:OnClick()
|
|
local item = self.item
|
|
local inspector = self.inspector
|
|
if item then
|
|
if (IsModifiedClick('EXPANDITEM') and item.objectType == 'item' ) then
|
|
HandleModifiedItemClick(GetQuestItemLink(item.type, item:GetID()))
|
|
inspector:Hide()
|
|
elseif ( item.container and item.container.chooseItems and item.type == "choice" ) then
|
|
item.container.itemChoice = item:GetID()
|
|
item.highlight:SetPoint('TOPLEFT', item, 0, 0)
|
|
item.highlight:Show()
|
|
item.highlight.InAnim:Stop()
|
|
item.highlight.InAnim:Play()
|
|
item.InAnim:Stop()
|
|
item.InAnim:Play()
|
|
inspector:Hide()
|
|
end
|
|
end
|
|
end
|