X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/src/core/Element.legacy.js diff --git a/src/core/Element.legacy.js b/src/core/Element.legacy.js new file mode 100644 index 00000000..75883f56 --- /dev/null +++ b/src/core/Element.legacy.js @@ -0,0 +1,42 @@ +/*! + * Ext JS Library 3.0.0 + * Copyright(c) 2006-2009 Ext JS, LLC + * licensing@extjs.com + * http://www.extjs.com/license + */ +/** + * @class Ext.Element + */ +Ext.Element.addMethods({ + /** + * Measures the element's content height and updates height to match. Note: this function uses setTimeout so + * the new height may not be available immediately. + * @param {Boolean} animate (optional) Animate the transition (defaults to false) + * @param {Float} duration (optional) Length of the animation in seconds (defaults to .35) + * @param {Function} onComplete (optional) Function to call when animation completes + * @param {String} easing (optional) Easing method to use (defaults to easeOut) + * @return {Ext.Element} this + */ + autoHeight : function(animate, duration, onComplete, easing){ + var oldHeight = this.getHeight(); + this.clip(); + this.setHeight(1); // force clipping + setTimeout(function(){ + var height = parseInt(this.dom.scrollHeight, 10); // parseInt for Safari + if(!animate){ + this.setHeight(height); + this.unclip(); + if(typeof onComplete == "function"){ + onComplete(); + } + }else{ + this.setHeight(oldHeight); // restore original height + this.setHeight(height, animate, duration, function(){ + this.unclip(); + if(typeof onComplete == "function") onComplete(); + }.createDelegate(this), easing); + } + }.createDelegate(this), 0); + return this; + } +}); \ No newline at end of file