/** * @class Ext.layout.container.VBox * @extends Ext.layout.container.Box * <p>A layout that arranges items vertically down a Container. This layout optionally divides available vertical * space between child items containing a numeric <code>flex</code> configuration.</p> * This layout may also be used to set the widths of child items by configuring it with the {@link #align} option. * {@img Ext.layout.container.VBox/Ext.layout.container.VBox.png Ext.layout.container.VBox container layout} * Example usage: Ext.create('Ext.Panel', { width: 500, height: 400, title: "VBoxLayout Panel", layout: { type: 'vbox', align: 'center' }, renderTo: document.body, items: [{ xtype: 'panel', title: 'Inner Panel One', width: 250, flex: 2 },{ xtype: 'panel', title: 'Inner Panel Two', width: 250, flex: 4 },{ xtype: 'panel', title: 'Inner Panel Three', width: '50%', flex: 4 }] }); */ Ext.define('Ext.layout.container.VBox', { /* Begin Definitions */ alias: ['layout.vbox'], extend: 'Ext.layout.container.Box', alternateClassName: 'Ext.layout.VBoxLayout', /* End Definitions */ /** * @cfg {String} align * Controls how the child items of the container are aligned. Acceptable configuration values for this * property are: * <div class="mdetail-params"><ul> * <li><b><tt>left</tt></b> : <b>Default</b><div class="sub-desc">child items are aligned horizontally * at the <b>left</b> side of the container</div></li> * <li><b><tt>center</tt></b> : <div class="sub-desc">child items are aligned horizontally at the * <b>mid-width</b> of the container</div></li> * <li><b><tt>stretch</tt></b> : <div class="sub-desc">child items are stretched horizontally to fill * the width of the container</div></li> * <li><b><tt>stretchmax</tt></b> : <div class="sub-desc">child items are stretched horizontally to * the size of the largest item.</div></li> * </ul></div> */ align : 'left', // left, center, stretch, strechmax //@private alignCenteringString: 'center', type: 'vbox', direction: 'vertical', // When creating an argument list to setSize, use this order parallelSizeIndex: 1, perpendicularSizeIndex: 0, parallelPrefix: 'height', parallelPrefixCap: 'Height', parallelLT: 't', parallelRB: 'b', parallelBefore: 'top', parallelBeforeCap: 'Top', parallelAfter: 'bottom', parallelPosition: 'y', perpendicularPrefix: 'width', perpendicularPrefixCap: 'Width', perpendicularLT: 'l', perpendicularRB: 'r', perpendicularLeftTop: 'left', perpendicularRightBottom: 'right', perpendicularPosition: 'x', configureItem: function(item) { if (item.flex) { item.layoutManagedHeight = 1; } else { item.layoutManagedHeight = 2; } if (this.align === 'stretch' || this.align === 'stretchmax') { item.layoutManagedWidth = 1; } else { item.layoutManagedWidth = 2; } this.callParent(arguments); } });