SecureTemplates

From Warcraft Wiki
Jump to navigation Jump to search


SecureTemplates are a family of protected frame and button templates defined as part of FrameXML. Through attribute-based configuration, they allow addons to access some of the protected functionality. The templates are defined in FrameXML/SecureTemplates.xml, and functionality supporting them resides in FrameXML/SecureTemplates.lua

SecureTemplates
Template Widget Type Function
SecureActionButtonTemplate Button Perform protected actions.
SecureUnitButtonTemplate Button Unit frames.
SecureAuraHeaderTemplate Frame Managing buffs and debuffs.
SecureGroupHeaderTemplate Frame Managing group members.
SecurePartyHeaderTemplate Frame Managing party members.
SecureRaidGroupHeaderTemplate Frame Managing raid group members.
SecureGroupPetHeaderTemplate Frame Managing group pets.
SecurePartyPetHeaderTemplate Frame Managing party pets.
SecureRaidPetHeaderTemplate Frame Managing raid group pets.

An example

Suppose we wanted to create a button that, when clicked, would cast [Mark of the Wild] on the player. This can be solved by inheriting from SecureActionButtonTemplate and setting the relevant attributes. For example, using only XML:

<Ui>
    <Button name="MyThornsButton" inherits="SecureActionButtonTemplate" parent="UIParent">
        <Attributes>
            <Attribute name="type" type="string" value="spell"/>
            <Attribute name="spell" type="string" value="Mark of the Wild"/>
            <Attribute name="unit" type="string" value="player"/>
        </Attributes>
        <Size x="64" y="64"/>
        <Layers>
            <Layer level="OVERLAY">
                <Texture name="$parentIcon" file="Interface\Icons\Spell_Nature_Regeneration" setAllPoints="true" />
            </Layer>
        </Layers>
        <Anchors>
            <Anchor point="CENTER" />
        </Anchors>
    </Button>
</Ui>