XTextExtents(3X11)

名前
XTextExtents, XTextExtents16, XQueryTextExtents, XQueryTextExtents16 - テキストの大きさの計算と問い合わせを行なう

書式
XTextExtents(font_struct, string, nchars, direction_return, font_ascent_return,
              font_descent_return, overall_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_return, overall_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_return, overall_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_return, overall_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)の値が返される または ZN FontRightToLeft )。

display
    X サーバへの接続を指定する。

font_ID
    フォントIDかフォントを含む の ID を指定する。

font_ascent_return
    フォントの ascent 値が返される。

font_descent_return
    フォントの descent 値が返される。

font_struct
    構造体を指定する。

nchars
    文字列内の文字数を指定する。

string
    文字列を指定する。

overall_return
    ここに指定した 構造体に全てのサイズ情報が返される。

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

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

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

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

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

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

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

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

返り値

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

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

関連項目
XLoadFont(3X11), XTextWidth(3X11)
Xlib - C Language X Interface