From 81bea17aefb26859f825b9293c7c99192874806e Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 8 Nov 2011 20:40:44 +0400 Subject: upgrade Dojo to 1.6.1 --- lib/dijit/MenuBar.js | 97 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 68 insertions(+), 29 deletions(-) (limited to 'lib/dijit/MenuBar.js') diff --git a/lib/dijit/MenuBar.js b/lib/dijit/MenuBar.js index d7eb35438..06d236b66 100644 --- a/lib/dijit/MenuBar.js +++ b/lib/dijit/MenuBar.js @@ -1,38 +1,77 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ -if(!dojo._hasResource["dijit.MenuBar"]){ -dojo._hasResource["dijit.MenuBar"]=true; +if(!dojo._hasResource["dijit.MenuBar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.MenuBar"] = true; dojo.provide("dijit.MenuBar"); dojo.require("dijit.Menu"); -dojo.declare("dijit.MenuBar",dijit._MenuBase,{templateString:dojo.cache("dijit","templates/MenuBar.html","
\n"),baseClass:"dijitMenuBar",_isMenuBar:true,postCreate:function(){ -var k=dojo.keys,l=this.isLeftToRight(); -this.connectKeyNavHandlers(l?[k.LEFT_ARROW]:[k.RIGHT_ARROW],l?[k.RIGHT_ARROW]:[k.LEFT_ARROW]); -this._orient=this.isLeftToRight()?{BL:"TL"}:{BR:"TR"}; -},focusChild:function(_1){ -var _2=this.focusedChild,_3=_2&&_2.popup&&_2.popup.isShowingNow; -this.inherited(arguments); -if(_3&&_1.popup&&!_1.disabled){ -this._openPopup(); -} -},_onKeyPress:function(_4){ -if(_4.ctrlKey||_4.altKey){ -return; -} -switch(_4.charOrCode){ -case dojo.keys.DOWN_ARROW: -this._moveToPopup(_4); -dojo.stopEvent(_4); -} -},onItemClick:function(_5,_6){ -if(_5.popup&&_5.popup.isShowingNow){ -_5.popup.onCancel(); -}else{ -this.inherited(arguments); -} -}}); + + +dojo.declare("dijit.MenuBar", dijit._MenuBase, { + // summary: + // A menu bar, listing menu choices horizontally, like the "File" menu in most desktop applications + + templateString: dojo.cache("dijit", "templates/MenuBar.html", "
\n"), + + baseClass: "dijitMenuBar", + + // _isMenuBar: [protected] Boolean + // This is a MenuBar widget, not a (vertical) Menu widget. + _isMenuBar: true, + + postCreate: function(){ + var k = dojo.keys, l = this.isLeftToRight(); + this.connectKeyNavHandlers( + l ? [k.LEFT_ARROW] : [k.RIGHT_ARROW], + l ? [k.RIGHT_ARROW] : [k.LEFT_ARROW] + ); + + // parameter to dijit.popup.open() about where to put popup (relative to this.domNode) + this._orient = this.isLeftToRight() ? {BL: 'TL'} : {BR: 'TR'}; + }, + + focusChild: function(item){ + // overload focusChild so that whenever the focus is moved to a new item, + // check the previous focused whether it has its popup open, if so, after + // focusing the new item, open its submenu immediately + var prev_item = this.focusedChild, + showpopup = prev_item && prev_item.popup && prev_item.popup.isShowingNow; + this.inherited(arguments); + if(showpopup && item.popup && !item.disabled){ + this._openPopup(); // TODO: on down arrow, _openPopup() is called here and in onItemClick() + } + }, + + _onKeyPress: function(/*Event*/ evt){ + // summary: + // Handle keyboard based menu navigation. + // tags: + // protected + + if(evt.ctrlKey || evt.altKey){ return; } + + switch(evt.charOrCode){ + case dojo.keys.DOWN_ARROW: + this._moveToPopup(evt); + dojo.stopEvent(evt); + } + }, + + onItemClick: function(/*dijit._Widget*/ item, /*Event*/ evt){ + // summary: + // Handle clicks on an item. Cancels a dropdown if already open. + // tags: + // private + if(item.popup && item.popup.isShowingNow){ + item.popup.onCancel(); + }else{ + this.inherited(arguments); + } + } +}); + } -- cgit v1.2.3