<?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%3AUSEROBJECT_MenuClass</id>
	<title>WoW:USEROBJECT MenuClass - 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%3AUSEROBJECT_MenuClass"/>
	<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:USEROBJECT_MenuClass&amp;action=history"/>
	<updated>2026-05-22T08:40:17Z</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:USEROBJECT_MenuClass&amp;diff=17904&amp;oldid=prev</id>
		<title>Move page script: Move page script moved page USEROBJECT MenuClass to WoW:USEROBJECT MenuClass without leaving a redirect</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:USEROBJECT_MenuClass&amp;diff=17904&amp;oldid=prev"/>
		<updated>2023-08-15T04:49:15Z</updated>

		<summary type="html">&lt;p&gt;Move page script moved page &lt;a href=&quot;/wiki/WoW:USEROBJECT_MenuClass&quot; title=&quot;WoW:USEROBJECT MenuClass&quot;&gt;USEROBJECT MenuClass&lt;/a&gt; to &lt;a href=&quot;/wiki/WoW:USEROBJECT_MenuClass&quot; title=&quot;WoW:USEROBJECT MenuClass&quot;&gt;USEROBJECT MenuClass&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:49, 15 August 2023&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key addonstu_asmw2:diff::1.12:old-17903:rev-17904 --&gt;
&lt;/table&gt;</summary>
		<author><name>Move page script</name></author>
	</entry>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:USEROBJECT_MenuClass&amp;diff=17903&amp;oldid=prev</id>
		<title>Bear at 17:03, 21 September 2013</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:USEROBJECT_MenuClass&amp;diff=17903&amp;oldid=prev"/>
		<updated>2013-09-21T17:03:34Z</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 17:03, 21 September 2013&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;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;userfunc&lt;/del&gt;}} &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- Leave this line in! --&amp;gt;&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;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;usermodule|MenuClass&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;Create a drop down menu at your leisure and show it when you&amp;#039;re ready. This is a very basic context menu, nothing advanced.&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;Create a drop down menu at your leisure and show it when you&amp;#039;re ready. This is a very basic context menu, nothing advanced.&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-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&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;== Properties ==&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;== Properties ==&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;;.menuItems : Table. Stores the menu items.&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;;.menuItems&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;;.anchor : String. The anchor.&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;: Table. Stores the menu items.&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;;.x : The x offset&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;;.anchor&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;;.y : The y offset&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;: String. The anchor.&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;;.displayMode : The display mode.&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;;.x&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;;.autoHideDelay : The time it takes for the menu to automatically hide.&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;: The x offset&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;;.menuFrame : The menu frame.&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;;.y&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;;.uniqueID : A self incrementing number used to ensure that the generic menu frame is unique.&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;: The y offset&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;;.isTitle : Is this menu item a header? 1 if yes, nil if no.&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;;.displayMode&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;: The display mode.&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;;.autoHideDelay&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;: The time it takes for the menu to automatically hide.&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;;.menuFrame&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;: The menu frame.&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;;.uniqueID&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;: A self incrementing number used to ensure that the generic menu frame is unique.&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;;.isTitle&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;: Is this menu item a header? 1 if yes, nil if no.&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 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;== Methods ==&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;== Methods ==&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;;&amp;amp;#58;Activate() : Creates the menu frame if it has not already been set with :SetMenuFrame().&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;;&amp;amp;#58;Activate()&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;;&amp;amp;#58;AddItem(&amp;lt;string&amp;gt; text, &amp;lt;function&amp;gt; func, &amp;lt;number&amp;gt; isTitle) : Add a menu item with &amp;#039;&amp;#039;text&amp;#039;&amp;#039; text that does &amp;#039;&amp;#039;func&amp;#039;&amp;#039;. Requires at least 1.&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;: Creates the menu frame if it has not already been set with :SetMenuFrame().&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;;&amp;amp;#58;GetAttribute(&amp;lt;string|number&amp;gt; text, &amp;lt;string|number&amp;gt; attribute) : Gets an attribute for the given menu item.&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;;&amp;amp;#58;AddItem(&amp;lt;string&amp;gt; text, &amp;lt;function&amp;gt; func, &amp;lt;number&amp;gt; isTitle)&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;;&amp;amp;#58;New() : Allocate memory for the new menu and set the defaults. Required. Returns the menu.&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;: Add a menu item with &amp;#039;&amp;#039;text&amp;#039;&amp;#039; text that does &amp;#039;&amp;#039;func&amp;#039;&amp;#039;. Requires at least 1.&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;;&amp;amp;#58;RemoveItem(&amp;lt;string&amp;gt; text) : Remove the first menu item that matches &amp;#039;&amp;#039;text&amp;#039;&amp;#039;&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;;&amp;amp;#58;GetAttribute(&amp;lt;string|number&amp;gt; text, &amp;lt;string|number&amp;gt; attribute)&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;;&amp;amp;#58;SetAnchor(&amp;lt;string&amp;gt; anchor) : Set the &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039;. Optional. Default: &amp;quot;cursor&amp;quot;&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;: Gets an attribute for the given menu item.&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;;&amp;amp;#58;SetAttribute(&amp;lt;string|number&amp;gt; text, &amp;lt;string|number&amp;gt; attribute, &amp;lt;string|number&amp;gt; value) : Sets an attribute for the given menu item.&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;;&amp;amp;#58;New()&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;;&amp;amp;#58;SetDisplayMode(&amp;lt;string&amp;gt; displayMode) : Set the &amp;#039;&amp;#039;displayMode&amp;#039;&amp;#039;. Optional. Default: &amp;quot;MENU&amp;quot;&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;: Allocate memory for the new menu and set the defaults. Required. Returns the menu.&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;;&amp;amp;#58;SetAutoHideDelay(&amp;lt;number&amp;gt; autoHideDelay) : Set the &amp;#039;&amp;#039;autoHideDelay&amp;#039;&amp;#039;. Optional. Default: nil (does not auto close)&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;;&amp;amp;#58;RemoveItem(&amp;lt;string&amp;gt; text)&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;;&amp;amp;#58;SetMenuFrame(&amp;lt;menuFrame&amp;gt; menuFrame) : Set the &amp;#039;&amp;#039;menuFrame&amp;#039;&amp;#039;. Optional. Default: self generating menuFrame. If set, this must be a frame that inherits &amp;#039;&amp;#039;&amp;#039;UIDropDownMenuTemplate&amp;#039;&amp;#039;&amp;#039;.&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;: Remove the first menu item that matches &amp;#039;&amp;#039;text&amp;#039;&amp;#039;&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;;&amp;amp;#58;SetX(&amp;lt;number&amp;gt; x[, &amp;lt;boolean&amp;gt; save]) : Set the &amp;#039;&amp;#039;x&amp;#039;&amp;#039; offset. Optional. Default: nil (0 if &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039; is not &amp;quot;cursor&amp;quot;). If save resolves to true, &amp;#039;&amp;#039;x&amp;#039;&amp;#039; will be added to rather than replaced.&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;;&amp;amp;#58;SetAnchor(&amp;lt;string&amp;gt; anchor)&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;;&amp;amp;#58;SetY(&amp;lt;number&amp;gt; y[, &amp;lt;boolean&amp;gt; save]) : Set the &amp;#039;&amp;#039;y&amp;#039;&amp;#039; offset. Optional. Default: nil (0 if &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039; is not &amp;quot;cursor&amp;quot;). If save resolves to true, &amp;#039;&amp;#039;y&amp;#039;&amp;#039; will be added to rather than replaced.&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;: Set the &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039;. Optional. Default: &amp;quot;cursor&amp;quot;&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;;&amp;amp;#58;Show() : Show the menu.&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;;&amp;amp;#58;SetAttribute(&amp;lt;string|number&amp;gt; text, &amp;lt;string|number&amp;gt; attribute, &amp;lt;string|number&amp;gt; value)&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;: Sets an attribute for the given menu item.&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;;&amp;amp;#58;SetDisplayMode(&amp;lt;string&amp;gt; displayMode)&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;: Set the &amp;#039;&amp;#039;displayMode&amp;#039;&amp;#039;. Optional. Default: &amp;quot;MENU&amp;quot;&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;;&amp;amp;#58;SetAutoHideDelay(&amp;lt;number&amp;gt; autoHideDelay)&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;: Set the &amp;#039;&amp;#039;autoHideDelay&amp;#039;&amp;#039;. Optional. Default: nil (does not auto close)&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;;&amp;amp;#58;SetMenuFrame(&amp;lt;menuFrame&amp;gt; menuFrame)&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;: Set the &amp;#039;&amp;#039;menuFrame&amp;#039;&amp;#039;. Optional. Default: self generating menuFrame. If set, this must be a frame that inherits &amp;#039;&amp;#039;&amp;#039;UIDropDownMenuTemplate&amp;#039;&amp;#039;&amp;#039;.&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;;&amp;amp;#58;SetX(&amp;lt;number&amp;gt; x[, &amp;lt;boolean&amp;gt; save])&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;: Set the &amp;#039;&amp;#039;x&amp;#039;&amp;#039; offset. Optional. Default: nil (0 if &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039; is not &amp;quot;cursor&amp;quot;). If save resolves to true, &amp;#039;&amp;#039;x&amp;#039;&amp;#039; will be added to rather than replaced.&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;;&amp;amp;#58;SetY(&amp;lt;number&amp;gt; y[, &amp;lt;boolean&amp;gt; save])&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;: Set the &amp;#039;&amp;#039;y&amp;#039;&amp;#039; offset. Optional. Default: nil (0 if &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039; is not &amp;quot;cursor&amp;quot;). If save resolves to true, &amp;#039;&amp;#039;y&amp;#039;&amp;#039; will be added to rather than replaced.&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;;&amp;amp;#58;Show()&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;: Show the menu.&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 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;== Code ==&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;== Code ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bear</name></author>
	</entry>
	<entry>
		<id>https://addonstudio.org/mw1/index.php?title=WoW:USEROBJECT_MenuClass&amp;diff=17902&amp;oldid=prev</id>
		<title>WoWWiki&gt;Egingell: New page: {{userfunc}} &lt;!-- Leave this line in! --&gt; Create a drop down menu at your leisure and show it when you&#039;re ready.  == Usage == &lt;pre&gt;local menu = MenuClass:New() menu:AddItem(&#039;Do Something&#039;,...</title>
		<link rel="alternate" type="text/html" href="https://addonstudio.org/mw1/index.php?title=WoW:USEROBJECT_MenuClass&amp;diff=17902&amp;oldid=prev"/>
		<updated>2008-03-28T14:27:00Z</updated>

		<summary type="html">&lt;p&gt;New page: {{userfunc}} &amp;lt;!-- Leave this line in! --&amp;gt; Create a drop down menu at your leisure and show it when you&amp;#039;re ready.  == Usage == &amp;lt;pre&amp;gt;local menu = MenuClass:New() menu:AddItem(&amp;#039;Do Something&amp;#039;,...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{userfunc}} &amp;lt;!-- Leave this line in! --&amp;gt;&lt;br /&gt;
Create a drop down menu at your leisure and show it when you&amp;#039;re ready. This is a very basic context menu, nothing advanced.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;local menu = MenuClass:New()&lt;br /&gt;
menu:AddItem(&amp;#039;Do Something&amp;#039;, function()&lt;br /&gt;
    SendChatMessage(&amp;quot;Hello Bob!&amp;quot;, &amp;quot;WHISPER&amp;quot;, &amp;quot;Common&amp;quot;, &amp;quot;Bob&amp;quot;)&lt;br /&gt;
end)&lt;br /&gt;
menu:AddItem(&amp;#039;Close&amp;#039;, function()&lt;br /&gt;
    -- do nothing, just close.&lt;br /&gt;
end)&lt;br /&gt;
&lt;br /&gt;
local f = SomeClickableFrame&lt;br /&gt;
f:SetScript(&amp;#039;OnClick&amp;#039;, function(self, button)&lt;br /&gt;
    menu:Show()&lt;br /&gt;
end)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
;.menuItems : Table. Stores the menu items.&lt;br /&gt;
;.anchor : String. The anchor.&lt;br /&gt;
;.x : The x offset&lt;br /&gt;
;.y : The y offset&lt;br /&gt;
;.displayMode : The display mode.&lt;br /&gt;
;.autoHideDelay : The time it takes for the menu to automatically hide.&lt;br /&gt;
;.menuFrame : The menu frame.&lt;br /&gt;
;.uniqueID : A self incrementing number used to ensure that the generic menu frame is unique.&lt;br /&gt;
;.isTitle : Is this menu item a header? 1 if yes, nil if no.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
;&amp;amp;#58;Activate() : Creates the menu frame if it has not already been set with :SetMenuFrame().&lt;br /&gt;
;&amp;amp;#58;AddItem(&amp;lt;string&amp;gt; text, &amp;lt;function&amp;gt; func, &amp;lt;number&amp;gt; isTitle) : Add a menu item with &amp;#039;&amp;#039;text&amp;#039;&amp;#039; text that does &amp;#039;&amp;#039;func&amp;#039;&amp;#039;. Requires at least 1.&lt;br /&gt;
;&amp;amp;#58;GetAttribute(&amp;lt;string|number&amp;gt; text, &amp;lt;string|number&amp;gt; attribute) : Gets an attribute for the given menu item.&lt;br /&gt;
;&amp;amp;#58;New() : Allocate memory for the new menu and set the defaults. Required. Returns the menu.&lt;br /&gt;
;&amp;amp;#58;RemoveItem(&amp;lt;string&amp;gt; text) : Remove the first menu item that matches &amp;#039;&amp;#039;text&amp;#039;&amp;#039;&lt;br /&gt;
;&amp;amp;#58;SetAnchor(&amp;lt;string&amp;gt; anchor) : Set the &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039;. Optional. Default: &amp;quot;cursor&amp;quot;&lt;br /&gt;
;&amp;amp;#58;SetAttribute(&amp;lt;string|number&amp;gt; text, &amp;lt;string|number&amp;gt; attribute, &amp;lt;string|number&amp;gt; value) : Sets an attribute for the given menu item.&lt;br /&gt;
;&amp;amp;#58;SetDisplayMode(&amp;lt;string&amp;gt; displayMode) : Set the &amp;#039;&amp;#039;displayMode&amp;#039;&amp;#039;. Optional. Default: &amp;quot;MENU&amp;quot;&lt;br /&gt;
;&amp;amp;#58;SetAutoHideDelay(&amp;lt;number&amp;gt; autoHideDelay) : Set the &amp;#039;&amp;#039;autoHideDelay&amp;#039;&amp;#039;. Optional. Default: nil (does not auto close)&lt;br /&gt;
;&amp;amp;#58;SetMenuFrame(&amp;lt;menuFrame&amp;gt; menuFrame) : Set the &amp;#039;&amp;#039;menuFrame&amp;#039;&amp;#039;. Optional. Default: self generating menuFrame. If set, this must be a frame that inherits &amp;#039;&amp;#039;&amp;#039;UIDropDownMenuTemplate&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
;&amp;amp;#58;SetX(&amp;lt;number&amp;gt; x[, &amp;lt;boolean&amp;gt; save]) : Set the &amp;#039;&amp;#039;x&amp;#039;&amp;#039; offset. Optional. Default: nil (0 if &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039; is not &amp;quot;cursor&amp;quot;). If save resolves to true, &amp;#039;&amp;#039;x&amp;#039;&amp;#039; will be added to rather than replaced.&lt;br /&gt;
;&amp;amp;#58;SetY(&amp;lt;number&amp;gt; y[, &amp;lt;boolean&amp;gt; save]) : Set the &amp;#039;&amp;#039;y&amp;#039;&amp;#039; offset. Optional. Default: nil (0 if &amp;#039;&amp;#039;anchor&amp;#039;&amp;#039; is not &amp;quot;cursor&amp;quot;). If save resolves to true, &amp;#039;&amp;#039;y&amp;#039;&amp;#039; will be added to rather than replaced.&lt;br /&gt;
;&amp;amp;#58;Show() : Show the menu.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&amp;lt;pre&amp;gt;-- Set to false to use file-scoped variables or true to use the new addon-scoped variables&lt;br /&gt;
local useAddonScope = true&lt;br /&gt;
local addonName, MenuClass&lt;br /&gt;
&lt;br /&gt;
if useAddonScope then&lt;br /&gt;
    addonName, MenuClass = ...&lt;br /&gt;
else&lt;br /&gt;
    addonName, MenuClass = &amp;quot;--your addon&amp;#039;s name--&amp;quot;, {}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MenuClass:New()&lt;br /&gt;
    local ret = {}&lt;br /&gt;
    &lt;br /&gt;
    -- set the defaults&lt;br /&gt;
    ret.menuList = {}&lt;br /&gt;
    ret.anchor = &amp;#039;cursor&amp;#039;; -- default at the cursor&lt;br /&gt;
    ret.x = nil;&lt;br /&gt;
    ret.y = nil;&lt;br /&gt;
    ret.displayMode = &amp;#039;MENU&amp;#039;; -- default&lt;br /&gt;
    ret.autoHideDelay = nil;&lt;br /&gt;
    ret.menuFrame = nil; -- If not defined, :Show() will create a generic menu frame&lt;br /&gt;
    ret.uniqueID = 1&lt;br /&gt;
&lt;br /&gt;
    -- import the functions&lt;br /&gt;
    for k,v in pairs(self) do&lt;br /&gt;
        ret[k] = v&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- return a copy of the class&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    Return the index where &amp;quot;text&amp;quot; lives.&lt;br /&gt;
    ; text : The text to search for.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:GetItemByText(text)&lt;br /&gt;
    for k,v in pairs(self.menuList) do&lt;br /&gt;
        if v.text == text then&lt;br /&gt;
            return k&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    Add menu items&lt;br /&gt;
    ; text : The display text.&lt;br /&gt;
    ; func : The function to execute OnClick.&lt;br /&gt;
    ; isTitle : 1 if this is a header (usually the first one)&lt;br /&gt;
    returns the last index of the menu item that was just added.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:AddItem(text, func, isTitle)&lt;br /&gt;
    local info = {}&lt;br /&gt;
    &lt;br /&gt;
    info[&amp;quot;text&amp;quot;] = text&lt;br /&gt;
    info[&amp;quot;isTitle&amp;quot;] = isTitle    &lt;br /&gt;
    info[&amp;quot;func&amp;quot;] = func&lt;br /&gt;
&lt;br /&gt;
    table.insert(self.menuList, info)&lt;br /&gt;
    return #self.menuList&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    Set an attribute for the menu item.&lt;br /&gt;
    Valid attributes are found in the FrameXML\UIDropDownMenu.lua file with their valid values.&lt;br /&gt;
    Arbitrary non-official attributes are allowed, but are only useful if you plan to access them with :GetAttribute().&lt;br /&gt;
    ; text : The text of the menu item or index of the menu item.&lt;br /&gt;
    ; attribute : Set this attribute to &amp;quot;value&amp;quot;.&lt;br /&gt;
    ; value : The value to set the attribute to.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:SetAttribute(text, attribute, value)&lt;br /&gt;
    self.menuList[self:GetItemByText(text) or (self.menuList[text] and text) or 1][attribute or &amp;quot;uniqueID&amp;quot;] = value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    Get an attribute for the menu item.&lt;br /&gt;
    Valid attributes are found in the FrameXML\UIDropDownMenu.lua file with their valid values or any arbitrary attribute set with :SetAttribute().&lt;br /&gt;
    ; text : The text of the menu item or index of the menu item.&lt;br /&gt;
    ; attribute : Get this attribute.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:GetAttribute(text, attribute)&lt;br /&gt;
    return self.menuList[self:GetItemByText(text) or (self.menuList[text] and text) or 1][attribute or &amp;quot;uniqueID&amp;quot;]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    Remove the first item matching &amp;quot;text&amp;quot;&lt;br /&gt;
    ; text : The text to search for.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:RemoveItem(text)&lt;br /&gt;
    table.remove(self.menuList, self:GetItemByText(text))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    ; anchor : Set the anchor point. &lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:SetAnchor(anchor)&lt;br /&gt;
    if anchor ~= &amp;#039;cursor&amp;#039; then&lt;br /&gt;
        self.x = 0&lt;br /&gt;
        self.y = 0&lt;br /&gt;
    end&lt;br /&gt;
    self.anchor = anchor&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    ; displayMode : &amp;quot;MENU&amp;quot;&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:SetDisplayMode(displayMode)&lt;br /&gt;
    self.displayMode = displayMode&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    ; autoHideDelay : How long, without a click, before the menu goes away.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:SetAutoHideDelay(autoHideDelay)&lt;br /&gt;
    self.autoHideDelay = tonumber(autoHideDelay)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    ; menuFrame : Should inherit a Drop Down Menu template.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:SetMenuFrame(menuFrame)&lt;br /&gt;
    self.menuFrame = menuFrame&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MenuClass:GetMenuList()&lt;br /&gt;
    return self.menuList&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    ; x : X position&lt;br /&gt;
    ; save : When not nil, will add to the current value rather than replace it&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:SetX(x, save)&lt;br /&gt;
    if save then&lt;br /&gt;
        self.x = self.x + x&lt;br /&gt;
    else&lt;br /&gt;
        self.x = x&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    ; y : Y position&lt;br /&gt;
    ; save : When not nil, will add to the current value rather than replace it&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:SetY(y, save)&lt;br /&gt;
    if save then&lt;br /&gt;
        self.y = self.y + y&lt;br /&gt;
    else&lt;br /&gt;
        self.y = y&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MenuClass:Activate()&lt;br /&gt;
    if not self.menuFrame then&lt;br /&gt;
        while _G[&amp;#039;GenericMenuClassFrame&amp;#039;..self.uniqueID] do -- ensure that there&amp;#039;s no namespace collisions&lt;br /&gt;
            self.uniqueID = self.uniqueID + 1&lt;br /&gt;
        end&lt;br /&gt;
        -- the frame must be named for some reason&lt;br /&gt;
        self.menuFrame = CreateFrame(&amp;#039;Frame&amp;#039;, &amp;#039;GenericMenuClassFrame&amp;#039;..self.uniqueID, UIParent, &amp;quot;UIDropDownMenuTemplate&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    self.menuFrame.menuList = self.menuList&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    Show the menu.&lt;br /&gt;
--]]&lt;br /&gt;
function MenuClass:Show()&lt;br /&gt;
    self:Activate()&lt;br /&gt;
    EasyMenu(self.menuList, self.menuFrame, self.anchor, self.x, self.y, self.displayMode, self.autoHideDelay)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- If you&amp;#039;re not using the addon-scoped variables, you must have a global variable in order to use this menu.&lt;br /&gt;
if not useAddonScope then&lt;br /&gt;
    _G[addonName..&amp;quot;Menu&amp;quot;] = MenuClass&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>WoWWiki&gt;Egingell</name></author>
	</entry>
</feed>