[256] | 1 | define([ |
---|
| 2 | "dojo/_base/declare", // declare |
---|
| 3 | "dojo/_base/event", // event.stop |
---|
| 4 | "dojo/keys", // keys |
---|
| 5 | "dojo/text!./templates/Menu.html", |
---|
| 6 | "./_OnDijitClickMixin", |
---|
| 7 | "./_MenuBase" |
---|
| 8 | ], function(declare, event, keys, template, _OnDijitClickMixin, _MenuBase){ |
---|
| 9 | |
---|
| 10 | /*===== |
---|
| 11 | var _MenuBase = dijit._MenuBase; |
---|
| 12 | var _OnDijitClickMixin = dijit._OnDijitClickMixin; |
---|
| 13 | =====*/ |
---|
| 14 | |
---|
| 15 | // module: |
---|
| 16 | // dijit/DropDownMenu |
---|
| 17 | // summary: |
---|
| 18 | // dijit.DropDownMenu widget |
---|
| 19 | |
---|
| 20 | return declare("dijit.DropDownMenu", [_MenuBase, _OnDijitClickMixin], { |
---|
| 21 | // summary: |
---|
| 22 | // A menu, without features for context menu (Meaning, drop down menu) |
---|
| 23 | |
---|
| 24 | templateString: template, |
---|
| 25 | |
---|
| 26 | baseClass: "dijitMenu", |
---|
| 27 | |
---|
| 28 | postCreate: function(){ |
---|
| 29 | var l = this.isLeftToRight(); |
---|
| 30 | this._openSubMenuKey = l ? keys.RIGHT_ARROW : keys.LEFT_ARROW; |
---|
| 31 | this._closeSubMenuKey = l ? keys.LEFT_ARROW : keys.RIGHT_ARROW; |
---|
| 32 | this.connectKeyNavHandlers([keys.UP_ARROW], [keys.DOWN_ARROW]); |
---|
| 33 | }, |
---|
| 34 | |
---|
| 35 | _onKeyPress: function(/*Event*/ evt){ |
---|
| 36 | // summary: |
---|
| 37 | // Handle keyboard based menu navigation. |
---|
| 38 | // tags: |
---|
| 39 | // protected |
---|
| 40 | |
---|
| 41 | if(evt.ctrlKey || evt.altKey){ return; } |
---|
| 42 | |
---|
| 43 | switch(evt.charOrCode){ |
---|
| 44 | case this._openSubMenuKey: |
---|
| 45 | this._moveToPopup(evt); |
---|
| 46 | event.stop(evt); |
---|
| 47 | break; |
---|
| 48 | case this._closeSubMenuKey: |
---|
| 49 | if(this.parentMenu){ |
---|
| 50 | if(this.parentMenu._isMenuBar){ |
---|
| 51 | this.parentMenu.focusPrev(); |
---|
| 52 | }else{ |
---|
| 53 | this.onCancel(false); |
---|
| 54 | } |
---|
| 55 | }else{ |
---|
| 56 | event.stop(evt); |
---|
| 57 | } |
---|
| 58 | break; |
---|
| 59 | } |
---|
| 60 | } |
---|
| 61 | }); |
---|
| 62 | }); |
---|