511 lines
37 KiB
HTML
511 lines
37 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>API: menu menubar.js (YUI Library)</title>
|
|
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css">
|
|
<link rel="stylesheet" type="text/css" href="assets/api.css">
|
|
</head>
|
|
|
|
<body id="yahoo-com">
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="hd">
|
|
<h1>Yahoo! UI Library</h1>
|
|
<h3>Menu Library </h3>
|
|
<p>
|
|
<a href="./index.html">Yahoo! UI Library</a>
|
|
> <a href="./module_menu.html">menu</a>
|
|
|
|
> menubar.js (source view)
|
|
</p>
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
|
|
<div id="srcout">
|
|
<div class="highlight" ><pre><span class="c">/**</span>
|
|
<span class="c">* Horizontal collection of items, each of which can contain a submenu.</span>
|
|
<span class="c">* </span>
|
|
<span class="c">* @param {String} p_oElement String specifying the id attribute of the </span>
|
|
<span class="c">* <code>&#60;div&#62;</code> element of the menu bar.</span>
|
|
<span class="c">* @param {String} p_oElement String specifying the id attribute of the </span>
|
|
<span class="c">* <code>&#60;select&#62;</code> element to be used as the data source for the </span>
|
|
<span class="c">* menu bar.</span>
|
|
<span class="c">* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c">* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying </span>
|
|
<span class="c">* the <code>&#60;div&#62;</code> element of the menu bar.</span>
|
|
<span class="c">* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c">* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object </span>
|
|
<span class="c">* specifying the <code>&#60;select&#62;</code> element to be used as the data </span>
|
|
<span class="c">* source for the menu bar.</span>
|
|
<span class="c">* @param {Object} p_oConfig Optional. Object literal specifying the </span>
|
|
<span class="c">* configuration for the menu bar. See configuration class documentation for</span>
|
|
<span class="c">* more details.</span>
|
|
<span class="c">* @class Menubar</span>
|
|
<span class="c">* @constructor</span>
|
|
<span class="c">* @extends YAHOO.widget.Menu</span>
|
|
<span class="c">* @namespace YAHOO.widget</span>
|
|
<span class="c">*/</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">p_oConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">constructor</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span>
|
|
<span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">p_oElement</span><span class="o">,</span>
|
|
<span class="nx">p_oConfig</span>
|
|
<span class="o">);</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">extend</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Menu</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c">* @method init</span>
|
|
<span class="c">* @description The MenuBar class's initialization method. This method is </span>
|
|
<span class="c">* automatically called by the constructor, and sets up all DOM references for </span>
|
|
<span class="c">* pre-existing markup, and creates required markup if it is not already present.</span>
|
|
<span class="c">* @param {String} p_oElement String specifying the id attribute of the </span>
|
|
<span class="c">* <code>&#60;div&#62;</code> element of the menu bar.</span>
|
|
<span class="c">* @param {String} p_oElement String specifying the id attribute of the </span>
|
|
<span class="c">* <code>&#60;select&#62;</code> element to be used as the data source for the </span>
|
|
<span class="c">* menu bar.</span>
|
|
<span class="c">* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c">* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying </span>
|
|
<span class="c">* the <code>&#60;div&#62;</code> element of the menu bar.</span>
|
|
<span class="c">* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c">* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object </span>
|
|
<span class="c">* specifying the <code>&#60;select&#62;</code> element to be used as the data </span>
|
|
<span class="c">* source for the menu bar.</span>
|
|
<span class="c">* @param {Object} p_oConfig Optional. Object literal specifying the </span>
|
|
<span class="c">* configuration for the menu bar. See configuration class documentation for</span>
|
|
<span class="c">* more details.</span>
|
|
<span class="c">*/</span>
|
|
<span class="nx">init</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">p_oConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span><span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">ITEM_TYPE</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">ITEM_TYPE</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBarItem</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="c">// Call the init of the superclass (YAHOO.widget.Menu)</span>
|
|
<span class="c"></span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">init</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">p_oElement</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeInitEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">p_oConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">applyConfig</span><span class="o">(</span><span class="nx">p_oConfig</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">initEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
|
|
<span class="c">// Constants</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c">* @property CSS_CLASS_NAME</span>
|
|
<span class="c">* @description String representing the CSS class(es) to be applied to the menu </span>
|
|
<span class="c">* bar's <code>&#60;div&#62;</code> element.</span>
|
|
<span class="c">* @default "yuimenubar"</span>
|
|
<span class="c">* @final</span>
|
|
<span class="c">* @type String</span>
|
|
<span class="c">*/</span>
|
|
<span class="nx">CSS_CLASS_NAME</span><span class="o">:</span> <span class="s2">"yuimenubar"</span><span class="o">,</span>
|
|
|
|
|
|
|
|
<span class="c">// Protected event handlers</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c">* @method _onKeyDown</span>
|
|
<span class="c">* @description "keydown" Custom Event handler for the menu bar.</span>
|
|
<span class="c">* @private</span>
|
|
<span class="c">* @param {String} p_sType String representing the name of the event that </span>
|
|
<span class="c">* was fired.</span>
|
|
<span class="c">* @param {Array} p_aArgs Array of arguments sent when the event was fired.</span>
|
|
<span class="c">* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar </span>
|
|
<span class="c">* that fired the event.</span>
|
|
<span class="c">*/</span>
|
|
<span class="nx">_onKeyDown</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">,</span> <span class="nx">p_oMenuBar</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">oEvent</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="k">var</span> <span class="nx">oItem</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
|
|
<span class="k">var</span> <span class="nx">oItemCfg</span> <span class="o">=</span> <span class="nx">oItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">oSubmenu</span><span class="o">;</span>
|
|
|
|
|
|
<span class="nx">switch</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">.</span><span class="nx">keyCode</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="m">27</span><span class="o">:</span> <span class="c">// Esc key</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"position"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"dynamic"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"submenu"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oSubmenu</span> <span class="o">&&</span> <span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span><span class="o">.</span><span class="nx">blur</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="m">37</span><span class="o">:</span> <span class="c">// Left arrow</span>
|
|
<span class="c"></span> <span class="nx">case</span> <span class="m">39</span><span class="o">:</span> <span class="c">// Right arrow</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span><span class="o">(</span>
|
|
<span class="nx">oItem</span> <span class="o">==</span> <span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span> <span class="o">&&</span>
|
|
<span class="o">!</span><span class="nx">oItemCfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">)</span>
|
|
<span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oItemCfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oNextItem</span> <span class="o">=</span> <span class="o">(</span><span class="nx">oEvent</span><span class="o">.</span><span class="nx">keyCode</span> <span class="o">==</span> <span class="m">37</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="nx">oItem</span><span class="o">.</span><span class="nx">getPreviousEnabledSibling</span><span class="o">()</span> <span class="o">:</span>
|
|
<span class="nx">oItem</span><span class="o">.</span><span class="nx">getNextEnabledSibling</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oNextItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">clearActiveItem</span><span class="o">();</span>
|
|
|
|
<span class="nx">oNextItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"autosubmenudisplay"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span> <span class="o">=</span> <span class="nx">oNextItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"submenu"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oSubmenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">show</span><span class="o">();</span>
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">activeItem</span><span class="o">.</span><span class="nx">blur</span><span class="o">();</span>
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">activeItem</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oNextItem</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="m">40</span><span class="o">:</span> <span class="c">// Down arrow</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span> <span class="o">!=</span> <span class="nx">oItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">clearActiveItem</span><span class="o">();</span>
|
|
|
|
<span class="nx">oItemCfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">oItem</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oSubmenu</span> <span class="o">=</span> <span class="nx">oItemCfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"submenu"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oSubmenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">setInitialSelection</span><span class="o">();</span>
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">setInitialFocus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">show</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c">* @method _onClick</span>
|
|
<span class="c">* @description "click" event handler for the menu bar.</span>
|
|
<span class="c">* @protected</span>
|
|
<span class="c">* @param {String} p_sType String representing the name of the event that </span>
|
|
<span class="c">* was fired.</span>
|
|
<span class="c">* @param {Array} p_aArgs Array of arguments sent when the event was fired.</span>
|
|
<span class="c">* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar </span>
|
|
<span class="c">* that fired the event.</span>
|
|
<span class="c">*/</span>
|
|
<span class="nx">_onClick</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">,</span> <span class="nx">p_oMenuBar</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">_onClick</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span>
|
|
<span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">p_sType</span><span class="o">,</span>
|
|
<span class="nx">p_aArgs</span><span class="o">,</span>
|
|
<span class="nx">p_oMenuBar</span>
|
|
<span class="o">);</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">oItem</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oEvent</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="k">var</span> <span class="nx">oTarget</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">);</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oActiveItem</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">activeItem</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">oConfig</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">;</span>
|
|
|
|
|
|
<span class="c">// Hide any other submenus that might be visible</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oActiveItem</span> <span class="o">&&</span> <span class="nx">oActiveItem</span> <span class="o">!=</span> <span class="nx">oItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">clearActiveItem</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="c">// Select and focus the current item</span>
|
|
<span class="c"></span>
|
|
<span class="nx">oItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">oItem</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
|
|
<span class="c">// Show the submenu for the item</span>
|
|
<span class="c"></span>
|
|
<span class="k">var</span> <span class="nx">oSubmenu</span> <span class="o">=</span> <span class="nx">oItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"submenu"</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oSubmenu</span> <span class="o">&&</span> <span class="nx">oTarget</span> <span class="o">!=</span> <span class="nx">oItem</span><span class="o">.</span><span class="nx">submenuIndicator</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span><span class="o">(</span><span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSubmenu</span><span class="o">.</span><span class="nx">show</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
|
|
<span class="c">// Public methods</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c">* @method toString</span>
|
|
<span class="c">* @description Returns a string representing the menu bar.</span>
|
|
<span class="c">* @return {String}</span>
|
|
<span class="c">*/</span>
|
|
<span class="nx">toString</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="o">(</span><span class="s2">"MenuBar "</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c">* @description Initializes the class's configurable properties which can be</span>
|
|
<span class="c">* changed using the menu bar's Config object ("cfg").</span>
|
|
<span class="c">* @method initDefaultConfig</span>
|
|
<span class="c">*/</span>
|
|
<span class="nx">initDefaultConfig</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuBar</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">initDefaultConfig</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oConfig</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">;</span>
|
|
|
|
<span class="c">// Add configuration properties</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Set the default value for the "position" configuration property</span>
|
|
<span class="c"> to "static" by re-adding the property.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @config position</span>
|
|
<span class="c"> * @description String indicating how a menu bar should be positioned on the </span>
|
|
<span class="c"> * screen. Possible values are "static" and "dynamic." Static menu bars </span>
|
|
<span class="c"> * are visible by default and reside in the normal flow of the document </span>
|
|
<span class="c"> * (CSS position: static). Dynamic menu bars are hidden by default, reside</span>
|
|
<span class="c"> * out of the normal flow of the document (CSS position: absolute), and can </span>
|
|
<span class="c"> * overlay other elements on the screen.</span>
|
|
<span class="c"> * @default static</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span>
|
|
<span class="s2">"position"</span><span class="o">,</span>
|
|
<span class="o">{</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="s2">"static"</span><span class="o">,</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configPosition</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_checkPosition</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"visible"</span><span class="o">]</span>
|
|
<span class="o">}</span>
|
|
<span class="o">);</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Set the default value for the "submenualignment" configuration property</span>
|
|
<span class="c"> to ["tl","bl"] by re-adding the property.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @config submenualignment</span>
|
|
<span class="c"> * @description Array defining how submenus should be aligned to their </span>
|
|
<span class="c"> * parent menu bar item. The format is: [itemCorner, submenuCorner].</span>
|
|
<span class="c"> * @default ["tl","bl"]</span>
|
|
<span class="c"> * @type Array</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="s2">"submenualignment"</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span> <span class="o">[</span><span class="s2">"tl"</span><span class="o">,</span><span class="s2">"bl"</span><span class="o">]</span> <span class="o">}</span> <span class="o">);</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Change the default value for the "autosubmenudisplay" configuration </span>
|
|
<span class="c"> property to "false" by re-adding the property.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @config autosubmenudisplay</span>
|
|
<span class="c"> * @description Boolean indicating if submenus are automatically made </span>
|
|
<span class="c"> * visible when the user mouses over the menu bar's items.</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span>
|
|
<span class="s2">"autosubmenudisplay"</span><span class="o">,</span>
|
|
<span class="o">{</span> <span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span> <span class="nx">oConfig</span><span class="o">.</span><span class="nx">checkBoolean</span> <span class="o">}</span>
|
|
<span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">});</span> <span class="c">// END YAHOO.extend</span>
|
|
<span class="c"></span></pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
<li><a href="module_animation.html">animation</a></li>
|
|
<li><a href="module_autocomplete.html">autocomplete</a></li>
|
|
<li><a href="module_calendar.html">calendar</a></li>
|
|
<li><a href="module_connection.html">connection</a></li>
|
|
<li><a href="module_container.html">container</a></li>
|
|
<li><a href="module_dom.html">dom</a></li>
|
|
<li><a href="module_dragdrop.html">dragdrop</a></li>
|
|
<li><a href="module_event.html">event</a></li>
|
|
<li><a href="module_logger.html">logger</a></li>
|
|
<li><a href="module_menu.html">menu</a></li>
|
|
<li><a href="module_slider.html">slider</a></li>
|
|
<li><a href="module_tabview.html">tabview</a></li>
|
|
<li><a href="module_treeview.html">treeview</a></li>
|
|
<li><a href="module_yahoo.html">yahoo</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li><a href="YAHOO.widget.ContextMenu.html">YAHOO.widget.ContextMenu</a></li>
|
|
<li><a href="YAHOO.widget.ContextMenuItem.html">YAHOO.widget.ContextMenuItem</a></li>
|
|
<li><a href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</a></li>
|
|
<li><a href="YAHOO.widget.Menubar.html">YAHOO.widget.Menubar</a></li>
|
|
<li><a href="YAHOO.widget.MenuBarItem.html">YAHOO.widget.MenuBarItem</a></li>
|
|
<li><a href="YAHOO.widget.MenuItem.html">YAHOO.widget.MenuItem</a></li>
|
|
<li><a href="YAHOO.widget.MenuManager.html">YAHOO.widget.MenuManager</a></li>
|
|
<li><a href="YAHOO.widget.MenuModule.html">YAHOO.widget.MenuModule</a></li>
|
|
<li><a href="YAHOO.widget.MenuModuleItem.html">YAHOO.widget.MenuModuleItem</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li><a href="contextmenu.js.html">contextmenu.js</a></li>
|
|
<li><a href="contextmenuitem.js.html">contextmenuitem.js</a></li>
|
|
<li><a href="menu.js.html">menu.js</a></li>
|
|
<li><a href="menubar.js.html">menubar.js</a></li>
|
|
<li><a href="menubaritem.js.html">menubaritem.js</a></li>
|
|
<li><a href="menuitem.js.html">menuitem.js</a></li>
|
|
<li><a href="menumanager.js.html">menumanager.js</a></li>
|
|
<li><a href="menumodule.js.html">menumodule.js</a></li>
|
|
<li><a href="menumoduleitem.js.html">menumoduleitem.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2006 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|