XmbTextExtents − compute the extents of internationalized multi-byte text.
Synopsis
int XmbTextExtents(font_set, string, num_bytes, overall_ink_return,
overall_logical_return)
XFontSet font_set;
char *string;
int num_bytes;
XRectangle *overall_ink_return;
XRectangle *overall_logical_return;
Arguments
font_setSpecifies the font set.
stringSpecifies the character string.
num_bytesSpecifies the number of bytes in the string argument.
overall_ink_return
Returns the overall ink dimensions.
overall_logical_return
Returns the overall logical dimensions.
Availability
Release 5 and later.
Description
XmbTextExtents() sets the components of the specified overall_ink_return and overall_logical_return arguments to the overall bounding box of the string’s image, and the overall logical bounding box of the string’s image plus inter-line and inter-character spacing. It returns the value returned by XmbTextEscapement(). The returned metrics are relative to the drawing origin of the string, using the fonts loaded for the specified font set. If the overall_ink_return argument is non-NULL, it is set to the bounding box of the string’s character ink. Note that the overall_ink_return for a non-descending horizontally drawn Latin character is conventionally entirely above the baseline, that is, overall_ink_return.height <= -overall_ink_return.y. The overall_ink_return for a nonkerned character is entirely at and to the right of the origin, that is, overall_ink_return.x >= 0. A character consisting of a single pixel at the origin would have overall_ink_return fields y = 0, x = 0, width = 1, and height = 1. If the overall_logical_return argument is non-NULL, it is set to the bounding box which provides minimum spacing to other graphical features for the string. Other graphical features, for example, a border surrounding the text, should not intersect this rectangle. When the XFontSet has missing charsets, metrics for each unavailable character are taken from the default string returned by XCreateFontSet() so that the metrics represent the text as it will actually be drawn. The behavior for an invalid codepoint is undefined.
Structures
typedef struct {
short x, y;
unsigned short width, height;
} XRectangle;
See Also
XmbTextEscapement(), XmbTextPerCharExtents(), XwcTextExtents().
Copyright O’Reilly & Assoc. —