/** * A layout that arranges items horizontally across a Container. This layout optionally divides available horizontal * space between child items containing a numeric `flex` configuration. * * This layout may also be used to set the heights of child items by configuring it with the {@link #align} option. * * @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 * }] * }); */ Ext.define('Ext.layout.container.HBox', { /* Begin Definitions */ alias: ['layout.hbox'], extend: 'Ext.layout.container.Box', alternateClassName: 'Ext.layout.HBoxLayout', /* End Definitions */ /** * @cfg {String} align * Controls how the child items of the container are aligned. Acceptable configuration values for this property are: * * - **top** : **Default** child items are aligned vertically at the **top** of the container. * - **middle** : child items are aligned vertically in the **middle** of the container. * - **bottom** : child items are aligned vertically at the **bottom** of the container. * - **stretch** : child items are stretched vertically to fill the height of the container. * - **stretchmax** : child items are stretched vertically to the height of the largest item. */ align: 'top', // top, middle, stretch, strechmax /** * @cfg {"round"/"floor"/"ceil"} [alignRoundingMethod='round'] The Math method to use * for rounding fractional pixels when `{@link #align}:middle` is used. */ /** * @cfg {Boolean} constrainAlign * Limits the size of {@link #align aligned} components to the size of the container under certain circumstances. * Firstly, the container height must not be determined by the height of the child components. Secondly, the child * components must have their height {@link Ext.AbstractComponent#shrinkWrap shrinkwrapped}. */ constrainAlign: false, type : 'hbox', direction: 'horizontal', horizontal: true, names: { // parallel beforeX: 'left', beforeScrollX: 'left', beforeScrollerSuffix: '-before-scroller', afterScrollerSuffix: '-after-scroller', leftCap: 'Left', afterX: 'right', width: 'width', contentWidth: 'contentWidth', minWidth: 'minWidth', maxWidth: 'maxWidth', widthCap: 'Width', widthModel: 'widthModel', widthIndex: 0, x: 'x', scrollLeft: 'scrollLeft', overflowX: 'overflowX', hasOverflowX: 'hasOverflowX', invalidateScrollX: 'invalidateScrollX', parallelMargins: 'lr', // perpendicular center: 'middle', beforeY: 'top', afterY: 'bottom', height: 'height', contentHeight: 'contentHeight', minHeight: 'minHeight', maxHeight: 'maxHeight', heightCap: 'Height', heightModel: 'heightModel', heightIndex: 1, y: 'y', overflowY: 'overflowY', hasOverflowY: 'hasOverflowY', invalidateScrollY: 'invalidateScrollY', perpendicularMargins: 'tb', // Methods getWidth: 'getWidth', getHeight: 'getHeight', setWidth: 'setWidth', setHeight: 'setHeight', gotWidth: 'gotWidth', gotHeight: 'gotHeight', setContentWidth: 'setContentWidth', setContentHeight: 'setContentHeight', setWidthInDom: 'setWidthInDom', setHeightInDom: 'setHeightInDom', getScrollLeft: 'getScrollLeft', setScrollLeft: 'setScrollLeft', scrollTo: 'scrollTo' }, sizePolicy: { flex: { '': { readsWidth : 0, readsHeight: 1, setsWidth : 1, setsHeight : 0 }, stretch: { readsWidth : 0, readsHeight: 0, setsWidth : 1, setsHeight : 1 }, stretchmax: { readsWidth : 0, readsHeight: 1, setsWidth : 1, setsHeight : 1 } }, '': { readsWidth : 1, readsHeight: 1, setsWidth : 0, setsHeight : 0 }, stretch: { readsWidth : 1, readsHeight: 0, setsWidth : 0, setsHeight : 1 }, stretchmax: { readsWidth : 1, readsHeight: 1, setsWidth : 0, setsHeight : 1 } } });