X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/25ef3491bd9ae007ff1fc2b0d7943e6eaaccf775..ddde20c4d4ac6a8d53de079761155de813845b3c:/src/widgets/menu/BaseItem.js diff --git a/src/widgets/menu/BaseItem.js b/src/widgets/menu/BaseItem.js index 77860299..290d944f 100644 --- a/src/widgets/menu/BaseItem.js +++ b/src/widgets/menu/BaseItem.js @@ -1,6 +1,6 @@ /*! - * Ext JS Library 3.0.3 - * Copyright(c) 2006-2009 Ext JS, LLC + * Ext JS Library 3.2.0 + * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ @@ -14,37 +14,7 @@ * @param {Object} config Configuration options * @xtype menubaseitem */ -Ext.menu.BaseItem = function(config){ - Ext.menu.BaseItem.superclass.constructor.call(this, config); - - this.addEvents( - /** - * @event click - * Fires when this item is clicked - * @param {Ext.menu.BaseItem} this - * @param {Ext.EventObject} e - */ - 'click', - /** - * @event activate - * Fires when this item is activated - * @param {Ext.menu.BaseItem} this - */ - 'activate', - /** - * @event deactivate - * Fires when this item is deactivated - * @param {Ext.menu.BaseItem} this - */ - 'deactivate' - ); - - if(this.handler){ - this.on("click", this.handler, this.scope); - } -}; - -Ext.extend(Ext.menu.BaseItem, Ext.Component, { +Ext.menu.BaseItem = Ext.extend(Ext.Component, { /** * @property parentMenu * @type Ext.menu.Menu @@ -75,7 +45,7 @@ Ext.extend(Ext.menu.BaseItem, Ext.Component, { */ hideOnClick : true, /** - * @cfg {Number} clickHideDelay Length of time in milliseconds to wait before hiding after a click (defaults to 100) + * @cfg {Number} clickHideDelay Length of time in milliseconds to wait before hiding after a click (defaults to 1) */ clickHideDelay : 1, @@ -85,6 +55,34 @@ Ext.extend(Ext.menu.BaseItem, Ext.Component, { // private actionMode : "container", + initComponent : function(){ + Ext.menu.BaseItem.superclass.initComponent.call(this); + this.addEvents( + /** + * @event click + * Fires when this item is clicked + * @param {Ext.menu.BaseItem} this + * @param {Ext.EventObject} e + */ + 'click', + /** + * @event activate + * Fires when this item is activated + * @param {Ext.menu.BaseItem} this + */ + 'activate', + /** + * @event deactivate + * Fires when this item is deactivated + * @param {Ext.menu.BaseItem} this + */ + 'deactivate' + ); + if(this.handler){ + this.on("click", this.handler, this.scope); + } + }, + // private onRender : function(container, position){ Ext.menu.BaseItem.superclass.onRender.apply(this, arguments); @@ -92,9 +90,12 @@ Ext.extend(Ext.menu.BaseItem, Ext.Component, { this.parentMenu = this.ownerCt; }else{ this.container.addClass('x-menu-list-item'); - this.mon(this.el, 'click', this.onClick, this); - this.mon(this.el, 'mouseenter', this.activate, this); - this.mon(this.el, 'mouseleave', this.deactivate, this); + this.mon(this.el, { + scope: this, + click: this.onClick, + mouseenter: this.activate, + mouseleave: this.deactivate + }); } }, @@ -102,7 +103,7 @@ Ext.extend(Ext.menu.BaseItem, Ext.Component, { * Sets the function that will handle click events for this item (equivalent to passing in the {@link #handler} * config property). If an existing handler is already registered, it will be unregistered for you. * @param {Function} handler The function that should be called on click - * @param {Object} scope The scope that should be passed to the handler + * @param {Object} scope The scope (this reference) in which the handler function is executed. Defaults to this menu item. */ setHandler : function(handler, scope){ if(this.handler){