XmbTextExtents(3) XLIB FUNCTIONS XmbTextExtents(3)

# [NAME](#NAME)

XmbTextExtents, XwcTextExtents, Xutf8TextExtents - compute text extents

# [SYNTAX](#SYNTAX)

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

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

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

# [ARGUMENTS](#ARGUMENTS)

[*font\_set*](#font_set)

Specifies the font set.

[*num\_bytes*](#num_bytes)

Specifies the number of bytes in the string argument.

[*num\_wchars*](#num_wchars)

Specifies the number of characters in the string argument.

[*overall\_ink\_return*](#overall_ink_return)

Returns the overall ink dimensions.

[*overall\_logical\_return*](#overall_logical_return)

Returns the overall logical dimensions.

[*string*](#string)

Specifies the character string.

# [DESCRIPTION](#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 &lt;= -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 &gt;= 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 extension introduced by The XFree86 Project, Inc., in their 4.0.2 release. Its presence is indicated by the macro **X\_HAVE\_UTF8\_STRING**.

# [SEE ALSO](#SEE_ALSO)

[**XmbTextEscapement**(3)](/man/os/libx11/XmbTextEscapement.3), [**XmbTextPerCharExtents**(3)](/man/os/libx11/XmbTextPerCharExtents.3) *Xlib - C Language X Interface*

libX11 1.8.14 X Version 11

---

Document: XwcTextExtents(3) from libx11 1.8.14-r0 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libx11.git
