Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / ButtonGroup.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.ButtonGroup"></div>/**\r
9  * @class Ext.ButtonGroup\r
10  * @extends Ext.Panel\r
11  * Container for a group of buttons. Example usage:\r
12  * <pre><code>\r
13 var p = new Ext.Panel({\r
14     title: 'Panel with Button Group',\r
15     width: 300,\r
16     height:200,\r
17     renderTo: document.body,\r
18     html: 'whatever',\r
19     tbar: [{\r
20         xtype: 'buttongroup',\r
21         {@link #columns}: 3,\r
22         title: 'Clipboard',\r
23         items: [{\r
24             text: 'Paste',\r
25             scale: 'large',\r
26             rowspan: 3, iconCls: 'add',\r
27             iconAlign: 'top',\r
28             cls: 'x-btn-as-arrow'\r
29         },{\r
30             xtype:'splitbutton',\r
31             text: 'Menu Button',\r
32             scale: 'large',\r
33             rowspan: 3,\r
34             iconCls: 'add',\r
35             iconAlign: 'top',\r
36             arrowAlign:'bottom',\r
37             menu: [{text: 'Menu Item 1'}]\r
38         },{\r
39             xtype:'splitbutton', text: 'Cut', iconCls: 'add16', menu: [{text: 'Cut Menu Item'}]\r
40         },{\r
41             text: 'Copy', iconCls: 'add16'\r
42         },{\r
43             text: 'Format', iconCls: 'add16'\r
44         }]\r
45     }]\r
46 });\r
47  * </code></pre>\r
48  * @xtype buttongroup\r
49  */\r
50 Ext.ButtonGroup = Ext.extend(Ext.Panel, {\r
51     <div id="cfg-Ext.ButtonGroup-columns"></div>/**\r
52      * @cfg {Number} columns The <tt>columns</tt> configuration property passed to the\r
53      * {@link #layout configured layout manager}. See {@link Ext.layout.TableLayout#columns}.\r
54      */\r
55     <div id="cfg-Ext.ButtonGroup-baseCls"></div>/**\r
56      * @cfg {String} baseCls  Defaults to <tt>'x-btn-group'</tt>.  See {@link Ext.Panel#baseCls}.\r
57      */\r
58     baseCls: 'x-btn-group',\r
59     <div id="cfg-Ext.ButtonGroup-layout"></div>/**\r
60      * @cfg {String} layout  Defaults to <tt>'table'</tt>.  See {@link Ext.Container#layout}.\r
61      */\r
62     layout:'table',\r
63     defaultType: 'button',\r
64     <div id="cfg-Ext.ButtonGroup-frame"></div>/**\r
65      * @cfg {Boolean} frame  Defaults to <tt>true</tt>.  See {@link Ext.Panel#frame}.\r
66      */\r
67     frame: true,\r
68     internalDefaults: {removeMode: 'container', hideParent: true},\r
69 \r
70     initComponent : function(){\r
71         this.layoutConfig = this.layoutConfig || {};\r
72         Ext.applyIf(this.layoutConfig, {\r
73             columns : this.columns\r
74         });\r
75         if(!this.title){\r
76             this.addClass('x-btn-group-notitle');\r
77         }\r
78         this.on('afterlayout', this.onAfterLayout, this);\r
79         Ext.ButtonGroup.superclass.initComponent.call(this);\r
80     },\r
81 \r
82     applyDefaults : function(c){\r
83         c = Ext.ButtonGroup.superclass.applyDefaults.call(this, c);\r
84         var d = this.internalDefaults;\r
85         if(c.events){\r
86             Ext.applyIf(c.initialConfig, d);\r
87             Ext.apply(c, d);\r
88         }else{\r
89             Ext.applyIf(c, d);\r
90         }\r
91         return c;\r
92     },\r
93 \r
94     onAfterLayout : function(){\r
95         var bodyWidth = this.body.getFrameWidth('lr') + this.body.dom.firstChild.offsetWidth;\r
96         this.body.setWidth(bodyWidth);\r
97         this.el.setWidth(bodyWidth + this.getFrameWidth());\r
98     }\r
99     <div id="cfg-Ext.ButtonGroup-tools"></div>/**\r
100      * @cfg {Array} tools  @hide\r
101      */\r
102 });\r
103 \r
104 Ext.reg('buttongroup', Ext.ButtonGroup);\r
105 </pre>    \r
106 </body>\r
107 </html>