xcb_query_text_extents(3)

πŸ“¦
version 1.17.0 Β· 4 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, debian trixie, fedora 43, fedora 44, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ xcb_query_text_extents β€” get text extents ✨

okay bestie, pull up a chair πŸŽ€ this one lives in the XCB Requests manual, and its whole name is xcb_query_text_extents(3). she's a lil X11 girlie whose entire job is measuring text. let's get into it πŸ’…


🌸 NAME 🌸

xcb_query_text_extents β€” get text extents


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <xcb/xproto.h>

Request function

xcb_query_text_extents_cookie_t
       xcb_query_text_extents(xcb_connection_t *conn,
       xcb_fontable_t font, uint32_t string_len, const
       xcb_char2b_t *string);

Reply datastructure

typedef struct xcb_query_text_extents_reply_t {
    uint8_t  response_type;
    uint8_t  draw_direction;
    uint16_t sequence;
    uint32_t length;
    int16_t  font_ascent;
    int16_t  font_descent;
    int16_t  overall_ascent;
    int16_t  overall_descent;
    int32_t  overall_width;
    int32_t  overall_left;
    int32_t  overall_right;
} xcb_query_text_extents_reply_t;

Reply function

xcb_query_text_extents_reply_t
       *xcb_query_text_extents_reply(xcb_connection_t *conn,
       xcb_query_text_extents_cookie_t cookie, xcb_generic_error_t **e);

πŸ’– REQUEST ARGUMENTS πŸ’–

  • conn β€” The XCB connection to X11. the group chat you're sending your question into, basically 🫢
  • font β€” The font to calculate text extents in. You can also pass a graphics context here, no cap πŸ‘‘
  • string_len β€” The number of characters in string.
  • string β€” The text to get text extents for.

πŸ‘‘ REPLY FIELDS πŸ‘‘

  • response_type β€” The type of this reply, in this case XCB_QUERY_TEXT_EXTENTS. This field is also present in the xcb_generic_reply_t and can be used to tell replies apart from each other. it's giving name tag at a party πŸŽ€
  • 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).
  • 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.
    • TODO: NOT YET DOCUMENTED.
  • font_ascent β€” TODO: NOT YET DOCUMENTED.
  • font_descent β€” TODO: NOT YET DOCUMENTED.
  • overall_ascent β€” TODO: NOT YET DOCUMENTED.
  • overall_descent β€” TODO: NOT YET DOCUMENTED.
  • overall_width β€” TODO: NOT YET DOCUMENTED.
  • overall_left β€” TODO: NOT YET DOCUMENTED.
  • overall_right β€” TODO: NOT YET DOCUMENTED.

🌈 DESCRIPTION 🌈

Query text extents from the X11 server ✨ This request returns the bounding box of the specified 16-bit character string in the specified font or the font contained in the specified graphics context.

font_ascent is set to the maximum of the ascent metrics of all characters in the string. font_descent is set to the maximum of the descent metrics. overall_width is set to the sum of the character-width metrics of all characters in the string. For each character in the string, let W be the sum of the character-width metrics of all characters preceding it in the string. Let L be the left-side-bearing metric of the character plus W. Let R be the right-side-bearing metric of the character plus W. The lbearing member is set to the minimum L of all characters in the string. The rbearing member is set to the maximum R.

For fonts defined with linear indexing rather than 2-byte matrix indexing, each xcb_char2b_t structure is interpreted as a 16-bit number with byte1 as the most significant byte. If the font has no defined default character, undefined characters in the string are taken to have all zero metrics. πŸ’€ (yes, zero. the void. nothing. metrics-wise they don't exist.)

Characters with all zero metrics are ignored. If the font has no defined default_char, the undefined characters in the string are also ignored.


πŸ“ RETURN VALUE πŸ“

Returns an xcb_query_text_extents_cookie_t. Errors have to be handled when calling the reply function xcb_query_text_extents_reply.

If you want to handle errors in the event loop instead, use xcb_query_text_extents_unchecked. See xcb-requests(3) for details. ✨


πŸ’œ ERRORS πŸ’œ

  • xcb_font_error_t β€” The specified font does not exist. she's not in the building 😭
  • xcb_g_context_error_t β€” The specified graphics context does not exist.

🧚 SEE ALSO 🧚


πŸŽ€ AUTHOR πŸŽ€

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


and that's the whole thing, bestie, you ate 🫢 this page ships with X Version 11 and libxcb 1.17.0 β€” go measure some glyphs, you icon, periodt πŸ’…β­