---
name: "xcb_query_font"
section: "3"
platform: "linux"
package: "libxcb"
version: "1.17.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/xcb_query_font"
---

# xcb\_query\_font(3)

query font metrics

## NAME

xcb\_query\_font - query font metrics

## SYNOPSIS

**#include \<xcb/xproto.h\>**

### Request function

xcb\_query\_font\_cookie\_t **xcb\_query\_font**(xcb\_connection\_t \**conn*, xcb\_fontable\_t *font*);

### Reply datastructure

```

typedef struct xcb_query_font_reply_t {
    uint8_t        response_type;
    uint8_t        pad0;
    uint16_t       sequence;
    uint32_t       length;
    xcb_charinfo_t min_bounds;
    uint8_t        pad1[4];
    xcb_charinfo_t max_bounds;
    uint8_t        pad2[4];
    uint16_t       min_char_or_byte2;
    uint16_t       max_char_or_byte2;
    uint16_t       default_char;
    uint16_t       properties_len;
    uint8_t        draw_direction;
    uint8_t        min_byte1;
    uint8_t        max_byte1;
    uint8_t        all_chars_exist;
    int16_t        font_ascent;
    int16_t        font_descent;
    uint32_t       char_infos_len;
} xcb_query_font_reply_t;
```

### Reply function

xcb\_query\_font\_reply\_t \***xcb\_query\_font\_reply**(xcb\_connection\_t \**conn*, xcb\_query\_font\_cookie\_t *cookie*, xcb\_generic\_error\_t \*\**e*);

### Reply accessors

xcb\_fontprop\_t \***xcb\_query\_font\_properties**(const xcb\_query\_font\_request\_t \**reply*);

int **xcb\_query\_font\_properties\_length**(const xcb\_query\_font\_reply\_t \**reply*);

xcb\_fontprop\_iterator\_t **xcb\_query\_font\_properties\_iterator**(const xcb\_query\_font\_reply\_t \**reply*);

xcb\_charinfo\_t \***xcb\_query\_font\_char\_infos**(const xcb\_query\_font\_request\_t \**reply*);

int **xcb\_query\_font\_char\_infos\_length**(const xcb\_query\_font\_reply\_t \**reply*);

xcb\_charinfo\_iterator\_t **xcb\_query\_font\_char\_infos\_iterator**(const xcb\_query\_font\_reply\_t \**reply*);\

## REQUEST ARGUMENTS

- *conn*

  The XCB connection to X11.

- *font*

  The fontable (Font or Graphics Context) to query.

## REPLY FIELDS

- *response\_type*

  The type of this reply, in this case *XCB\_QUERY\_FONT*. This field is also present in the *xcb\_generic\_reply\_t* and can be used to tell replies apart from each other.

- *sequence*

  The sequence number of the last request processed by the X11 server.

- *length*

  The length of the reply, in words (a word is 4 bytes).

- *min\_bounds*

  minimum bounds over all existing char

- *max\_bounds*

  maximum bounds over all existing char

- *min\_char\_or\_byte2*

  first character

- *max\_char\_or\_byte2*

  last character

- *default\_char*

  char to print for undefined character

- *properties\_len*

  how many properties there are

- *draw\_direction*

  One of the following values:

  - *XCB\_FONT\_DRAW\_LEFT\_TO\_RIGHT*

    TODO: NOT YET DOCUMENTED.

  - *XCB\_FONT\_DRAW\_RIGHT\_TO\_LEFT*

    TODO: NOT YET DOCUMENTED.

- *min\_byte1*

  TODO: NOT YET DOCUMENTED.

- *max\_byte1*

  TODO: NOT YET DOCUMENTED.

- *all\_chars\_exist*

  flag if all characters have nonzero size

- *font\_ascent*

  baseline to top edge of raster

- *font\_descent*

  baseline to bottom edge of raster

- *char\_infos\_len*

  TODO: NOT YET DOCUMENTED.

## DESCRIPTION

Queries information associated with the font.

## RETURN VALUE

Returns an *xcb\_query\_font\_cookie\_t*. Errors have to be handled when calling the reply function *xcb\_query\_font\_reply*.

If you want to handle errors in the event loop instead, use *xcb\_query\_font\_unchecked*. See **[xcb-requests(3)](/xcb-requests/3.md)** for details.

## ERRORS

This request does never generate any errors.

## SEE ALSO

[**xcb-requests**(3)](/xcb-requests/3.md)

## AUTHOR

Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
