skypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinuxwindowsinboxwhatsappicloudtweetdeckhipchattelegramhangoutsslackgmail
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
3.7 KiB
152 lines
3.7 KiB
/** |
|
* Provides a container for arranging a group of related Buttons in a tabular manner. |
|
* |
|
* @example |
|
* Ext.create('Ext.panel.Panel', { |
|
* title: 'Panel with ButtonGroup', |
|
* width: 300, |
|
* height:200, |
|
* renderTo: document.body, |
|
* bodyPadding: 10, |
|
* html: 'HTML Panel Content', |
|
* tbar: [{ |
|
* xtype: 'buttongroup', |
|
* columns: 3, |
|
* title: 'Clipboard', |
|
* items: [{ |
|
* text: 'Paste', |
|
* scale: 'large', |
|
* rowspan: 3, |
|
* iconCls: 'add', |
|
* iconAlign: 'top', |
|
* cls: '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' |
|
* }] |
|
* }] |
|
* }); |
|
* |
|
*/ |
|
Ext.define('Ext.container.ButtonGroup', { |
|
extend: 'Ext.panel.Panel', |
|
alias: 'widget.buttongroup', |
|
alternateClassName: 'Ext.ButtonGroup', |
|
|
|
requires: ['Ext.layout.container.Table'], |
|
|
|
/** |
|
* @cfg {Number} columns |
|
* The `columns` configuration property passed to the {@link #layout configured layout manager}. |
|
* See {@link Ext.layout.container.Table#columns}. |
|
*/ |
|
|
|
/** |
|
* @cfg {String} baseCls |
|
* @inheritdoc |
|
*/ |
|
baseCls: Ext.baseCSSPrefix + 'btn-group', |
|
|
|
/** |
|
* @cfg {Ext.enums.Layout/Object} layout |
|
* @inheritdoc |
|
*/ |
|
layout: { |
|
type: 'table' |
|
}, |
|
|
|
defaultType: 'button', |
|
|
|
/** |
|
* @cfg {Boolean} frame |
|
* @inheritdoc |
|
*/ |
|
frame: true, |
|
|
|
/** |
|
* @cfg {String} defaultButtonUI |
|
* A default {@link Ext.Component#ui ui} to use for {@link Ext.button.Button Button} items |
|
*/ |
|
|
|
frameHeader: false, |
|
|
|
/** |
|
* @cfg {String} titleAlign |
|
* The alignment of the title text within the available space between the icon and the tools. |
|
*/ |
|
titleAlign: 'center', |
|
|
|
noTitleCls: 'notitle', |
|
|
|
ariaRole: 'group', |
|
|
|
initComponent : function() { |
|
// Copy the component's columns config to the layout if specified |
|
var me = this, |
|
cols = me.columns; |
|
|
|
if (cols) { |
|
me.layout = Ext.apply({}, {columns: cols}, me.layout); |
|
} |
|
|
|
if (!me.title) { |
|
me.addClsWithUI(me.noTitleCls); |
|
} |
|
me.callParent(arguments); |
|
}, |
|
|
|
// private |
|
onBeforeAdd: function(component) { |
|
if (component.isButton) { |
|
if (this.defaultButtonUI && component.ui === 'default' && |
|
!component.hasOwnProperty('ui')) { |
|
component.ui = this.defaultButtonUI; |
|
} else { |
|
component.ui = component.ui + '-toolbar'; |
|
} |
|
} |
|
this.callParent(arguments); |
|
}, |
|
|
|
privates: { |
|
applyDefaults: function (c) { |
|
if (!Ext.isString(c)) { |
|
c = this.callParent(arguments); |
|
} |
|
return c; |
|
} |
|
} |
|
|
|
/** |
|
* @cfg {Array} tools |
|
* @private |
|
*/ |
|
/** |
|
* @cfg {Boolean} collapsible |
|
* @private |
|
*/ |
|
/** |
|
* @cfg {Boolean} collapseMode |
|
* @private |
|
*/ |
|
/** |
|
* @cfg {Boolean} animCollapse |
|
* @private |
|
*/ |
|
/** |
|
* @cfg {Boolean} closable |
|
* @private |
|
*/ |
|
});
|
|
|