---
name: "XwcTextExtents"
section: "3x"
platform: "linux"
package: "libx11-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XmbTextExtents/3x"
---

# XwcTextExtents(3x)

compute text extents

Part of [XmbTextExtents(3x)](/XmbTextExtents/3x.md).

## NAME

XmbTextExtents, XwcTextExtents, Xutf8TextExtents - compute text extents

## SYNTAX

int XmbTextExtents(XFontSet *font\_set*, char \**string*, int *num\_bytes*, XRectangle \**overall\_ink\_return*, XRectangle \**overall\_logical\_return*);

int XwcTextExtents(XFontSet *font\_set*, wchar\_t \**string*, int *num\_wchars*, XRectangle \**overall\_ink\_return*, XRectangle \**overall\_logical\_return*);

int Xutf8TextExtents(XFontSet *font\_set*, char \**string*, int *num\_bytes*, XRectangle \**overall\_ink\_return*, XRectangle \**overall\_logical\_return*);

## ARGUMENTS

- *font\_set*

  Specifies the font set.

- *num\_bytes*

  Specifies the number of bytes in the string argument.

- *num\_wchars*

  Specifies the number of characters in the string argument.

- *overall\_ink\_return*

  Returns the overall ink dimensions.

- *overall\_logical\_return*

  Returns the overall logical dimensions.

- *string*

  Specifies the character string.

## DESCRIPTION

The *XmbTextExtents*, *XwcTextExtents* and *Xutf8TextExtents* functions set the components of the specified overall\_ink\_return and overall\_logical\_return arguments to the overall bounding box of the string's image and a logical bounding box for spacing purposes, respectively. They return the value returned by  *XmbTextEscapement*, *XwcTextEscapement* or *Xutf8TextEscapement*. These metrics are relative to the drawing origin of the string, using the fonts loaded for the specified font set.

If the overall\_ink\_return argument is non-NULL, it is set to the bounding box of the string's character ink. The overall\_ink\_return for a nondescending, horizontally drawn Latin character is conventionally entirely above the baseline; that is, overall\_ink\_return.height \<= -overall\_ink\_return.y. The overall\_ink\_return for a nonkerned character is entirely at, and to the right of, the origin; that is, overall\_ink\_return.x \>= 0. A character consisting of a single pixel at the origin would set overall\_ink\_return fields y = 0, x = 0, width = 1, and height = 1.

If the overall\_logical\_return argument is non-NULL, it is set to the bounding box that provides minimum spacing to other graphical features for the string. Other graphical features, for example, a border surrounding the text, should not intersect this rectangle.

When the  *XFontSet* has missing charsets, metrics for each unavailable character are taken  from the default string returned by  *XCreateFontSet* so that the metrics represent the text as it will actually be drawn. The behavior for an invalid codepoint is undefined.

The function *Xutf8TextExtents* is an XFree86 extension introduced in XFree86 4.0.2. Its presence is indicated by the macro *X\_HAVE\_UTF8\_STRING*.

## SEE ALSO

XmbTextEscapement(3X11), XmbTextPerCharExtents(3X11) *Xlib - C Language X Interface*
