XDrawText16(3) 複合テキストの描画とテキスト描画構造体

Other Alias

XDrawText, XTextItem, XTextItem16

書式

XDrawText(display, d, gc, x, y, items, nitems)

      Display *display;

      Drawable d;

      GC gc;

      int xy;

      XTextItem *items;

      int nitems;

XDrawText16(display, d, gc, x, y, items, nitems)

      Display *display;

      Drawable d;

      GC gc;

      int xy;

      XTextItem16 *items;

      int nitems;

引き数

d
ドロウアブルを指定する。
display
X サーバへの接続を指定する。
gc
GC を指定する。
items
テキストアイテムの配列を指定する。
nitems
配列内のテキストアイテム数を指定する。
x

y
x, y 座標を指定する。これは指定したドロウアブルの原点からの相対座標であり、最初の文字の原点を定義する。

説明

関数 XDrawText16 は2バイトあるいは16ビットの文字を用いる点を除いて XDrawText と同様の関数である。 いずれの関数も列挙された文字列間での複雑なスペーシングとフォント遷移が可能である。

各テキストアイテムは順番に処理される。 アイテム内に None 以外の font メンバがある場合、そのフォントは GC に格納され、これに続くテキストに対して使用される。 テキスト要素 delta は文字列が描画される前の x 軸に沿っての位置の追加的 な変位を指定する。 delta は常に文字の原点に追加され、フォントのいかなる特性にも依存しない。 各文字のイメージは、GC 内のフォントで定義されるので、ドロウアブルの fill 操作への追加マスクとして扱われる。 ドロウアブルはフォントの文字が1にセットされているビットを持つ点でのみ 変更される。 テキストアイテムが BadFont エラーを起こした場合も、その前のテキストアイテムはおそらく既に描画され ている。

2バイトの行列形式のインデックスでなく線形インデックスで定義されたフォ ントに対しては、各 XChar2b 構造体は最上位バイトが byte1 である16ビットの数として解釈される。

どちらの関数も以下の GC コンポーネントを使用する。 function, plane-mask, fill-style, font, subwindow-mode, clip-x-origin, clip-y-origin, clip-mask。 また、以下の GC モード依存コンポーネントも使用する。 foreground, background, tile, stipple, tile-stipple-x-origin, tile-stipple-y-origin。

XDrawTextXDrawText16 はエラー BadDrawable, BadFont, BadGC, BadMatch を起こすことがある。

構造体

構造体 XTextItemXTextItem16 の内容を以下に示す。

typedef struct {
     char *chars;             
     int nchars;              
     int delta;               
     Font font;               
} XTextItem;

typedef struct {
     XChar2b *chars;          
     int nchars;              
     int delta;               
     Font font;               
} XTextItem16;

font メンバが None でない場合、表示前にフォントは切替えられ、新たなフォントが GC に格納さ れる。 テキスト描画中にエラーが発生した場合も、それより前のテキストアイテムは 表示される。 文字のベースラインはテキスト描画関数で指定した x, y 座標を起点に描画さ れる。

例として、 XDrawImageString によって描画される背景色の長方形を考える。 背景の長方形の左上隅をピクセル座標 (x, y) としたい場合には、テキスト関 数へは (x, y + ascent) をベースライン原点の座標として渡す。 ここで、ascent はフォントの ascent 値であり、 XFontStruct 構造体で与えられる。 背景の長方形の左下隅をピクセル座標 (x, y) にしたい場合には、テキスト関 数へは (x, y, - descent + 1) をベースライン原点の座標として渡す。 descent は XFontStruct 構造体で与えられる、フォントの descent 値である。

返り値

BadDrawable
引き数 Drawable の値が、定義されている Window あるいは Pixmap を示してい ない。
BadFont
引き数 Font あるいは GContext の値が、定義されている Font でない。
BadGC
引き数 GContext の値が、定義されている GContext でない。
BadMatch
InputOnly (入力専用)のウィンドウが Drawable として用いられた。