XQueryTextExtents(3) テキストの大きさの計算と問い合わせを行なう

Other Alias

XTextExtents, XTextExtents16, XQueryTextExtents16

書式

XTextExtents(font_struct, string, nchars, direction_return, font_ascent_return,

              font_descent_returnoverall_return)

      XFontStruct *font_struct;

      char *string;

      int nchars;

      int *direction_return;

      int *font_ascent_return, *font_descent_return;

      XCharStruct *overall_return;

XTextExtents16(font_struct, string, nchars, direction_return, font_ascent_return,

                font_descent_returnoverall_return)

      XFontStruct *font_struct;

      XChar2b *string;

      int nchars;

      int *direction_return;

      int *font_ascent_return, *font_descent_return;

      XCharStruct *overall_return;

XQueryTextExtents(display, font_ID, string, nchars, direction_return, font_ascent_return,

                    font_descent_returnoverall_return)

      Display *display;

      XID font_ID;

      char *string;

      int nchars;

      int *direction_return;

      int *font_ascent_return, *font_descent_return;

      XCharStruct *overall_return;

XQueryTextExtents16(display, font_ID, string, nchars, direction_return, font_ascent_return,

                        font_descent_returnoverall_return)

      Display *display;

      XID font_ID;

      XChar2b *string;

      int nchars;

      int *direction_return;

      int *font_ascent_return, *font_descent_return;

      XCharStruct *overall_return;

引き数

direction_return
方向ヒント(direction hint)の値が返される (FontLeftToRight または ZN FontRightToLeft )。
display
X サーバへの接続を指定する。
font_ID
フォントIDかフォントを含む GC の ID を指定する。
font_ascent_return
フォントの ascent 値が返される。
font_descent_return
フォントの descent 値が返される。
font_struct
XFontStruct 構造体を指定する。
nchars
文字列内の文字数を指定する。
string
文字列を指定する。
overall_return
ここに指定した XCharStruct 構造体に全てのサイズ情報が返される。

説明

関数 XTextExtents および XTextExtents16 はローカルでサイズの計算を行う。 従って XQueryTextExtentsXQueryTextExtents16 で生じるデータのやりとりのオーバヘッドを回避できる。 どちらの関数も XCharStruct 構造体を返し、そのメンバの値は以下のように設定される。

ascent メンバは、文字列中の各文字 ascent 寸法の最大値に設定される。 descent メンバは descent 寸法の最大値に設定される。 width メンバには、文字列中のそれぞれの文字の幅の寸法の総和が設定される。 文字列中の各文字に対して、W を文字列中でその文字より前にある文字幅の寸 法の総和とする。 L はその文字の左側bearing寸法に W を加えたものとする。 R はその文字の右側bearing寸法に W を加えたものとする。 lbearing メンバは、文字列中の全ての文字についての L の最小値に設定され る。 同じく rbearing は R の最大値に設定される。

2バイトの行列形式のインデックス(2-byte matrix indexing)ではなく、線形 インデックス(linear indexing)で定義されたフォントについては、各 XChar2b 構造体は byte1 が最上位バイトである16ビットの数と解釈される。 フォントにデフォルト文字が定義されていない場合、文字列中の未定義文字の 寸法は全て 0 として扱われる。

関数 XQueryTextExtents および XQueryTextExtents16 は、指定したフォントあるいは指定したGCが含むフォントに関して、指定した 8ビット文字および16ビット文字の文字列のバウンディングボックスを返す。 これらの関数は X サーバに問い合わせを行うため、 XTextExtentsXTextExtents16 では起こらないサーバとのやり取りが余分なオーバヘッドとなる。 どちらの関数も XCharStruct を返し、そのメンバは以下のように値が設定される。

ascent メンバは、文字列中の各文字 ascent 寸法の最大値に設定される。 descent メンバは descent 寸法の最大値に設定される。 width メンバには、文字列中の各文字の幅の寸法の総和が設定される。 文字列中の各文字に対して、W を文字列中でその文字より前にある文字幅寸法 の総和とする。 L はその文字の左側bearing寸法に W を加えたものとする。 R はその文字の右側bearing寸法に W を加えたものとする。 lbearing メンバは、文字列中の全ての文字についての L の最小値に設定され る。 同じく rbearing は R の最大値に設定される。

2バイトの行列形式のインデックスではなく、線形インデックスで定義された フォントについては、各 XChar2b 構造体は byte1 が最上位バイトである16ビットの数と解釈される。 フォントにデフォルト文字が定義されていない場合、文字列中の未定義文字の 寸法は全て 0 として扱われる。

寸法が全て 0 である文字は無視される。 フォントにデフォルト文字が定義されていない場合、文字列中の未定義文字も 無視される。

XQueryTextExtents および XQueryTextExtents16 はエラー BadFontBadGC を起こすことがある。

返り値

BadFont
引き数の Font あるいは GC の値が、定義されている Font を指していない。
BadGC
引き数 GC の値が、定義されている GC を指していない。