-<html>\r
-<head>\r
- <title>The source code</title>\r
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body onload="prettyPrint();">\r
- <pre class="prettyprint lang-js"><div id="cls-Ext.ButtonGroup"></div>/**\r
- * @class Ext.ButtonGroup\r
- * @extends Ext.Panel\r
- * Container for a group of buttons. Example usage:\r
- * <pre><code>\r
-var p = new Ext.Panel({\r
- title: 'Panel with Button Group',\r
- width: 300,\r
- height:200,\r
- renderTo: document.body,\r
- html: 'whatever',\r
- tbar: [{\r
- xtype: 'buttongroup',\r
- {@link #columns}: 3,\r
- title: 'Clipboard',\r
- items: [{\r
- text: 'Paste',\r
- scale: 'large',\r
- rowspan: 3, iconCls: 'add',\r
- iconAlign: 'top',\r
- cls: 'x-btn-as-arrow'\r
- },{\r
- xtype:'splitbutton',\r
- text: 'Menu Button',\r
- scale: 'large',\r
- rowspan: 3,\r
- iconCls: 'add',\r
- iconAlign: 'top',\r
- arrowAlign:'bottom',\r
- menu: [{text: 'Menu Item 1'}]\r
- },{\r
- xtype:'splitbutton', text: 'Cut', iconCls: 'add16', menu: [{text: 'Cut Menu Item'}]\r
- },{\r
- text: 'Copy', iconCls: 'add16'\r
- },{\r
- text: 'Format', iconCls: 'add16'\r
- }]\r
- }]\r
-});\r
- * </code></pre>\r
- * @xtype buttongroup\r
- */\r
-Ext.ButtonGroup = Ext.extend(Ext.Panel, {\r
- <div id="cfg-Ext.ButtonGroup-columns"></div>/**\r
- * @cfg {Number} columns The <tt>columns</tt> configuration property passed to the\r
- * {@link #layout configured layout manager}. See {@link Ext.layout.TableLayout#columns}.\r
- */\r
- <div id="cfg-Ext.ButtonGroup-baseCls"></div>/**\r
- * @cfg {String} baseCls Defaults to <tt>'x-btn-group'</tt>. See {@link Ext.Panel#baseCls}.\r
- */\r
- baseCls: 'x-btn-group',\r
- <div id="cfg-Ext.ButtonGroup-layout"></div>/**\r
- * @cfg {String} layout Defaults to <tt>'table'</tt>. See {@link Ext.Container#layout}.\r
- */\r
- layout:'table',\r
- defaultType: 'button',\r
- <div id="cfg-Ext.ButtonGroup-frame"></div>/**\r
- * @cfg {Boolean} frame Defaults to <tt>true</tt>. See {@link Ext.Panel#frame}.\r
- */\r
- frame: true,\r
- internalDefaults: {removeMode: 'container', hideParent: true},\r
-\r
- initComponent : function(){\r
- this.layoutConfig = this.layoutConfig || {};\r
- Ext.applyIf(this.layoutConfig, {\r
- columns : this.columns\r
- });\r
- if(!this.title){\r
- this.addClass('x-btn-group-notitle');\r
- }\r
- this.on('afterlayout', this.onAfterLayout, this);\r
- Ext.ButtonGroup.superclass.initComponent.call(this);\r
- },\r
-\r
- applyDefaults : function(c){\r
- c = Ext.ButtonGroup.superclass.applyDefaults.call(this, c);\r
- var d = this.internalDefaults;\r
- if(c.events){\r
- Ext.applyIf(c.initialConfig, d);\r
- Ext.apply(c, d);\r
- }else{\r
- Ext.applyIf(c, d);\r
- }\r
- return c;\r
- },\r
-\r
- onAfterLayout : function(){\r
- var bodyWidth = this.body.getFrameWidth('lr') + this.body.dom.firstChild.offsetWidth;\r
- this.body.setWidth(bodyWidth);\r
- this.el.setWidth(bodyWidth + this.getFrameWidth());\r
- }\r
- <div id="cfg-Ext.ButtonGroup-tools"></div>/**\r
- * @cfg {Array} tools @hide\r
- */\r
-});\r
-\r
-Ext.reg('buttongroup', Ext.ButtonGroup);\r
-</pre> \r
-</body>\r
-</html>
\ No newline at end of file
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../prettify/prettify.js"></script>
+ <style type="text/css">
+ .highlight { display: block; background-color: #ddd; }
+ </style>
+ <script type="text/javascript">
+ function highlight() {
+ document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
+ }
+ </script>
+</head>
+<body onload="prettyPrint(); highlight();">
+ <pre class="prettyprint lang-js"><span id='Ext-container-ButtonGroup'>/**
+</span> * @class Ext.container.ButtonGroup
+ * @extends Ext.panel.Panel
+ * <p>Provides a container for arranging a group of related Buttons in a tabular manner.</p>
+ * Example usage:
+ * {@img Ext.container.ButtonGroup/Ext.container.ButtonGroup.png Ext.container.ButtonGroup component}
+ * <pre><code>
+ Ext.create('Ext.panel.Panel', {
+ title: 'Panel with ButtonGroup',
+ width: 300,
+ height:200,
+ renderTo: document.body,
+ html: 'HTML Panel Content',
+ tbar: [{
+ xtype: 'buttongroup',
+ columns: 3,
+ title: 'Clipboard',
+ items: [{
+ text: 'Paste',
+ scale: 'large',
+ rowspan: 3,
+ iconCls: 'add',
+ iconAlign: 'top',
+ cls: 'x-btn-as-arrow'
+ },{
+ xtype:'splitbutton',
+ text: 'Menu Button',
+ scale: 'large',
+ rowspan: 3,
+ iconCls: 'add',
+ iconAlign: 'top',
+ arrowAlign:'bottom',
+ menu: [{text: 'Menu Item 1'}]
+ },{
+ xtype:'splitbutton', text: 'Cut', iconCls: 'add16', menu: [{text: 'Cut Menu Item'}]
+ },{
+ text: 'Copy', iconCls: 'add16'
+ },{
+ text: 'Format', iconCls: 'add16'
+ }]
+ }]
+ });
+ * </code></pre>
+ */
+Ext.define('Ext.container.ButtonGroup', {
+ extend: 'Ext.panel.Panel',
+ alias: 'widget.buttongroup',
+ alternateClassName: 'Ext.ButtonGroup',
+
+<span id='Ext-container-ButtonGroup-cfg-columns'> /**
+</span> * @cfg {Number} columns The <tt>columns</tt> configuration property passed to the
+ * {@link #layout configured layout manager}. See {@link Ext.layout.container.Table#columns}.
+ */
+
+<span id='Ext-container-ButtonGroup-cfg-baseCls'> /**
+</span> * @cfg {String} baseCls Defaults to <tt>'x-btn-group'</tt>. See {@link Ext.panel.Panel#baseCls}.
+ */
+ baseCls: Ext.baseCSSPrefix + 'btn-group',
+
+<span id='Ext-container-ButtonGroup-cfg-layout'> /**
+</span> * @cfg {Object} layout Defaults to <tt>'table'</tt>. See {@link Ext.container.Container#layout}.
+ */
+ layout: {
+ type: 'table'
+ },
+
+ defaultType: 'button',
+
+<span id='Ext-container-ButtonGroup-cfg-frame'> /**
+</span> * @cfg {Boolean} frame Defaults to <tt>true</tt>. See {@link Ext.panel.Panel#frame}.
+ */
+ frame: true,
+
+ frameHeader: false,
+
+ internalDefaults: {removeMode: 'container', hideParent: true},
+
+ initComponent : function(){
+ // Copy the component's columns config to the layout if specified
+ var me = this,
+ cols = me.columns;
+
+ me.noTitleCls = me.baseCls + '-notitle';
+ if (cols) {
+ me.layout = Ext.apply({}, {columns: cols}, me.layout);
+ }
+
+ if (!me.title) {
+ me.addCls(me.noTitleCls);
+ }
+ me.callParent(arguments);
+ },
+
+ afterLayout: function() {
+ var me = this;
+
+ me.callParent(arguments);
+
+ // Pugly hack for a pugly browser:
+ // If not an explicitly set width, then size the width to match the inner table
+ if (me.layout.table && (Ext.isIEQuirks || Ext.isIE6) && !me.width) {
+ var t = me.getTargetEl();
+ t.setWidth(me.layout.table.offsetWidth + t.getPadding('lr'));
+ }
+ },
+
+ afterRender: function() {
+ var me = this;
+
+ //we need to add an addition item in here so the ButtonGroup title is centered
+ if (me.header) {
+ // Header text cannot flex, but must be natural size if it's being centered
+ delete me.header.items.items[0].flex;
+
+ // For Centering, surround the text with two flex:1 spacers.
+ me.suspendLayout = true;
+ me.header.insert(1, {
+ xtype: 'component',
+ ui : me.ui,
+ flex : 1
+ });
+ me.header.insert(0, {
+ xtype: 'component',
+ ui : me.ui,
+ flex : 1
+ });
+ me.suspendLayout = false;
+ }
+
+ me.callParent(arguments);
+ },
+
+ // private
+ onBeforeAdd: function(component) {
+ if (component.is('button')) {
+ component.ui = component.ui + '-toolbar';
+ }
+ this.callParent(arguments);
+ },
+
+ //private
+ applyDefaults: function(c) {
+ if (!Ext.isString(c)) {
+ c = this.callParent(arguments);
+ var d = this.internalDefaults;
+ if (c.events) {
+ Ext.applyIf(c.initialConfig, d);
+ Ext.apply(c, d);
+ } else {
+ Ext.applyIf(c, d);
+ }
+ }
+ return c;
+ }
+
+<span id='Ext-container-ButtonGroup-cfg-tools'> /**
+</span> * @cfg {Array} tools @hide
+ */
+<span id='Ext-container-ButtonGroup-cfg-collapsible'> /**
+</span> * @cfg {Boolean} collapsible @hide
+ */
+<span id='Ext-container-ButtonGroup-cfg-collapseMode'> /**
+</span> * @cfg {Boolean} collapseMode @hide
+ */
+<span id='Ext-container-ButtonGroup-cfg-animCollapse'> /**
+</span> * @cfg {Boolean} animCollapse @hide
+ */
+<span id='Ext-container-ButtonGroup-cfg-closable'> /**
+</span> * @cfg {Boolean} closable @hide
+ */
+});
+</pre>
+</body>
+</html>