XmbDrawText(3) 複数のフォントセットを用いてテキストを描画する

Other Alias

XwcDrawText, Xutf8DrawText

書式

void XmbDrawText(display, d, gc, x, y, items, nitems)

      Display *display;

      Drawable d;

      GC gc;

      int xy;

      XmbTextItem *items;

      int nitems;

void XwcDrawText(display, d, gc, x, y, items, nitems)

      Display *display;

      Drawable d;

      GC gc;

      int xy;

      XwcTextItem *items;

      int nitems;

void Xutf8DrawText(display, d, gc, x, y, items, nitems)

      Display *display;

      Drawable d;

      GC gc;

      int xy;

      XmbTextItem *items;

      int nitems;

引き数

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

y
x, y 座標を指定する。

説明

関数 XmbDrawText, XwcDrawText, Xutf8DrawText はテキスト文字列間で複雑なスペーシングとフォントセットの遷移が可能であ る。 各テキストアイテム(text item)は順番に処理され、テキスト要素の原点は前のテキストア イテムの文字送りの分だけ主描画方向(primary draw direction)に移動する。 テキストアイテムを表す構造体の delta 要素は、テキストアイテムの描画の 原点の主描画方向への追加の文字送り量を指定する。 テキストアイテム構造体の font_set メンバが None 以外の場合には、text_items リストのそのアイテム以降の描画にこのフォン トセットが使用される。 先頭のテキストアイテムの font_set メンバが None である場合には、描画は実行されない。

XmbDrawText, XwcDrawText, Xutf8DrawText はテキストセグメント間でのコンテクストに依存する描画は行わない。 クライアントはテキストセグメントを XmbTextExtents, XwcTextExtents, Xutf8TextExtents あるいは XmbTextPerCharExtents, XwcTextPerCharExtents, Xutf8TextPerCharExtents に渡すことによって描画領域の寸法を計算できる。 XFontSet に欠けている文字集合がある場合には、該当する文字は XCreateFontSet が返すデフォルト文字列で描画される。 不正な文字コードに対する挙動は未定義である。

関数 Xutf8DrawText は XFree86 4.0.2 から導入された XFree86 独自の拡張である。この関数が あるかどうかはマクロ X_HAVE_UTF8_STRING で判定できる。

構造体

XmbTextItem 構造体の内容を以下に示す。
typedef struct {
     char *chars;        
     int nchars;         
     int delta;          
     XFontSet font_set;  
} XmbTextItem;

XwcTextItem 構造体の内容を示す。

typedef struct {
     wchar_t *chars;     
     int nchars;         
     int delta;          
     XFontSet font_set;  
} XwcTextItem;