shithub: front

ref: 26f0aa33d91442fc7a56fc5f5c9b56b5f5f84ce2
dir: /sys/man/2/stringsize/

View raw version
.TH STRINGSIZE 2
.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 /sys/src/libdraw
.SH "SEE ALSO"
.IR addpt (2),
.IR cachechars (2),
.IR subfont (2),
.IR draw (2),
.IR draw (3),
.IR image (6),
.IR font (6)
.SH DIAGNOSTICS
Because strings are loaded dynamically, these routines may generate I/O
to the server and produce calls to the graphics error function.