]>
git.wh0rd.org - tt-rss.git/blob - lib/dijit/_MenuBase.js
2 define("dijit/_MenuBase",["./popup","dojo/window","./_Widget","./_KeyNavContainer","./_TemplatedMixin","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/_base/array"],function(pm
,_1
,_2
,_3
,_4
,_5
,_6
,_7
,_8
,_9
,_a
){return _5("dijit._MenuBase",[_2
,_4
,_3
],{parentMenu
:null,popupDelay
:500,onExecute:function(){},onCancel:function(){},_moveToPopup:function(_b
){if(this.focusedChild
&&this.focusedChild
.popup
&&!this.focusedChild
.disabled
){this.focusedChild
._onClick(_b
);}else{var _c
=this._getTopMenu();if(_c
&&_c
._isMenuBar
){_c
.focusNext();}}},_onPopupHover:function(){if(this.currentPopup
&&this.currentPopup
._pendingClose_timer
){var _d
=this.currentPopup
.parentMenu
;if(_d
.focusedChild
){_d
.focusedChild
._setSelected(false);}_d
.focusedChild
=this.currentPopup
.from_item
;_d
.focusedChild
._setSelected(true);this._stopPendingCloseTimer(this.currentPopup
);}},onItemHover:function(_e
){if(this.isActive
){this.focusChild(_e
);if(this.focusedChild
.popup
&&!this.focusedChild
.disabled
&&!this.hover_timer
){this.hover_timer
=setTimeout(_9
.hitch(this,"_openPopup"),this.popupDelay
);}}if(this.focusedChild
){this.focusChild(_e
);}this._hoveredChild
=_e
;},_onChildBlur:function(_f
){this._stopPopupTimer();_f
._setSelected(false);var _10
=_f
.popup
;if(_10
){this._stopPendingCloseTimer(_10
);_10
._pendingClose_timer
=setTimeout(function(){_10
._pendingClose_timer
=null;if(_10
.parentMenu
){_10
.parentMenu
.currentPopup
=null;}pm
.close(_10
);},this.popupDelay
);}},onItemUnhover:function(_11
){if(this.isActive
){this._stopPopupTimer();}if(this._hoveredChild
==_11
){this._hoveredChild
=null;}},_stopPopupTimer:function(){if(this.hover_timer
){clearTimeout(this.hover_timer
);this.hover_timer
=null;}},_stopPendingCloseTimer:function(_12
){if(_12
._pendingClose_timer
){clearTimeout(_12
._pendingClose_timer
);_12
._pendingClose_timer
=null;}},_stopFocusTimer:function(){if(this._focus_timer
){clearTimeout(this._focus_timer
);this._focus_timer
=null;}},_getTopMenu:function(){for(var top
=this;top
.parentMenu
;top
=top
.parentMenu
){}return top
;},onItemClick:function(_13
,evt
){if(typeof this.isShowingNow
=="undefined"){this._markActive();}this.focusChild(_13
);if(_13
.disabled
){return false;}if(_13
.popup
){this._openPopup();}else{this.onExecute();_13
.onClick(evt
);}},_openPopup:function(){this._stopPopupTimer();var _14
=this.focusedChild
;if(!_14
){return;}var _15
=_14
.popup
;if(_15
.isShowingNow
){return;}if(this.currentPopup
){this._stopPendingCloseTimer(this.currentPopup
);pm
.close(this.currentPopup
);}_15
.parentMenu
=this;_15
.from_item
=_14
;var _16
=this;pm
.open({parent
:this,popup
:_15
,around
:_14
.domNode
,orient
:this._orient
||["after","before"],onCancel:function(){_16
.focusChild(_14
);_16
._cleanUp();_14
._setSelected(true);_16
.focusedChild
=_14
;},onExecute
:_9
.hitch(this,"_cleanUp")});this.currentPopup
=_15
;_15
.connect(_15
.domNode
,"onmouseenter",_9
.hitch(_16
,"_onPopupHover"));if(_15
.focus
){_15
._focus_timer
=setTimeout(_9
.hitch(_15
,function(){this._focus_timer
=null;this.focus();}),0);}},_markActive:function(){this.isActive
=true;_8
.replace(this.domNode
,"dijitMenuActive","dijitMenuPassive");},onOpen:function(){this.isShowingNow
=true;this._markActive();},_markInactive:function(){this.isActive
=false;_8
.replace(this.domNode
,"dijitMenuPassive","dijitMenuActive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow
=false;this.parentMenu
=null;},_closeChild:function(){this._stopPopupTimer();if(this.currentPopup
){if(_a
.indexOf(this._focusManager
.activeStack
,this.id
)>=0){_7
.set(this.focusedChild
.focusNode
,"tabIndex",this.tabIndex
);this.focusedChild
.focusNode
.focus();}pm
.close(this.currentPopup
);this.currentPopup
=null;}if(this.focusedChild
){this.focusedChild
._setSelected(false);this.focusedChild
._onUnhover();this.focusedChild
=null;}},_onItemFocus:function(_17
){if(this._hoveredChild
&&this._hoveredChild
!=_17
){this._hoveredChild
._onUnhover();}},_onBlur:function(){this._cleanUp();this.inherited(arguments
);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow
=="undefined"){this._markInactive();}}});});