/**
* A layout that arranges items horizontally across a
* {@link Ext.container.Container Container}. This layout optionally divides available
* horizontal space between child {@link Ext.container.Container#cfg-items items}
* containing a numeric {@link Ext.Component#cfg-flex flex} configuration.
*
* This layout may be used to set the heights or vertical position of child items
* by configuring it with the {@link #align} option. The horizontal position of the
* child items may be set using the {@link #pack} config.
*
* @example
* Ext.create('Ext.Panel', {
* width: 500,
* height: 300,
* title: "HBoxLayout Panel",
* layout: {
* type: 'hbox',
* align: 'stretch'
* },
* renderTo: document.body,
* items: [{
* xtype: 'panel',
* title: 'Inner Panel One',
* flex: 2
* },{
* xtype: 'panel',
* title: 'Inner Panel Two',
* flex: 1
* },{
* xtype: 'panel',
* title: 'Inner Panel Three',
* flex: 1
* }]
* });
*
* The following example may be used to view the outcomes when combining the `align` and
* `pack` configs:
*
* @example
* Ext.create({
* xtype: 'panel',
* renderTo: Ext.getBody(),
* height: 400,
* width: 520,
* defaultListenerScope: true,
* layout: 'hbox',
* defaultType: 'button',
* items: [{
* text: 'One'
* }, {
* text: 'Two'
* }, {
* text: 'Three'
* }],
* dockedItems: [{
* xtype: 'toolbar',
* dock: 'top',
* items: [{
* xtype: 'buttongroup',
* title: 'align',
* layout: 'fit',
* items: [{
* xtype: 'segmentedbutton',
* margin: 10,
* allowDepress: true,
* defaults: {
* configType: 'align' // custom config used in this example
* },
* items: [{
* text: 'begin'
* }, {
* text: 'middle'
* }, {
* text: 'end'
* }, {
* text: 'stretch'
* }, {
* text: 'stretchmax'
* }],
* listeners: {
* toggle: 'onToggle'
* }
* }]
* }, '->', {
* xtype: 'buttongroup',
* title: 'pack',
* layout: 'fit',
* items: [{
* xtype: 'segmentedbutton',
* margin: 10,
* allowDepress: true,
* defaults: {
* configType: 'pack' // custom config used in this example
* },
* items: [{
* text: 'start'
* }, {
* text: 'center'
* }, {
* text: 'end'
* }],
* listeners: {
* toggle: 'onToggle'
* }
* }]
* }]
* }],
*
* onToggle: function (group, button, isPressed) {
* var cfg = {};
*
* cfg[button.configType] = isPressed ? button.getText() : null;
* this.setLayout(cfg);
* }
* });
*/
Ext.define('Ext.layout.container.HBox', {
extend: 'Ext.layout.container.Box',
alias: 'layout.hbox',
alternateClassName: 'Ext.layout.HBoxLayout',
type: 'hbox',
vertical: false
});