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.
49 lines
1.4 KiB
49 lines
1.4 KiB
|
5 years ago
|
local WIT, core = ...
|
||
|
|
|
||
|
|
local AceGUI = LibStub("AceGUI-3.0")
|
||
|
|
|
||
|
|
function core.UI.ActionIcon(options)
|
||
|
|
options = options or {}
|
||
|
|
local width = options.Width or 24
|
||
|
|
local height = options.Height or width
|
||
|
|
local frame = CreateFrame("Button", nil, UIParent, "UIPanelButtonTemplate")
|
||
|
|
frame:SetWidth(width)
|
||
|
|
frame:SetHeight(height)
|
||
|
|
frame:SetNormalTexture(options.Icon)
|
||
|
|
|
||
|
|
local widget = {
|
||
|
|
frame = frame,
|
||
|
|
type = "ActionIcon"
|
||
|
|
}
|
||
|
|
|
||
|
|
frame:SetScript("OnEnter", function()
|
||
|
|
if widget.tooltip then
|
||
|
|
GameTooltip:SetOwner(frame, "ANCHOR_PRESERVE")
|
||
|
|
GameTooltip:ClearAllPoints()
|
||
|
|
GameTooltip:SetPoint("LEFT", frame, "RIGHT")
|
||
|
|
GameTooltip:ClearLines()
|
||
|
|
GameTooltip:AddLine(widget.tooltip)
|
||
|
|
GameTooltip:Show()
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
frame:SetScript("OnLeave", function()
|
||
|
|
if widget.tooltip then
|
||
|
|
GameTooltip:Hide()
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
|
||
|
|
widget.OnAcquire = function() end
|
||
|
|
widget.OnClick = function(self, action) frame:SetScript("OnClick", action or self) end
|
||
|
|
widget.Enable = function() frame:Enable() end
|
||
|
|
widget.Disable = function() frame:Disable() end
|
||
|
|
widget.Toggle = function(self, show)
|
||
|
|
if self ~= widget and self or show then
|
||
|
|
frame:Enable()
|
||
|
|
else
|
||
|
|
frame:Disable()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
return AceGUI:RegisterAsWidget(widget)
|
||
|
|
end
|