XmbTextPerCharExtents(3) テキスト文字列について、文字ごとの情報を得る

Other Alias

XwcTextPerCharExtents, Xutf8TextPerCharExtents

書式

Status XmbTextPerCharExtents(font_set, string, num_bytes, ink_array_return,

           logical_array_returnarray_sizenum_chars_returnoverall_ink_return,  overall_logical_return)

      XFontSet font_set;

      char *string;

      int num_bytes;

      XRectangle *ink_array_return;

      XRectangle *logical_array_return;

      int array_size;

      int *num_chars_return;

      XRectangle *overall_ink_return;

      XRectangle *overall_logical_return;

Status XwcTextPerCharExtents(font_set, string, num_wchars, ink_array_return,

          logical_array_returnarray_sizenum_chars_returnoverall_ink_return,  overall_logical_return)

      XFontSet font_set;

      wchar_t *string;

      int num_wchars;

      XRectangle *ink_array_return;

      XRectangle *logical_array_return;

      int array_size;

      int *num_chars_return;

      XRectangle *overall_ink_return;

      XRectangle *overall_logical_return;

Status Xutf8TextPerCharExtents(font_set, string, num_bytes, ink_array_return,

           logical_array_returnarray_sizenum_chars_returnoverall_ink_return,  overall_logical_return)

      XFontSet font_set;

      char *string;

      int num_bytes;

      XRectangle *ink_array_return;

      XRectangle *logical_array_return;

      int array_size;

      int *num_chars_return;

      XRectangle *overall_ink_return;

      XRectangle *overall_logical_return;

引き数

array_size
ink_array_return と logical_array_return の大きさを指定する。 関数呼び出しの際には、この数の配列を渡さなければならない。
font_set
フォントセットを指定する。
ink_array_return
各文字が実際に描画されるディメンジョンが返される。
logical_array_return
各文字の論理的なディメンジョンが返される。
num_bytes
引き数 string のバイト数を指定する。
num_chars_return
引き数 string の文字数が返される。
num_wchars
引き数 string の文字数を指定する。
overall_ink_return
実際に描画が行われる 文字列全体の領域 が返される。
overall_logical_return
論理的な 文字列全体の領域 が返される。
string
文字列を指定する。

説明

関数 XmbTextPerCharExtents, XwcTextPerCharExtents, Xutf8TextPerCharExtents は、与えられたフォントセットに対してロードされたフォントを使い、指定の テキストの各文字のディメンジョンを返す。 ink_array_return と logical_array_return の連続するそれぞれの要素には、 与えられたテキスト文字列内の各文字に対し、文字が描画される寸法が、文字 列の描画の原点に対する相対位置の一つの長方形として連続的にセットされる。 セットされた ink_array_return と logical_array_return の要素の数が num_chars_return に与えられる。

ink_array_return の各要素には、フォアグラウンドカラーで描画されるキャ ラクタに対応するバウンディングボックスがセットされる。 logical_array_return の各要素には、対応する文字に対して他のグラフィカ ルフィーチャへの最小スペーシングを含むバウンディングボックスがセットさ れる。 このグラフィカルフィーチャは logical_array_return の長方形のどの部分と も干渉してはならない。

XRectangle は、文字の描画に使われるフォントグリフの数や文字が描画される方向にかか わらず、効率的な文字の描画ディメンジョンを表す点に注意すること。 複数の文字が単一の文字グリフにマッピングされている場合、これらの文字全 ての XRectangles のディメンジョンは同じである。

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

与えられたテキスト内の文字数に対して array_size が小さすぎた場合、関数 は 0 を返し、num_chars_return には必要な XRectangle の数がセットされ る。 それ以外の場合、関数は 0 でない値を返す。

引き数 overall_ink_return か overall_logical_return が NULL でない場合、 XmbTextPerCharExtents, XwcTextPerCharExtents, Xutf8TextPerCharExtents は文字列の寸法の最大領域を overall_ink_return または overall_logical_return に返す。これは XmbTextExtentsXwcTextExtents, Xutf8TextExtents の動作と同様である。

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