xcb_query_text_extents(3)
β¨ 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 caseXCB_QUERY_TEXT_EXTENTS. This field is also present in thexcb_generic_reply_tand 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 π β
π¦ where this page comes from
- alpine 3.22: libxcb-doc 1.17.0-r0 Β· MIT
- alpine 3.23: libxcb-doc 1.17.0-r1 Β· MIT
- alpine 3.24: libxcb-doc 1.17.0-r2 Β· MIT
- arch rolling: libxcb 1.17.0-1 Β· X11
- centos-stream 10: libxcb-devel 1.17.0-3.el10 Β· X11
- debian trixie: libxcb-doc 1.17.0-2
- fedora 43: libxcb-devel 1.17.0-6.fc43 Β· X11
- fedora 43: libxcb-devel 1.17.0-6.fc43 Β· X11
- fedora 44: libxcb-devel 1.17.0-7.fc44 Β· X11
- fedora 44: libxcb-devel 1.17.0-7.fc44 Β· X11
- nixpkgs unstable: libxcb 1.17.0
- opensuse-leap 16.0: libxcb-devel-doc 1.17.0-160000.2.2 Β· MIT
- ubuntu questing: libxcb-doc 1.17.0-2build1
- ubuntu resolute: libxcb-doc 1.17.0-2ubuntu1
- ubuntu stonking: libxcb-doc 1.17.0-2ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms