/**
 *
 */
Ext.define('Ext.layout.Fit', {
    extend: 'Ext.layout.Default',
 
    isFit: true,
 
    alias: 'layout.fit',
 
    cls: Ext.baseCSSPrefix + 'layout-fit',
 
    itemCls: Ext.baseCSSPrefix + 'layout-fit-item',
 
    setContainer: function(container) {
        this.callParent(arguments);
 
        this.onContainerSizeFlagsChange();
        this.monitorSizeFlagsChange();
    },
 
    onContainerSizeFlagsChange: function() {
        var container = this.container,
            sizeFlags = container.getSizeFlags(),
            stretched = Boolean(sizeFlags & container.LAYOUT_STRETCHED),
            innerItems = container.innerItems,
            i, ln, item;
 
        this.callParent();
 
        for (= 0,ln = innerItems.length; i < ln; i++) {
            item = innerItems[i];
            item.setLayoutSizeFlags(sizeFlags);
        }
 
        container.innerElement.toggleCls('x-stretched', stretched);
    },
 
    onItemInnerStateChange: function(item, isInner, destroying) {
        this.callParent(arguments);
        if(!destroying) {
            item.setLayoutSizeFlags(isInner ? this.container.getSizeFlags() : 0);
        }
    }
});