XmbDrawText(3) XLIB FUNCTIONS XmbDrawText(3)

# [NAME](#NAME)

XmbDrawText, XwcDrawText, Xutf8DrawText - draw text using multiple font sets

# [SYNTAX](#SYNTAX)

void XmbDrawText(Display \**display*, Drawable *d*, GC *gc*, int *x*, int *y*, XmbTextItem \**items*, int *nitems*);

void XwcDrawText(Display \**display*, Drawable *d*, GC *gc*, int *x*, int *y*, XwcTextItem \**items*, int *nitems*);

void Xutf8DrawText(Display \**display*, Drawable *d*, GC *gc*, int *x*, int *y*, XmbTextItem \**items*, int *nitems*);

# [ARGUMENTS](#ARGUMENTS)

[*d*](#d)

Specifies the drawable.

[*display*](#display)

Specifies the connection to the X server.

[*gc*](#gc)

Specifies the GC.

[*items*](#items)

Specifies an array of text items.

[*nitems*](#nitems)

Specifies the number of text items in the array.

[*x*](#x)

[*y*](#y)

Specify the x and y coordinates.

# [DESCRIPTION](#DESCRIPTION)

The **XmbDrawText**, **XwcDrawText** and **Xutf8DrawText** functions allow complex spacing and font set shifts between text strings. Each text item is processed in turn, with the origin of a text element advanced in the primary draw direction by the escapement of the previous text item. A text item delta specifies an additional escapement of the text item drawing origin in the primary draw direction. A font\_set member other than **None** in an item causes the font set to be used for this and subsequent text items in the text\_items list. Leading text items with a font\_set member set to **None** will not be drawn.

**XmbDrawText**, **XwcDrawText** and **Xutf8DrawText** do not perform any context-dependent rendering between text segments. Clients may compute the drawing metrics by passing each text segment to **XmbTextExtents**, **XwcTextExtents**, **Xutf8TextExtents** or **XmbTextPerCharExtents**, **XwcTextPerCharExtents**. **Xutf8TextPerCharExtents**. When the **XFontSet** has missing charsets, each unavailable character is drawn with the default string returned by **XCreateFontSet**. The behavior for an invalid codepoint is undefined.

The function **Xutf8DrawText** 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**.

# [STRUCTURES](#STRUCTURES)

The **XmbTextItem** structure contains:

```
typedef struct {


        char *chars;    /* pointer to string */


        int nchars;     /* number of bytes */


        int delta;      /* pixel delta between strings */


        XFontSet font_set;      /* fonts, None means don't change */
} XmbTextItem;
```

The **XwcTextItem** structure contains:

```
typedef struct {


        wchar_t *chars; /* pointer to wide char string */


        int nchars;     /* number of wide characters */


        int delta;      /* pixel delta between strings */


        XFontSet font_set;      /* fonts, None means don't change */
} XwcTextItem;
```

# [SEE ALSO](#SEE_ALSO)

[**XDrawImageString**(3)](/man/os/libx11/XDrawImageString.3), [**XDrawString**(3)](/man/os/libx11/XDrawString.3), [**XDrawText**(3)](/man/os/libx11/XDrawText.3), [**XmbDrawImageString**(3)](/man/os/libx11/XmbDrawImageString.3), [**XmbDrawString**(3)](/man/os/libx11/XmbDrawString.3)  
*Xlib - C Language X Interface*

libX11 1.8.14 X Version 11

---

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