No wonder I kept being confused about the various text width functions:
render.h:
/* Returns the EXACT width of text in pixels, using the current font
This operation just has to be defined for renderers that are
interactive, (ie. the screen). As you can't generally calculate
exact widths otherwise.
*/
typedef real (*GetTextWidthFunc) (Renderer *renderer,
const utfchar *text, int length);
display.c:
/* Takes pixel length and returns real length */
real
ddisplay_untransform_length(DDisplay *ddisp, real len)
{
return len / ddisp->zoom_factor;
}
render_gdk.c:
static real
get_text_width(RendererGdk *renderer,
const utfchar *text, int length)
{
...
return ddisplay_untransform_length(renderer->ddisp, (real) iwidth);
}
Looks to me like the comment for GetTextWidthFunc is wrong, yes? At least
it seems that the places using it expect cm, not pixels. We shouldn't
really know about pixel widths outside of the renderers anyway,
-Lars
--
Lars Clausen (http://shasta.cs.uiuc.edu/~lrclause)| Hårdgrim of Numenor
"I do not agree with a word that you say, but I |----------------------------
will defend to the death your right to say it." | Where are we going, and
--Evelyn Beatrice Hall paraphrasing Voltaire | what's with the handbasket?