| .TH STRINGSIZE 3 |
| .SH NAME |
| stringsize, stringwidth, stringnwidth, runestringsize, runestringwidth, runestringnwidth \- graphical size of strings |
| .SH SYNOPSIS |
| .nf |
| .PP |
| .ft L |
| #include <u.h> |
| #include <libc.h> |
| #include <draw.h> |
| .ft P |
| .ta \w'\fLPoint 'u |
| .PP |
| .B |
| Point stringsize(Font *f, char *s) |
| .PP |
| .B |
| int stringwidth(Font *f, char *s) |
| .PP |
| .B |
| int stringnwidth(Font *f, char *s, int n) |
| .PP |
| .B |
| Point runestringsize(Font *f, Rune *s) |
| .PP |
| .B |
| int runestringwidth(Font *f, Rune *s) |
| .PP |
| .B |
| int runestringnwidth(Font *f, Rune *s, int n) |
| .SH DESCRIPTION |
| These routines compute the geometrical extent of character strings when drawn on the display. The most straightforward, |
| .BR stringsize , |
| returns a |
| .B Point |
| representing the vector from upper left to lower right of the NUL-terminated string |
| .I s |
| drawn in font |
| .IR f . |
| .B Stringwidth |
| returns just the |
| .I x |
| component. |
| .B Stringnwidth |
| returns the width of the first |
| .I n |
| characters of |
| .IR s . |
| .PP |
| The routines beginning with |
| .B rune |
| are analogous, but accept an array of runes rather than |
| .SM UTF\c |
| -encoded bytes. |
| .SH FILES |
| .BR /lib/font/bit " directory of fonts |
| .SH SOURCE |
| .B \*9/src/libdraw |
| .SH "SEE ALSO" |
| .IR addpt (3), |
| .IR cachechars (3), |
| .IR subfont (3), |
| .IR draw (3), |
| .IR draw (3), |
| .IR image (7), |
| .IR font (7) |
| .SH DIAGNOSTICS |
| Because strings are loaded dynamically, these routines may generate I/O |
| to the server and produce calls to the graphics error function. |