/** * @private * Base class for Box Layout overflow handlers. These specialized classes are invoked * when a Box Layout (either an HBox or a VBox) has child items that are either too wide * (for HBox) or too tall (for VBox) for its container. */Ext.define('Ext.layout.container.boxOverflow.None', { alternateClassName: 'Ext.layout.boxOverflow.None', alias: [ 'box.overflow.none', 'box.overflow.None' // capitalized for 4.x compat ], mixins: [ 'Ext.mixin.Factoryable' ], factoryConfig: { defaultType: 'none' }, isBoxOverflowHandler: true, $configPrefixed: false, $configStrict: false, constructor: function(config) { this.initConfig(config); }, handleOverflow: Ext.emptyFn, clearOverflow: Ext.emptyFn, beginLayout: Ext.emptyFn, beginLayoutCycle: Ext.emptyFn, calculate: function(ownerContext) { var me = this, plan = ownerContext.state.boxPlan, overflow; if (plan && plan.tooNarrow) { overflow = me.handleOverflow(ownerContext); if (overflow) { if (overflow.reservedSpace) { me.layout.publishInnerCtSize(ownerContext, overflow.reservedSpace); } // TODO: If we need to use the code below then we will need to pass along // the new targetSize as state and use it calculate somehow... // // if (overflow.recalculate) { // ownerContext.invalidate({ // state: { // overflow: overflow // } // }); // } } } else { me.clearOverflow(); } }, completeLayout: Ext.emptyFn, finishedLayout: function(ownerContext) { var me = this, owner = me.layout.owner, hiddens, hiddenCount; // Only count hidden children if someone is interested when the overflow state changes if (owner.hasListeners.overflowchange) { hiddens = owner.query('>[hidden]'); hiddenCount = hiddens.length; if (hiddenCount !== me.lastHiddenCount) { owner.fireEvent('overflowchange', me.lastHiddenCount, hiddenCount, hiddens); me.lastHiddenCount = hiddenCount; } } }, onRemove: Ext.emptyFn, /** * @private * Normalizes an item reference, string id or numerical index into a reference to the item * @param {Ext.Component/String/Number} item The item reference, id or index * @return {Ext.Component} The item */ getItem: function(item) { return this.layout.owner.getComponent(item); }, getOwnerType: function(owner) { var type; if (owner.isToolbar) { type = 'toolbar'; } else if (owner.isTabBar) { type = 'tab-bar'; } else if (owner.isMenu) { type = 'menu'; } else if (owner.isBreadcrumb) { type = 'breadcrumb'; } else { type = owner.getXType(); } return type; }, getPrefixConfig: Ext.emptyFn, getSuffixConfig: Ext.emptyFn, getOverflowCls: function() { return ''; }, setVertical: function() { var me = this, layout = me.layout, innerCt = layout.innerCt; innerCt.removeCls(me.getOverflowCls(layout.oppositeDirection)); innerCt.addCls(me.getOverflowCls(layout.direction)); }});