XCreateFontCursor(3X11)

名前
XCreateFontCursor, XCreatePixmapCursor, XCreateGlyphCursor - カーソルの生成

書式
#include <X11/cursorfont.h>

Cursor XCreateFontCursor(display, shape)
      Display *display;
      unsigned int shape;

Cursor XCreatePixmapCursor(display, source, mask, foreground_color, background_color, x, y)
      Display *display;
      Pixmap source;
      Pixmap mask;
      XColor *foreground_color;
      XColor *background_color;
      unsigned int x, y;

Cursor XCreateGlyphCursor(display, source_font, mask_font, source_char, mask_char,
                        foreground_color, background_color)
      Display *display;
      Font source_font, mask_font;
      unsigned int source_char, mask_char;
      XColor *foreground_color;
      XColor *background_color;

引き数

background_color
    ソースの背景色に対する RGB 値を指定。

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

foreground_color
    ソースの前景色に対する RGB 値を指定。

mask
    カーソルのソースのうち表示されるビット、あるいは を指定。

mask_char
    マスクのためのグリフ文字を指定。

mask_font
    マスクのグリフのためのフォントか を指定。

shape
    カーソルの形状を指定。

source
    ソースカーソルの形状を指定。

source_char
    ソースに対する文字グリフを指定。

source_font
    so-Specifies the font for the source glyph. ソースグリフのためのフォントを指定。

x

y   x, y 座標を指定する。これはソースの原点からの相対座標でホットスポット(hotspot)を示す。

説明
X は標準的なカーソル形状のセットを特殊なフォントとして提供している。 これはカーソルと呼ばれている。 アプリケーションはインタフェースを使ってカーソルを用いるとよい。 なぜなら、フォントは個々のディスプレイの種類に応じてカスタマイズするこ とができるからである。 引き数 shape では標準フォントのどのグリフを使うのかを指定する。

ホットスポットはカーソルフォントに格納されている情報から得られる。 カーソルの初期状態の色は、前景色が黒で背景色が白である( を参照)。

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

関数 はカーソルを生成し、これに対応するカーソルIDを返す。 X サーバが や のスクリーンしか持っていない場合であっても、前景色と背景色の RGB 値は foreground_color と background_color を使って指定しなければならない。 ソースピックスマップ内で1にセットされているピクセルに対しては前景色が 使用され、0にセットされているピクセルに対しては背景色が使用される。 指定する場合には、ソースとマスクの両者は深さ(depth)が1でなければならな い(さもなくば エラーとなる)が、ルートウィンドウは任意のものでよい。 引き数 mask はカーソルの形状を定義する。 マスク内で1にセットされているピクセルは、ソースのどのピクセルが表示さ れるかを定義し、0にセットされているピクセルは無視されるピクセルを定義 する。 マスクが与えられない場合は、ソースの全てのピクセルが表示される。 もしマスクを与えるならば、マスクは引き数 source で定義されるピックスマッ プと同じ大きさでなければならず、そうでない場合にはエラー となる。 ホットスポットはソースの内部の点でなければならず、そうでない場合にはエ ラー となる。

ディスプレイの制限を満たすため、カーソルの構成要素に対して任意の変換が 行われるかもしれない。 ピックスマップは明示的な参照がそれ以上されないことが分かった時点で、す ぐに解放してよい。 その後にソースやマスクのピックスマップへの描画を行った場合のカーソルへ の影響は未定義である。 X サーバはピックスマップのコピーを作るかもしれないし、作らないかもしれ ない。

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

関数 はソースとマスクのビットマップを指定したフォントグリフから得る点を除き、 と同様の関数である。 source_char は source_font で定義されているグリフでなければならず、そ うでなければエラー となる。 mask_font を与える場合は、mask_char は mask_font で定義されているグリ フでなければならず、そうでなければエラー となる。 mask_font と mask_char は指定しなくてもかまわない。 source_char と(もし定義されているならば)mask_char のグリフの原点は、一 致するよう配置され、ホットスポットを定義する。 source_char と mask_char とでバウンディングボックスの寸法が同じである 必要は無く、バウンディングボックスに対してのホットスポットの配置の制限 は無い。 mask_char が与えられない場合、ソースの全てのピックスマップが表示される。 フォントは明示的な参照がそれ以上されないことが分かった時点で、すぐに を呼び出して解放してよい。

2バイト行列形式のインデックスを持つフォントについては、16ビットの値は byte1 メンバが最上位バイトで byte2 が最下位ビットとなるようにしなけれ ばならない。

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

返り値

サーバが、要求されたリソースやサーバメモリのアロケートに失敗した。

引き数 Font や GC に対する値が定義された Font ではない。

引き数や引き数の組は正しい型・範囲を持っているが、そのリクエストが要求する
    他の条件に適合できなかった。

引き数 Pixmap に対する値が定義されている Pixmap ではない。

指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対
    して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

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