On 05/08/12 05:38, MacArthur, Ian (SELEX GALILEO, UK) wrote:
>> Second question: What function should be used: fl_measure() or
>> fl_text_extents()? Would there be a performance difference to be
>> expected, or would it only be the small difference in the exact
>> layout? The latter could IMHO be ignored, I'd suggest to use the
>> faster method, because exactness wouldn't matter here, anyway.
>
> They also do slightly different things:
>
> fl_text_extents measures the "inked" area of the string, but assumes that the
> text is "ready to be rendered" when measured, whereas fl_measure does text
> wrapping and symbol expansion and so forth before measuring the string, so
> the results are not directly analogous.
>
> Note that fl_measure attempts to expand symbols and wrap text in exactly the
> same fashion as fl_draw would do when rendering a widget label, so it is
> probably the more appropriate method for this particular job. I assume what
> we are looking at here is how to stop widget labels from wrapping back onto
> the screen inappropriately?
> Though it may well be slower than fl_text_extents in the general case?
Right -- for instance fl_text_extents() will return the same
width for these two strings:
" This is a test "
"This is a test"
..because the 'inked' areas are the same; the leading/trailing
white space is ignored in the width calculation.
Whereas fl_measure() will return different values for those
strings, because it includes the leading/trailing spaces.
I believe the same goes for vertical white space as well,
ie. "\nTesting\n\n\n" and "Testing" would I think return
the same vertical size.
fl_text_extent() does, however, give you the offset from the
string origin, so for instance the X offset for "This is a test"
and " This is a test" will be different.
_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev