/**
* @class Ext.layout.container.Fit
* @extends Ext.layout.container.AbstractFit
* <p>This is a base class for layouts that contain <b>a single item</b> that automatically expands to fill the layout's
* container. This class is intended to be extended or created via the <tt>layout:'fit'</tt> {@link Ext.container.Container#layout}
* config, and should generally not need to be created directly via the new keyword.</p>
* <p>FitLayout does not have any direct config options (other than inherited ones). To fit a panel to a container
* using FitLayout, simply set layout:'fit' on the container and add a single panel to it. If the container has
* multiple panels, only the first one will be displayed.
* {@img Ext.layout.container.Fit/Ext.layout.container.Fit.png Ext.layout.container.Fit container layout}
* Example usage:</p>
* <pre><code>
Ext.create('Ext.panel.Panel', {
title: 'Fit Layout',
width: 300,
height: 150,
layout:'fit',
items: {
title: 'Inner Panel',
html: 'This is the inner panel content',
bodyPadding: 20,
border: false
},
renderTo: Ext.getBody()
});
</code></pre>
*/
Ext.define('Ext.layout.container.Fit', {
/* Begin Definitions */
extend: 'Ext.layout.container.AbstractFit',
alias: 'layout.fit',
alternateClassName: 'Ext.layout.FitLayout',
/* End Definitions */
// @private
onLayout : function() {
var me = this;
me.callParent();
if (me.owner.items.length) {
me.setItemBox(me.owner.items.get(0), me.getLayoutTargetSize());
}
},
getTargetBox : function() {
return this.getLayoutTargetSize();
},
setItemBox : function(item, box) {
var me = this;
if (item && box.height > 0) {
if (!me.owner.isFixedWidth()) {
box.width = undefined;
}
if (!me.owner.isFixedHeight()) {
box.height = undefined;
}
me.setItemSize(item, box.width, box.height);
}
},
configureItem: function(item) {
// Card layout only controls dimensions which IT has controlled.
// That calculation has to be determined at run time by examining the ownerCt's isFixedWidth()/isFixedHeight() methods
item.layoutManagedHeight = 0;
item.layoutManagedWidth = 0;
this.callParent(arguments);
}
});