/*!
- * Ext JS Library 3.0.0
+ * Ext JS Library 3.0.3
* Copyright(c) 2006-2009 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
/**\r
* @class Ext.menu.DateMenu\r
* @extends Ext.menu.Menu\r
- * A menu containing a {@link Ext.DatePicker} Component.\r
+ * <p>A menu containing an {@link Ext.DatePicker} Component.</p>\r
+ * <p>Notes:</p><div class="mdetail-params"><ul>\r
+ * <li>Although not listed here, the <b>constructor</b> for this class\r
+ * accepts all of the configuration options of <b>{@link Ext.DatePicker}</b>.</li>\r
+ * <li>If subclassing DateMenu, any configuration options for the DatePicker must be\r
+ * applied to the <tt><b>initialConfig</b></tt> property of the DateMenu.\r
+ * Applying {@link Ext.DatePicker DatePicker} configuration settings to\r
+ * <b><tt>this</tt></b> will <b>not</b> affect the DatePicker's configuration.</li>\r
+ * </ul></div>\r
* @xtype datemenu\r
*/\r
Ext.menu.DateMenu = Ext.extend(Ext.menu.Menu, {\r
* @cfg {Boolean} enableScrolling\r
* @hide \r
*/\r
- enableScrolling: false,\r
- \r
+ enableScrolling : false,\r
+ /**\r
+ * @cfg {Function} handler\r
+ * Optional. A function that will handle the select event of this menu.\r
+ * The handler is passed the following parameters:<div class="mdetail-params"><ul>\r
+ * <li><code>picker</code> : DatePicker<div class="sub-desc">The Ext.DatePicker.</div></li>\r
+ * <li><code>date</code> : Date<div class="sub-desc">The selected date.</div></li>\r
+ * </ul></div>\r
+ */\r
+ /**\r
+ * @cfg {Object} scope\r
+ * The scope (<tt><b>this</b></tt> reference) in which the <code>{@link #handler}</code>\r
+ * function will be called. Defaults to this DateMenu instance.\r
+ */ \r
/** \r
* @cfg {Boolean} hideOnClick\r
* False to continue showing the menu after a date is selected, defaults to true.\r
*/\r
- hideOnClick: true,\r
+ hideOnClick : true,\r
+ \r
+ /** \r
+ * @cfg {String} pickerId\r
+ * An id to assign to the underlying date picker. Defaults to <tt>null</tt>.\r
+ */\r
+ pickerId : null,\r
\r
/** \r
* @cfg {Number} maxHeight\r
* @hide \r
*/\r
/**\r
+ * The {@link Ext.DatePicker} instance for this DateMenu\r
* @property picker\r
* @type DatePicker\r
- * The {@link Ext.DatePicker} instance for this DateMenu\r
*/\r
- cls: 'x-date-menu',\r
+ cls : 'x-date-menu',\r
\r
/**\r
* @event click\r
* @hide\r
*/\r
\r
- initComponent: function(){\r
+ initComponent : function(){\r
this.on('beforeshow', this.onBeforeShow, this);\r
if(this.strict = (Ext.isIE7 && Ext.isStrict)){\r
this.on('show', this.onShow, this, {single: true, delay: 20});\r
Ext.apply(this, {\r
plain: true,\r
showSeparator: false,\r
- items: this.picker = new Ext.DatePicker(Ext.apply({\r
+ items: this.picker = new Ext.DatePicker(Ext.applyIf({\r
internalRender: this.strict || !Ext.isIE,\r
- ctCls: 'x-menu-date-item'\r
+ ctCls: 'x-menu-date-item',\r
+ id: this.pickerId\r
}, this.initialConfig))\r
});\r
this.picker.purgeListeners();\r
Ext.menu.DateMenu.superclass.initComponent.call(this);\r
- this.relayEvents(this.picker, ["select"]);\r
+ /**\r
+ * @event select\r
+ * Fires when a date is selected from the {@link #picker Ext.DatePicker}\r
+ * @param {DatePicker} picker The {@link #picker Ext.DatePicker}\r
+ * @param {Date} date The selected date\r
+ */\r
+ this.relayEvents(this.picker, ['select']);\r
this.on('select', this.menuHide, this);\r
if(this.handler){\r
this.on('select', this.handler, this.scope || this);\r
}\r
},\r
\r
- menuHide: function() {\r
+ menuHide : function() {\r
if(this.hideOnClick){\r
this.hide(true);\r
}\r
},\r
\r
- onBeforeShow: function(){\r
+ onBeforeShow : function(){\r
if(this.picker){\r
this.picker.hideMonthPicker(true);\r
}\r
},\r
\r
- onShow: function(){\r
+ onShow : function(){\r
var el = this.picker.getEl();\r
el.setWidth(el.getWidth()); //nasty hack for IE7 strict mode\r
}\r
});\r
- Ext.reg('datemenu', Ext.menu.DateMenu);
\ No newline at end of file
+ Ext.reg('datemenu', Ext.menu.DateMenu);\r
+
\ No newline at end of file