Thanks Sebastian,
That explains the mystery.

I'd like to add a static method for measuring test in Label:

/**
 [EMAIL PROTECTED] text {String}
 [EMAIL PROTECTED] font {String} optional font. If unspecified, take the 
default one
from the document
 [EMAIL PROTECTED] width and height
 */
measure: function(text, font) {...}

Is it a good place?


Sebastian Werner wrote:
> 
> Adding the label to the document influences the selected font (keyword: 
> inheritance). So it is quite logical that the size depends on that.
> 
> Sebastian
> 
> 
> 
> dperez schrieb:
>> Very interesting this test from the Firebug Console:
>> 
>> Test 1:
>> 
>>      new qx.ui.basic.Label('david')._computePreferredInnerWidth()==38
>> 
>> Test 2:
>> 
>> var et = new qx.ui.basic.Label('david');
>> et.setLocation(200,200);
>> et.setZIndex(1000);
>> et.addToDocument()
>> et.setBackgroundColor('#ff0')
>> et._computePreferredInnerWidth()==26
>> 
>> 
>> Conclusion: the value reported depends on if the label has been added or
>> not.
>> 
>> Is this normal?
>> 
>> Relevant source code of Label.js:
>> 
>>     _computeObjectNeededDimensions : function()
>>     {
>>       // get node
>>       var element = this.self(arguments)._getMeasureNode();
>>       var style = element.style;
>> 
>>       // sync styles
>>       var source = this._styleProperties;
>>       style.fontFamily = source.fontFamily || "";
>>       style.fontSize = source.fontSize || "";
>>       style.fontWeight = source.fontWeight || "";
>>       style.fontStyle = source.fontStyle || "";
>> 
>>       // apply html
>>       if (this._isHtml)
>>       {
>>         element.innerHTML = this._content;
>>       }
>>       else
>>       {
>>         element.innerHTML = "";
>>         qx.dom.Element.setTextContent(element, this._content);
>>       }
>> 
>>       // store values
>>       this._cachedPreferredInnerWidth = element.scrollWidth;
>>       this._cachedPreferredInnerHeight = element.scrollHeight;
>>     },
>> 
>>     _computePreferredInnerWidth : function()
>>     {
>>       this._computeObjectNeededDimensions();
>>       return this._cachedPreferredInnerWidth;
>>     },
>> 
>> 
>> 
>> dperez wrote:
>>> Hi,
>>>
>>> In qooxdoo 0.6.6 I used to use this code for measuring the width of
>>> text:
>>>
>>> (new qx.ui.basic.Label('My text')).getPreferredBoxWidth()
>>>
>>> In qooxdoo 0.7, I receive very high values.  For instance for a label
>>> whose measured real width is 170 pixels, a value of 240 is returned.   
>>>
>>> What may be the cause of this inaccuracy?
>>> Is this the best method of measuring width of text?
>>>
>>> Thanx for any answer.
>>>
>>> Regards,
>>> David
>>>
>> 
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Measuring-text-tf3963113.html#a11248824
Sent from the qooxdoo-devel mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to