initial commit
This commit is contained in:
61
Core/UI/Elements/SecureMacroActionButton.lua
Normal file
61
Core/UI/Elements/SecureMacroActionButton.lua
Normal file
@@ -0,0 +1,61 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster --
|
||||
-- https://tradeskillmaster.com --
|
||||
-- All Rights Reserved - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
--- SecureMacroActionButton UI Element Class.
|
||||
-- A secure macro action button builds on top of WoW's `SecureActionButtonTemplate` to allow executing scripts which
|
||||
-- addon buttons would otherwise be forbidden from running. It is a subclass of the @{ActionButton} class.
|
||||
-- @classmod SecureMacroActionButton
|
||||
|
||||
local _, TSM = ...
|
||||
local ScriptWrapper = TSM.Include("Util.ScriptWrapper")
|
||||
local SecureMacroActionButton = TSM.Include("LibTSMClass").DefineClass("SecureMacroActionButton", TSM.UI.ActionButton)
|
||||
local UIElements = TSM.Include("UI.UIElements")
|
||||
UIElements.Register(SecureMacroActionButton)
|
||||
TSM.UI.SecureMacroActionButton = SecureMacroActionButton
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Public Class Methods
|
||||
-- ============================================================================
|
||||
|
||||
function SecureMacroActionButton.__init(self, name)
|
||||
self.__super:__init(name, true)
|
||||
local frame = self:_GetBaseFrame()
|
||||
frame:SetAttribute("type1", "macro")
|
||||
frame:SetAttribute("macrotext1", "")
|
||||
end
|
||||
|
||||
function SecureMacroActionButton.Release(self)
|
||||
local frame = self:_GetBaseFrame()
|
||||
ScriptWrapper.Clear(frame, "PreClick")
|
||||
frame:SetAttribute("macrotext1", "")
|
||||
self.__super:Release()
|
||||
end
|
||||
|
||||
--- Registers a script handler.
|
||||
-- @tparam SecureMacroActionButton self The secure macro action button object
|
||||
-- @tparam string script The script to register for (supported scripts: `PreClick`)
|
||||
-- @tparam function handler The script handler which will be called with the secure macro action button object followed
|
||||
-- by any arguments to the script
|
||||
-- @treturn SecureMacroActionButton The secure macro action button object
|
||||
function SecureMacroActionButton.SetScript(self, script, handler)
|
||||
if script == "PreClick" or script == "PostClick" then
|
||||
self.__super.__super:SetScript(script, handler)
|
||||
else
|
||||
error("Unknown SecureActionButton script: "..tostring(script))
|
||||
end
|
||||
return self
|
||||
end
|
||||
|
||||
--- Sets the macro text which clicking the button executes.
|
||||
-- @tparam SecureMacroActionButton self The secure macro action button object
|
||||
-- @tparam string text THe macro text
|
||||
-- @treturn SecureMacroActionButton The secure macro action button object
|
||||
function SecureMacroActionButton.SetMacroText(self, text)
|
||||
self:_GetBaseFrame():SetAttribute("macrotext1", text)
|
||||
return self
|
||||
end
|
||||
Reference in New Issue
Block a user