---
name: "XContextualDrawing"
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/XFontsOfFontSet/3x"
---

# XContextualDrawing(3x)

obtain fontset information

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

## NAME

XFontsOfFontSet, XBaseFontNameListOfFontSet, XLocaleOfFontSet, XContextDependentDrawing, XContextualDrawing, XDirectionalDependentDrawing - obtain fontset information

## SYNTAX

int XFontsOfFontSet(XFontSet *font\_set*, XFontStruct \*\*\**font\_struct\_list\_return*, char \*\*\**font\_name\_list\_return*);

char \*XBaseFontNameListOfFontSet(XFontSet *font\_set*);

char \*XLocaleOfFontSet(XFontSet *font\_set*);

Bool XContextDependentDrawing(XFontSet *font\_set*);

Bool XContextualDrawing(XFontSet *font\_set*);

Bool XDirectionalDependentDrawing(XFontSet *font\_set*);

## ARGUMENTS

- *font\_set*

  Specifies the font set.

- *font\_name\_list\_return*

  Returns the list of font names.

- *font\_struct\_list\_return*

  Returns the list of font structs.

## DESCRIPTION

The *XFontsOfFontSet* function returns a list of one or more  *XFontStructs* and font names for the fonts used by the Xmb and Xwc layers for the given font set. A list of pointers to the *XFontStruct* structures is returned to font\_struct\_list\_return. A list of pointers to null-terminated, fully specified font name strings in the locale of the font set is returned to font\_name\_list\_return. The font\_name\_list order corresponds to the font\_struct\_list order. The number of *XFontStruct* structures and font names is returned as the value of the function.

Because it is not guaranteed that a given character will be imaged using a single font glyph, there is no provision for mapping a character or default string  to the font properties, font ID, or direction hint for the font  for the character. The client may access the  *XFontStruct* list to obtain these values for all the fonts currently in use.

Xlib does not guarantee that fonts are loaded from the server at the creation of an  *XFontSet*. Xlib may choose to cache font data, loading it only as needed to draw text  or compute text dimensions. Therefore, existence of the per\_char metrics in the  *XFontStruct* structures in the *XFontStructSet* is undefined. Also, note that all properties in the  *XFontStruct* structures are in the STRING encoding.

The  *XFontStruct* and font name lists are owned by Xlib  and should not be modified or freed by the client. They will be freed by a call to *XFreeFontSet* with the associated *XFontSet*. Until freed, their contents will not be modified by Xlib.

The *XBaseFontNameListOfFontSet* function returns the original base font name list supplied by the client when the  *XFontSet* was created. A null-terminated string containing a list of comma-separated font names is returned as the value of the function. White space may appear immediately on either side of separating commas.

If  *XCreateFontSet* obtained an XLFD name from the font properties for the font specified by a non-XLFD base name, the *XBaseFontNameListOfFontSet* function will return the XLFD name instead of the non-XLFD base name.

The base font name list is owned by Xlib and should not be modified or freed by the client. It will be freed by a call to  *XFreeFontSet* with the associated  *XFontSet*. Until freed, its contents will not be modified by Xlib.

The *XLocaleOfFontSet* function returns the name of the locale bound to the specified *XFontSet*, as a null-terminated string.

The returned locale name string is owned by Xlib and should not be modified or freed by the client. It may be freed by a call to *XFreeFontSet* with the associated  *XFontSet*. Until freed, it will not be modified by Xlib.

The *XContextDependentDrawing* function returns *True* if the drawing functions implement implicit text directionality or if text drawn with the font\_set might include context-dependent drawing; otherwise, it returns *False*.

The *XContextualDrawing* function returns *True* if text drawn with the font set might include context-dependent drawing; otherwise, it returns *False*.

The *XDirectionalDependentDrawing* function returns *True* if the drawing functions implement implicit text directionality; otherwise, it returns *False*.

## SEE ALSO

XCreateFontSet(3X11), XCreateOM(3X11), XCreateOC(3X11), XExtentsOfFontSet(3X11), XFontSetExtents(3X11)\
 *Xlib - C Language X Interface*
