/** * Abstract base class for common functionality shared between {@link Ext.panel.Header} * and {@link Ext.tab.Bar} * @private * @abstract */Ext.define('Ext.panel.Bar', { extend: 'Ext.container.Container', vertical: false, _verticalSides: { left: 1, right: 1 }, initComponent: function() { var me = this, vertical = me.vertical; me.dock = me.dock || (vertical ? 'left' : 'top'); me.layout = Ext.apply( vertical ? { type: 'vbox', align: 'middle', alignRoundingMethod: 'ceil' } : { type: 'hbox', align: 'middle', alignRoundingMethod: 'floor' }, me.layout ); this.callParent(); }, onAdded: function(container, pos, instanced) { this.initOrientation(); this.callParent([container, pos, instanced]); }, onRemoved: function(destroying) { this.removeClsWithUI(this.uiCls); this.callParent([destroying]); }, beforeRender: function() { var me = this; if (me.forceOrientation || !me.ownerCt) { // allows bars to be rendered directly to body with no owner container me.initOrientation(); } me.callParent(); }, setDock: function(dock) { var me = this, layout, vertical; if (dock !== me.dock) { Ext.suspendLayouts(); me.clearOrientation(); me.callParent([dock]); me.initOrientation(); vertical = me.vertical; layout = me.layout; layout.setVertical(vertical); layout.setAlignRoundingMethod(vertical ? 'ceil' : 'floor'); Ext.resumeLayouts(true); } }, privates: { clearOrientation: function() { this.removeClsWithUI([ this.vertical ? 'vertical' : 'horizontal', this.getDockName() ]); }, getDockName: function() { return this.dock; }, initOrientation: function() { var me = this, dock = me.dock, vertical = (me.vertical = (dock ? dock in me._verticalSides : me.vertical)); me.addClsWithUI([ vertical ? 'vertical' : 'horizontal', me.getDockName() ]); } }});