Roo/util/TextMetrics.js
authorAlan Knowles <alan@akbkhome.com>
Thu, 22 Jul 2010 02:12:26 +0000 (10:12 +0800)
committerAlan Knowles <alan@akbkhome.com>
Thu, 22 Jul 2010 02:12:26 +0000 (10:12 +0800)
Roo/util/TextMetrics.js [deleted file]

diff --git a/Roo/util/TextMetrics.js b/Roo/util/TextMetrics.js
deleted file mode 100644 (file)
index fa4262b..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Based on:
- * Ext JS Library 1.1.1
- * Copyright(c) 2006-2007, Ext JS, LLC.
- *
- * Originally Released Under LGPL - original licence link has changed is not relivant.
- *
- * Fork - LGPL
- * <script type="text/javascript">
- */
-
-/**
- * @class Roo.util.TextMetrics
- * Provides precise pixel measurements for blocks of text so that you can determine exactly how high and
- * wide, in pixels, a given block of text will be.
- * @singleton
- */
-Roo.util.TextMetrics = function(){
-    var shared;
-    return {
-        /**
-         * Measures the size of the specified text
-         * @param {String/HTMLElement} el The element, dom node or id from which to copy existing CSS styles
-         * that can affect the size of the rendered text
-         * @param {String} text The text to measure
-         * @param {Number} fixedWidth (optional) If the text will be multiline, you have to set a fixed width
-         * in order to accurately measure the text height
-         * @return {Object} An object containing the text's size {width: (width), height: (height)}
-         */
-        measure : function(el, text, fixedWidth){
-            if(!shared){
-                shared = Roo.util.TextMetrics.Instance(el, fixedWidth);
-            }
-            shared.bind(el);
-            shared.setFixedWidth(fixedWidth || 'auto');
-            return shared.getSize(text);
-        },
-
-        /**
-         * Return a unique TextMetrics instance that can be bound directly to an element and reused.  This reduces
-         * the overhead of multiple calls to initialize the style properties on each measurement.
-         * @param {String/HTMLElement} el The element, dom node or id that the instance will be bound to
-         * @param {Number} fixedWidth (optional) If the text will be multiline, you have to set a fixed width
-         * in order to accurately measure the text height
-         * @return {Roo.util.TextMetrics.Instance} instance The new instance
-         */
-        createInstance : function(el, fixedWidth){
-            return Roo.util.TextMetrics.Instance(el, fixedWidth);
-        }
-    };
-}();
-
-
-Roo.util.TextMetrics.Instance = function(bindTo, fixedWidth){
-    var ml = new Roo.Element(document.createElement('div'));
-    document.body.appendChild(ml.dom);
-    ml.position('absolute');
-    ml.setLeftTop(-1000, -1000);
-    ml.hide();
-
-    if(fixedWidth){
-        ml.setWidth(fixedWidth);
-    }
-     
-    var instance = {
-        /**
-         * Returns the size of the specified text based on the internal element's style and width properties
-         * @memberOf Roo.util.TextMetrics.Instance#
-         * @param {String} text The text to measure
-         * @return {Object} An object containing the text's size {width: (width), height: (height)}
-         */
-        getSize : function(text){
-            ml.update(text);
-            var s = ml.getSize();
-            ml.update('');
-            return s;
-        },
-
-        /**
-         * Binds this TextMetrics instance to an element from which to copy existing CSS styles
-         * that can affect the size of the rendered text
-         * @memberOf Roo.util.TextMetrics.Instance#
-         * @param {String/HTMLElement} el The element, dom node or id
-         */
-        bind : function(el){
-            ml.setStyle(
-                Roo.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height')
-            );
-        },
-
-        /**
-         * Sets a fixed width on the internal measurement element.  If the text will be multiline, you have
-         * to set a fixed width in order to accurately measure the text height.
-         * @memberOf Roo.util.TextMetrics.Instance#
-         * @param {Number} width The width to set on the element
-         */
-        setFixedWidth : function(width){
-            ml.setWidth(width);
-        },
-
-        /**
-         * Returns the measured width of the specified text
-         * @memberOf Roo.util.TextMetrics.Instance#
-         * @param {String} text The text to measure
-         * @return {Number} width The width in pixels
-         */
-        getWidth : function(text){
-            ml.dom.style.width = 'auto';
-            return this.getSize(text).width;
-        },
-
-        /**
-         * Returns the measured height of the specified text.  For multiline text, be sure to call
-         * {@link #setFixedWidth} if necessary.
-         * @memberOf Roo.util.TextMetrics.Instance#
-         * @param {String} text The text to measure
-         * @return {Number} height The height in pixels
-         */
-        getHeight : function(text){
-            return this.getSize(text).height;
-        }
-    };
-
-    instance.bind(bindTo);
-
-    return instance;
-};
-
-// backwards compat
-Roo.Element.measureText = Roo.util.TextMetrics.measure;
\ No newline at end of file