<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://addonstudio.org/mw1/index.php?action=history&amp;feed=atom&amp;title=WoW%3ASecureTemplates</id>
	<title>WoW:SecureTemplates - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://addonstudio.org/mw1/index.php?action=history&amp;feed=atom&amp;title=WoW%3ASecureTemplates"/>
	<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;action=history"/>
	<updated>2026-05-22T11:25:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16867&amp;oldid=prev</id>
		<title>Move page script: Move page script moved page SecureTemplates to WoW:SecureTemplates without leaving a redirect</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16867&amp;oldid=prev"/>
		<updated>2023-08-15T04:48:56Z</updated>

		<summary type="html">&lt;p&gt;Move page script moved page &lt;a href=&quot;/wiki/WoW:SecureTemplates&quot; title=&quot;WoW:SecureTemplates&quot;&gt;SecureTemplates&lt;/a&gt; to &lt;a href=&quot;/wiki/WoW:SecureTemplates&quot; title=&quot;WoW:SecureTemplates&quot;&gt;SecureTemplates&lt;/a&gt; without leaving a redirect&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:48, 15 August 2023&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key addonstu_asmw2:diff::1.12:old-16866:rev-16867 --&gt;
&lt;/table&gt;</summary>
		<author><name>Move page script</name></author>
	</entry>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16866&amp;oldid=prev</id>
		<title>WoWWiki&gt;Starlightblunder: /* An example */ replace target attribute with unit: proper name</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16866&amp;oldid=prev"/>
		<updated>2009-06-06T13:25:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;An example: &lt;/span&gt; replace target attribute with unit: proper name&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;//addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;amp;diff=16866&amp;amp;oldid=16865&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WoWWiki&gt;Starlightblunder</name></author>
	</entry>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16865&amp;oldid=prev</id>
		<title>WoWWiki&gt;Charitwo at 21:06, 7 July 2008</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16865&amp;oldid=prev"/>
		<updated>2008-07-07T21:06:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:06, 7 July 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:UI &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Technical Details&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:UI &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;technical details&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[API SecureTemplates|Secure Templates]] are an option for UI Developers to use secure functions indirectly by creating secure objects (through inheriting Secure Templates) and altering their attributes.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[API SecureTemplates|Secure Templates]] are an option for UI Developers to use secure functions indirectly by creating secure objects (through inheriting Secure Templates) and altering their attributes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key addonstu_asmw2:diff::1.12:old-16864:rev-16865 --&gt;
&lt;/table&gt;</summary>
		<author><name>WoWWiki&gt;Charitwo</name></author>
	</entry>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16864&amp;oldid=prev</id>
		<title>WoWWiki&gt;Watchout: /* SecureActionButtonTemplate */</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16864&amp;oldid=prev"/>
		<updated>2007-09-12T14:03:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;&lt;a href=&quot;/mw1/index.php?title=WoW:UI_SecureActionButtonTemplate&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WoW:UI SecureActionButtonTemplate (page does not exist)&quot;&gt;SecureActionButtonTemplate&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:03, 12 September 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:UI]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:UI &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Technical Details&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[API SecureTemplates|Secure Templates]] are an option for UI Developers to use secure functions indirectly by creating secure objects (through inheriting Secure Templates) and altering their attributes.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[API SecureTemplates|Secure Templates]] are an option for UI Developers to use secure functions indirectly by creating secure objects (through inheriting Secure Templates) and altering their attributes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Attributes====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Attributes====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;unit:any valid [[UnitId]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;unit:any valid [[UnitId]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;type:known values for this are: action, spell, target&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;type:known values for this are: action&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, actionbar, assist, attribute, click, focus, item, macro, menu, pet&lt;/ins&gt;, spell&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, stop&lt;/ins&gt;, target&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;action:any valid action - defined by the &amp;quot;type&amp;quot; argument&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;action:any valid action - defined by the &amp;quot;type&amp;quot; argument&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;harmbutton:Special attribute that calls the attribute given by &amp;quot;type-&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;quot; and &amp;quot;&amp;#039;&amp;#039;typestring&amp;#039;&amp;#039;-&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;quot; instead of action. Well that seems a bit complicated so I should clarify this with an example&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;harmbutton:Special attribute that calls the attribute given by &amp;quot;type-&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;quot; and &amp;quot;&amp;#039;&amp;#039;typestring&amp;#039;&amp;#039;-&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;quot; instead of action. Well that seems a bit complicated so I should clarify this with an example&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l55&quot;&gt;Line 55:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/Scripts&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/Scripts&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/Button&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/Button&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==[[UI SecureUnitButtonTemplate|SecureUnitButtonTemplate]]==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==[[UI SecureUnitButtonTemplate|SecureUnitButtonTemplate]]==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key addonstu_asmw2:diff::1.12:old-16863:rev-16864 --&gt;
&lt;/table&gt;</summary>
		<author><name>WoWWiki&gt;Watchout</name></author>
	</entry>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16863&amp;oldid=prev</id>
		<title>WoWWiki&gt;Jellisii: Added category:UI</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16863&amp;oldid=prev"/>
		<updated>2007-03-08T04:28:28Z</updated>

		<summary type="html">&lt;p&gt;Added category:UI&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:28, 8 March 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:UI]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[API SecureTemplates|Secure Templates]] are an option for UI Developers to use secure functions indirectly by creating secure objects (through inheriting Secure Templates) and altering their attributes.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[API SecureTemplates|Secure Templates]] are an option for UI Developers to use secure functions indirectly by creating secure objects (through inheriting Secure Templates) and altering their attributes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key addonstu_asmw2:diff::1.12:old-16862:rev-16863 --&gt;
&lt;/table&gt;</summary>
		<author><name>WoWWiki&gt;Jellisii</name></author>
	</entry>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16862&amp;oldid=prev</id>
		<title>WoWWiki&gt;Watchout: added link</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:SecureTemplates&amp;diff=16862&amp;oldid=prev"/>
		<updated>2007-03-06T18:53:10Z</updated>

		<summary type="html">&lt;p&gt;added link&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[API SecureTemplates|Secure Templates]] are an option for UI Developers to use secure functions indirectly by creating secure objects (through inheriting Secure Templates) and altering their attributes.&lt;br /&gt;
&lt;br /&gt;
However it is still not posiible to invoke protected functions directly from objects inheriting Secure Templates.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;This article contains information taken from extracted .lua files on 25, Jan 2007&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureFrameTemplate|SecureFrameTemplate]]==&lt;br /&gt;
This is the basic secure template. All other secure templates inherit it.&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureActionButtonTemplate|SecureActionButtonTemplate]]==&lt;br /&gt;
A basic action button capable of using actions through [[ActionSlot]] or by given spell/ability names &lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
;unit:any valid [[UnitId]]&lt;br /&gt;
;type:known values for this are: action, spell, target&lt;br /&gt;
;action:any valid action - defined by the &amp;quot;type&amp;quot; argument&lt;br /&gt;
;harmbutton:Special attribute that calls the attribute given by &amp;quot;type-&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;quot; and &amp;quot;&amp;#039;&amp;#039;typestring&amp;#039;&amp;#039;-&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;quot; instead of action. Well that seems a bit complicated so I should clarify this with an example&lt;br /&gt;
 harmbutton1=&amp;quot;myname1&amp;quot;&lt;br /&gt;
 type-myname1=&amp;quot;spell&amp;quot;&lt;br /&gt;
 spell-myname1=&amp;quot;Shadow Bolt&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 harmbutton2=&amp;quot;myname2&amp;quot;&lt;br /&gt;
 type-myname2=&amp;quot;action&amp;quot;&lt;br /&gt;
 action-myname2=&amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;small&amp;gt;(this example was not tested yet, it should work but may not, it is purely to make clear why 3 attributes are needed)&amp;lt;/small&amp;gt;&lt;br /&gt;
:So the flow is like this: an attribute &amp;quot;harmbutton1&amp;quot; is found (because we clicked with the left mouse button), and it&amp;#039;s value is used as the new action attribute. For this, the type attribute &amp;#039;&amp;#039;type-myname1&amp;#039;&amp;#039; must be set to the type of action executed - spell in this case. Then WoW looks for the attribute spell-myname1 and executes it.&lt;br /&gt;
;helpbutton:Same as harmbutton but for abilities that can only be used on friendly units&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any of the attributes may have a number attached that corresponds to the mouse button - i.e. action2 specifies an action executed when rightclicking the button. Or the special character &amp;quot;*&amp;quot; (asterisk) meaning any button.&lt;br /&gt;
&lt;br /&gt;
Any of the attributes may have a modifier &amp;#039;&amp;#039;prepended&amp;#039;&amp;#039; that corresponds to modifier keys - i.e. alt-action means this action is only executed when the alt-key is pressed while clicking it. Or the special character &amp;quot;*&amp;quot; (asterisk) meaning any modifier key (this should be the default of the standard action buttons).&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
A really basic example would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Button name=&amp;quot;ReallyBasicButtonTemplate&amp;quot; inherits=&amp;quot;SecureActionButtonTemplate&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Size&amp;gt;&lt;br /&gt;
		&amp;lt;AbsDimension x=&amp;quot;36&amp;quot; y=&amp;quot;36&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Size&amp;gt;&lt;br /&gt;
	&amp;lt;Anchors&amp;gt;&lt;br /&gt;
		&amp;lt;Anchor point=&amp;quot;CENTER&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Anchors&amp;gt;&lt;br /&gt;
	&amp;lt;NormalTexture&amp;gt;&lt;br /&gt;
		&amp;lt;Color r=&amp;quot;1&amp;quot; g=&amp;quot;0&amp;quot; b=&amp;quot;0&amp;quot; a=&amp;quot;0.5&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/NormalTexture&amp;gt;&lt;br /&gt;
	&amp;lt;PushedTexture&amp;gt;&lt;br /&gt;
		&amp;lt;Color r=&amp;quot;0&amp;quot; g=&amp;quot;1&amp;quot; b=&amp;quot;0&amp;quot; a=&amp;quot;0.5&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/PushedTexture&amp;gt;&lt;br /&gt;
	&amp;lt;Scripts&amp;gt;&lt;br /&gt;
		&amp;lt;OnLoad&amp;gt;&lt;br /&gt;
			this:SetAttribute(&amp;quot;type*&amp;quot;  , &amp;quot;action&amp;quot;);&lt;br /&gt;
			this:SetAttribute(&amp;quot;action1&amp;quot;, 1);&lt;br /&gt;
		&amp;lt;/OnLoad&amp;gt;&lt;br /&gt;
	&amp;lt;/Scripts&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureUnitButtonTemplate|SecureUnitButtonTemplate]]==&lt;br /&gt;
Unit button, for targeting units - like the group frames. Though it&amp;#039;s basically a reduced version of SecureActionButton, since it calls the same functions anyway but overwriting type1 to target and type2 to menu which means it will open the unit menu on rightclick and target the given unit on leftclick.&lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
;target:Any valid [[UnitId]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureStateHeaderTemplate|SecureStateHeaderTemplate]]==&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;#039;&amp;#039;This is one more advanced template and I&amp;#039;m still not quite into it... Sorry. But I will write down what I know.&amp;#039;&amp;#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The template has four basic function it can control for it&amp;#039;s child frames/objects&lt;br /&gt;
# Child Visibility&lt;br /&gt;
# (Mouse) Button Mapping&lt;br /&gt;
# State Transitions&lt;br /&gt;
# Key Rebinding&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The template by itself will not do anything, it is meant to control child frames. But first a frame has to be registered with the state header. That means child frames don&amp;#039;t have to be actual child frames in terms of setparent functions or parent attribute. (actually it won&amp;#039;t probably work with only a parent attribute)&lt;br /&gt;
&lt;br /&gt;
To register a frame with the template, use the following example:&lt;br /&gt;
 &amp;#039;&amp;#039;SecureStateHeaderName&amp;#039;&amp;#039;:SetAttribute(&amp;quot;addchild&amp;quot;, &amp;#039;&amp;#039;ChildName&amp;#039;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===State names===&lt;br /&gt;
State names - according to the documentation - can be any string value, though I would not recommend using the characters &amp;#039;-&amp;#039;, &amp;#039;,&amp;#039;, &amp;#039;;&amp;#039; and &amp;#039;:&amp;#039; in them, though positive integer values are recommended. One reason is that they can be combined like &amp;quot;1,2,3,4,5,6,7,8,9&amp;quot; may also be written as &amp;quot;1-9&amp;quot;. Naturally &amp;quot;pear,apple,cherry&amp;quot; can&amp;#039;t be combined to &amp;quot;pear-cherry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Attribute Syntax===&lt;br /&gt;
The state header makes use of a specific attribute value syntax (other than the SecureActionButton&amp;#039;s attribute &amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; syntax, so they should not interfere).&lt;br /&gt;
Any attribute can contain state specific information, telling WoW which value applies to which state. The basic syntax should be&lt;br /&gt;
 attribute=&amp;quot;value11:value12;value21:value22;...&amp;quot;&lt;br /&gt;
  or&lt;br /&gt;
 attribute=&amp;quot;value1,value2,value3,...&amp;quot;&lt;br /&gt;
meaning value11 is mapped to value12 and value21 maps to value22. Or just listing values/states. The specific syntax of the value depends on it&amp;#039;s attribute.&lt;br /&gt;
: There is a special syntax to combine integer values in a row. Use &amp;quot;1-5&amp;quot; instead of &amp;quot;1,2,3,4,5&amp;quot; or &amp;quot;1,3-9&amp;quot; instead of &amp;quot;1,3,4,5,6,7,8,9&amp;quot; etc. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===State Transitions===&lt;br /&gt;
After a child frame is clicked it&amp;#039;s &amp;quot;newstate&amp;quot; attribute is parsed to retrieve the new state of the state header. The syntax is quite wicked though.&lt;br /&gt;
 newstate=&amp;quot;*:&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
  Means that no matter what state we&amp;#039;re in, we go to state &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&lt;br /&gt;
 newstate=&amp;quot;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
 newstate=&amp;quot;1-4&amp;quot; (example)&lt;br /&gt;
  Means that if we are in state 1, the next state is 2.&lt;br /&gt;
  If we are in state 4, the next state is 1&lt;br /&gt;
 newstate=&amp;quot;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;:&amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
 newstate=&amp;quot;1-4:9&amp;quot; (example)&lt;br /&gt;
  Means that if we are in states 1 to 4, we will transit to state 9&lt;br /&gt;
 newstate=&amp;quot;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039;:&amp;#039;&amp;#039;u&amp;#039;&amp;#039;:&amp;#039;&amp;#039;v&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
 newstate=&amp;quot;1-2:5-6&amp;quot; (example)&lt;br /&gt;
  Means that if we are in state 1 the new state is 5 and&lt;br /&gt;
  If we are in state 2 the new state is 6.&lt;br /&gt;
 newstate=&amp;quot;1-2:5-6;7-8:1&amp;quot; (example)&lt;br /&gt;
  A combination.&lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
;newstate:Contains state transition rules&lt;br /&gt;
;delaystate:Contains state transition rules to be executed after &amp;#039;&amp;#039;delaytime&amp;#039;&amp;#039;. The Syntax is the same as for &amp;#039;&amp;#039;newstate&amp;#039;&amp;#039;&lt;br /&gt;
;delaytime:The time between parsing &amp;#039;&amp;#039;newstate&amp;#039;&amp;#039; and &amp;#039;&amp;#039;delaystate&amp;#039;&amp;#039; in seconds it is parsed similar to the attribute &amp;#039;&amp;#039;statebutton&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===Child Visibility===&lt;br /&gt;
Controls visibility of child elements depending on two attributes. Note: This attribute is an attribute of the child elements not the header!&lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
;showstates:Contains those states where the element should be visible&lt;br /&gt;
;hidestates:Contains those states where the element should &amp;#039;&amp;#039;not&amp;#039;&amp;#039; be visible&lt;br /&gt;
&lt;br /&gt;
The attribute value syntax is rather easy: A comma separated list, listing the desired states where the elements can be ranges (x-y) too.&lt;br /&gt;
 attribute=&amp;quot;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;,&amp;#039;&amp;#039;y&amp;#039;&amp;#039;,&amp;#039;&amp;#039;z&amp;#039;&amp;#039;,...&amp;quot;&lt;br /&gt;
 attribute=&amp;quot;3,4,7-9&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureStateDriverTemplate|SecureStateDriverTemplate]]==&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureAnchorButtonTemplate|SecureAnchorButtonTemplate]]==&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureAnchorEnterTemplate|SecureAnchorEnterTemplate]]==&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureAnchorUpDownTemplate|SecureAnchorUpDownTemplate]]==&lt;br /&gt;
&lt;br /&gt;
==[[UI SecurePieButtonTemplate|SecurePieButtonTemplate]]==&lt;br /&gt;
&lt;br /&gt;
==[[UI SecurePartyHeaderTemplate|SecurePartyHeaderTemplate]]==&lt;br /&gt;
&lt;br /&gt;
==[[UI SecureRaidGroupHeaderTemplate|SecureRaidGroupHeaderTemplate]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Also See==&lt;br /&gt;
* [[Secure Frames Overview]] Note: This article contains outdated information!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Note: This article contains absolutely no quotes/text passages from the *.lua files&amp;#039; documentation written by Iriel/Blizzard. Since I don&amp;#039;t own an US account I could not ask them for permission. If you are adding quotes etc. from Iriel or Blizzard employees ensure to get their permission first. Otherwise this article should be GNU FDL as all other contributions. ~~~~ --&amp;gt;&lt;/div&gt;</summary>
		<author><name>WoWWiki&gt;Watchout</name></author>
	</entry>
</feed>