1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
| /*!
| * Ext JS Library 3.1.0
| * Copyright(c) 2006-2009 Ext JS, LLC
| * licensing@extjs.com
| * http://www.extjs.com/license
| */
| /**
| * @class Ext.ButtonGroup
| * @extends Ext.Panel
| * Container for a group of buttons. Example usage:
| * <pre><code>
| var p = new Ext.Panel({
| title: 'Panel with Button Group',
| width: 300,
| height:200,
| renderTo: document.body,
| html: 'whatever',
| tbar: [{
| xtype: 'buttongroup',
| {@link #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>
| * @constructor
| * Create a new ButtonGroup.
| * @param {Object} config The config object
| * @xtype buttongroup
| */
| Ext.ButtonGroup = Ext.extend(Ext.Panel, {
| /**
| * @cfg {Number} columns The <tt>columns</tt> configuration property passed to the
| * {@link #layout configured layout manager}. See {@link Ext.layout.TableLayout#columns}.
| */
| /**
| * @cfg {String} baseCls Defaults to <tt>'x-btn-group'</tt>. See {@link Ext.Panel#baseCls}.
| */
| baseCls: 'x-btn-group',
| /**
| * @cfg {String} layout Defaults to <tt>'table'</tt>. See {@link Ext.Container#layout}.
| */
| layout:'table',
| defaultType: 'button',
| /**
| * @cfg {Boolean} frame Defaults to <tt>true</tt>. See {@link Ext.Panel#frame}.
| */
| frame: true,
| internalDefaults: {removeMode: 'container', hideParent: true},
|
| initComponent : function(){
| this.layoutConfig = this.layoutConfig || {};
| Ext.applyIf(this.layoutConfig, {
| columns : this.columns
| });
| if(!this.title){
| this.addClass('x-btn-group-notitle');
| }
| this.on('afterlayout', this.onAfterLayout, this);
| Ext.ButtonGroup.superclass.initComponent.call(this);
| },
|
| applyDefaults : function(c){
| c = Ext.ButtonGroup.superclass.applyDefaults.call(this, c);
| var d = this.internalDefaults;
| if(c.events){
| Ext.applyIf(c.initialConfig, d);
| Ext.apply(c, d);
| }else{
| Ext.applyIf(c, d);
| }
| return c;
| },
|
| onAfterLayout : function(){
| var bodyWidth = this.body.getFrameWidth('lr') + this.body.dom.firstChild.offsetWidth;
| this.body.setWidth(bodyWidth);
| this.el.setWidth(bodyWidth + this.getFrameWidth());
| }
| /**
| * @cfg {Array} tools @hide
| */
| });
|
| Ext.reg('buttongroup', Ext.ButtonGroup);
|
|