Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / DateMenu.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js"><div id="cls-Ext.menu.DateMenu"></div>/**\r
9  * @class Ext.menu.DateMenu\r
10  * @extends Ext.menu.Menu\r
11  * <p>A menu containing an {@link Ext.DatePicker} Component.</p>\r
12  * <p>Notes:</p><div class="mdetail-params"><ul>\r
13  * <li>Although not listed here, the <b>constructor</b> for this class\r
14  * accepts all of the configuration options of <b>{@link Ext.DatePicker}</b>.</li>\r
15  * <li>If subclassing DateMenu, any configuration options for the DatePicker must be\r
16  * applied to the <tt><b>initialConfig</b></tt> property of the DateMenu.\r
17  * Applying {@link Ext.DatePicker DatePicker} configuration settings to\r
18  * <b><tt>this</tt></b> will <b>not</b> affect the DatePicker's configuration.</li>\r
19  * </ul></div>\r
20  * @xtype datemenu\r
21  */\r
22  Ext.menu.DateMenu = Ext.extend(Ext.menu.Menu, {\r
23     <div id="cfg-Ext.menu.DateMenu-enableScrolling"></div>/** \r
24      * @cfg {Boolean} enableScrolling\r
25      * @hide \r
26      */\r
27     enableScrolling : false,\r
28     <div id="cfg-Ext.menu.DateMenu-handler"></div>/**\r
29      * @cfg {Function} handler\r
30      * Optional. A function that will handle the select event of this menu.\r
31      * The handler is passed the following parameters:<div class="mdetail-params"><ul>\r
32      * <li><code>picker</code> : DatePicker<div class="sub-desc">The Ext.DatePicker.</div></li>\r
33      * <li><code>date</code> : Date<div class="sub-desc">The selected date.</div></li>\r
34      * </ul></div>\r
35      */\r
36     <div id="cfg-Ext.menu.DateMenu-scope"></div>/**\r
37      * @cfg {Object} scope\r
38      * The scope (<tt><b>this</b></tt> reference) in which the <code>{@link #handler}</code>\r
39      * function will be called.  Defaults to this DateMenu instance.\r
40      */    \r
41     <div id="cfg-Ext.menu.DateMenu-hideOnClick"></div>/** \r
42      * @cfg {Boolean} hideOnClick\r
43      * False to continue showing the menu after a date is selected, defaults to true.\r
44      */\r
45     hideOnClick : true,\r
46     \r
47     <div id="cfg-Ext.menu.DateMenu-maxHeight"></div>/** \r
48      * @cfg {Number} maxHeight\r
49      * @hide \r
50      */\r
51     <div id="cfg-Ext.menu.DateMenu-scrollIncrement"></div>/** \r
52      * @cfg {Number} scrollIncrement\r
53      * @hide \r
54      */\r
55     <div id="prop-Ext.menu.DateMenu-picker"></div>/**\r
56      * The {@link Ext.DatePicker} instance for this DateMenu\r
57      * @property picker\r
58      * @type DatePicker\r
59      */\r
60     cls : 'x-date-menu',\r
61     \r
62     <div id="event-Ext.menu.DateMenu-click"></div>/**\r
63      * @event click\r
64      * @hide\r
65      */\r
66     \r
67     <div id="event-Ext.menu.DateMenu-itemclick"></div>/**\r
68      * @event itemclick\r
69      * @hide\r
70      */\r
71 \r
72     initComponent : function(){\r
73         this.on('beforeshow', this.onBeforeShow, this);\r
74         if(this.strict = (Ext.isIE7 && Ext.isStrict)){\r
75             this.on('show', this.onShow, this, {single: true, delay: 20});\r
76         }\r
77         Ext.apply(this, {\r
78             plain: true,\r
79             showSeparator: false,\r
80             items: this.picker = new Ext.DatePicker(Ext.apply({\r
81                 internalRender: this.strict || !Ext.isIE,\r
82                 ctCls: 'x-menu-date-item'\r
83             }, this.initialConfig))\r
84         });\r
85         this.picker.purgeListeners();\r
86         Ext.menu.DateMenu.superclass.initComponent.call(this);\r
87         <div id="event-Ext.menu.DateMenu-select"></div>/**\r
88          * @event select\r
89          * Fires when a date is selected from the {@link #picker Ext.DatePicker}\r
90          * @param {DatePicker} picker The {@link #picker Ext.DatePicker}\r
91          * @param {Date} date The selected date\r
92          */\r
93         this.relayEvents(this.picker, ['select']);\r
94         this.on('select', this.menuHide, this);\r
95         if(this.handler){\r
96             this.on('select', this.handler, this.scope || this);\r
97         }\r
98     },\r
99 \r
100     menuHide : function() {\r
101         if(this.hideOnClick){\r
102             this.hide(true);\r
103         }\r
104     },\r
105 \r
106     onBeforeShow : function(){\r
107         if(this.picker){\r
108             this.picker.hideMonthPicker(true);\r
109         }\r
110     },\r
111 \r
112     onShow : function(){\r
113         var el = this.picker.getEl();\r
114         el.setWidth(el.getWidth()); //nasty hack for IE7 strict mode\r
115     }\r
116  });\r
117  Ext.reg('datemenu', Ext.menu.DateMenu);\r
118  </pre>    \r
119 </body>\r
120 </html>