XmbTextExtents(3) テキストの大きさを計算する

Other Alias

XwcTextExtents, Xutf8TextExtents

書式

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;

int XwcTextExtents(font_set, string, num_wchars, overall_ink_return, overall_logical_return)

      XFontSet font_set;

      wchar_t *string;

      int num_wchars;

      XRectangle *overall_ink_return;

      XRectangle *overall_logical_return;

int Xutf8TextExtents(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;

引き数

font_set
フォントセットを指定する。
num_bytes
引き数 string のバイト数を指定する。
num_wchars
引き数 string の文字数を指定する。
overall_ink_return
描画される領域のディメンジョンが返される。
overall_logical_return
論理的なディメンジョンが返される。
string
文字列を指定する。

説明

関数 XmbTextExtents, XwcTextExtents, Xutf8TextExtents は指定された引き数 overall_ink_return に文字列の画像イメージの バウンディングボックスを、overall_logical_return には論理的な バウンディングボックスの大きさを設定する。 これらはテキストの間隔調整に用いられる。 これらの値は、 XmbTextEscapement, や XwcTextEscapement, Xutf8TextEscapement によって返される。 これらの寸法値は文字列の描画の原点からの相対位置であり、指定された フォントセットに対して呼び出されたフォントを用いて計算される。

引き数 overall_ink_return が NULL でない場合、これには文字列が実際に描画 される範囲のバウンディングボックスが設定される。 下向きに進まず、水平に描画される Latin 文字に対する overall_ink_return は、慣習的に完全にベースラインの上となる。 つまり、overall_ink_return.height <= -overall_ink_return.y である。 カーニングされない文字に対する overall_ink_return は、完全に原点とそれ より右の部分になる。 つまり、overall_ink_return.x >= 0 である。 原点上の単独ピクセルからなる文字の場合には、overall_ink_return は y = 0, x = 0, width = 1, and height = 1 となる。

overall_logical_return が NULL でない場合には、これはその文字列に対す る他のグラフィカルフィーチャへの最小スペーシングを与えるバウンディング ボックスが設定される。 他のグラフィカルフィーチャ(例えばテキストを囲む境界線)は、この長方形と 交差してはならない。

XFontSet に存在しない文字集合がある場合には、それのテキストが実際に描画される際 の寸法を表すように、該当する各文字に対する寸法は XCreateFontSet が返すデフォルト文字列から得る。 不正な文字コードに対する動作は未定義である。

関数 Xutf8TextExtents は XFree86 4.0.2 から導入された XFree86 独自の拡張である。この関数が あるかどうかはマクロ X_HAVE_UTF8_STRING で判定できる。