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;
ホットスポットはカーソルフォントに格納されている情報から得られる。 カーソルの初期状態の色は、前景色が黒で背景色が白である( XRecolorCursor を参照)。
XCreateFontCursor はエラー BadAlloc, BadValue を起こすことがある。
関数 XCreatePixmapCursor はカーソルを生成し、これに対応するカーソルIDを返す。 X サーバが StaticGray や GrayScale のスクリーンしか持っていない場合であっても、前景色と背景色の RGB 値は foreground_color と background_color を使って指定しなければならない。 ソースピックスマップ内で1にセットされているピクセルに対しては前景色が 使用され、0にセットされているピクセルに対しては背景色が使用される。 指定する場合には、ソースとマスクの両者は深さ(depth)が1でなければならな い(さもなくば BadMatch エラーとなる)が、ルートウィンドウは任意のものでよい。 引き数 mask はカーソルの形状を定義する。 マスク内で1にセットされているピクセルは、ソースのどのピクセルが表示さ れるかを定義し、0にセットされているピクセルは無視されるピクセルを定義 する。 マスクが与えられない場合は、ソースの全てのピクセルが表示される。 もしマスクを与えるならば、マスクは引き数 source で定義されるピックスマッ プと同じ大きさでなければならず、そうでない場合にはエラー BadMatch となる。 ホットスポットはソースの内部の点でなければならず、そうでない場合にはエ ラー BadMatch となる。
ディスプレイの制限を満たすため、カーソルの構成要素に対して任意の変換が 行われるかもしれない。 ピックスマップは明示的な参照がそれ以上されないことが分かった時点で、す ぐに解放してよい。 その後にソースやマスクのピックスマップへの描画を行った場合のカーソルへ の影響は未定義である。 X サーバはピックスマップのコピーを作るかもしれないし、作らないかもしれ ない。
XCreatePixmapCursor はエラー BadAlloc, BadPixmap を起こすことがある。
関数 XCreateGlyphCursor はソースとマスクのビットマップを指定したフォントグリフから得る点を除き、 XCreatePixmapCursor と同様の関数である。 source_char は source_font で定義されているグリフでなければならず、そ うでなければエラー BadValue となる。 mask_font を与える場合は、mask_char は mask_font で定義されているグリ フでなければならず、そうでなければエラー BadValue となる。 mask_font と mask_char は指定しなくてもかまわない。 source_char と(もし定義されているならば)mask_char のグリフの原点は、一 致するよう配置され、ホットスポットを定義する。 source_char と mask_char とでバウンディングボックスの寸法が同じである 必要は無く、バウンディングボックスに対してのホットスポットの配置の制限 は無い。 mask_char が与えられない場合、ソースの全てのピックスマップが表示される。 フォントは明示的な参照がそれ以上されないことが分かった時点で、すぐに XFreeFont を呼び出して解放してよい。
2バイト行列形式のインデックスを持つフォントについては、16ビットの値は byte1 メンバが最上位バイトで byte2 が最下位ビットとなるようにしなけれ ばならない。
XCreateGlyphCursor はエラー BadAlloc, BadFont, BadValue を起こすことがある。