From f0cfe83e3725f9a3928da97a6e3085e79cb25309 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 18 Mar 2013 10:26:24 +0400 Subject: upgrade dojo to 1.8.3 (refs #570) --- lib/dijit/MenuBar.js.uncompressed.js | 92 ++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 lib/dijit/MenuBar.js.uncompressed.js (limited to 'lib/dijit/MenuBar.js.uncompressed.js') diff --git a/lib/dijit/MenuBar.js.uncompressed.js b/lib/dijit/MenuBar.js.uncompressed.js new file mode 100644 index 000000000..b71c1ceb1 --- /dev/null +++ b/lib/dijit/MenuBar.js.uncompressed.js @@ -0,0 +1,92 @@ +require({cache:{ +'url:dijit/templates/MenuBar.html':"
\n"}}); +define("dijit/MenuBar", [ + "dojo/_base/declare", // declare + "dojo/_base/event", // event.stop + "dojo/keys", // keys.DOWN_ARROW + "./_MenuBase", + "dojo/text!./templates/MenuBar.html" +], function(declare, event, keys, _MenuBase, template){ + +// module: +// dijit/MenuBar + +return declare("dijit.MenuBar", _MenuBase, { + // summary: + // A menu bar, listing menu choices horizontally, like the "File" menu in most desktop applications + + templateString: template, + + baseClass: "dijitMenuBar", + + // _isMenuBar: [protected] Boolean + // This is a MenuBar widget, not a (vertical) Menu widget. + _isMenuBar: true, + + postCreate: function(){ + this.inherited(arguments); + var l = this.isLeftToRight(); + this.connectKeyNavHandlers( + l ? [keys.LEFT_ARROW] : [keys.RIGHT_ARROW], + l ? [keys.RIGHT_ARROW] : [keys.LEFT_ARROW] + ); + + // parameter to dijit.popup.open() about where to put popup (relative to this.domNode) + this._orient = ["below"]; + }, + + _moveToPopup: function(/*Event*/ evt){ + // summary: + // This handles the down arrow key, opening a submenu if one exists. + // Unlike _MenuBase._moveToPopup(), will never move to the next item in the MenuBar. + // tags: + // private + + if(this.focusedChild && this.focusedChild.popup && !this.focusedChild.disabled){ + this.onItemClick(this.focusedChild, evt); + } + }, + + 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(true); // 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 keys.DOWN_ARROW: + this._moveToPopup(evt); + event.stop(evt); + } + }, + + onItemClick: function(/*dijit/_WidgetBase*/ item, /*Event*/ evt){ + // summary: + // Handle clicks on an item. Also called by _moveToPopup() due to a down-arrow key on the item. + // Cancels a dropdown if already open and click is either mouse or space/enter. + // Don't close dropdown due to down arrow. + // tags: + // private + if(item.popup && item.popup.isShowingNow && (evt.type !== "keypress" || evt.keyCode !== keys.DOWN_ARROW)){ + item.popup.onCancel(); + }else{ + this.inherited(arguments); + } + } +}); + +}); -- cgit v1.2.3