Scroll to navigation

XTextExtents(3X11) XLIB FUNCTIONS 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)の値が返される ( 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 を指していない。

関連項目

XLoadFont(3X11), XTextWidth(3X11)
 
Xlib - C Language X Interface
Release 6.5 X Version 11