Other Alias
XTextExtents, XTextExtents16, XQueryTextExtents書式
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)の値が返される (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 はローカルでサイズの計算を行う。 従って XQueryTextExtents や XQueryTextExtents16 で生じるデータのやりとりのオーバヘッドを回避できる。 どちらの関数も 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 サーバに問い合わせを行うため、 XTextExtents や XTextExtents16 では起こらないサーバとのやり取りが余分なオーバヘッドとなる。 どちらの関数も 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 はエラー BadFont と BadGC を起こすことがある。
返り値
- BadFont
- 引き数の Font あるいは GC の値が、定義されている Font を指していない。
- BadGC
- 引き数 GC の値が、定義されている GC を指していない。