XCreateGlyphCursor(3) カーソルの生成

Other Alias

XCreateFontCursor, XCreatePixmapCursor

書式

#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 xy;

Cursor XCreateGlyphCursor(display, source_font, mask_font, source_char, mask_char,

                           foreground_colorbackground_color)

      Display *display;

      Font source_fontmask_font;

      unsigned int source_charmask_char;

      XColor *foreground_color;

      XColor *background_color;

引き数

background_color
ソースの背景色に対する RGB 値を指定。
display
X サーバへの接続を指定。
foreground_color
ソースの前景色に対する RGB 値を指定。
mask
カーソルのソースのうち表示されるビット、あるいは None を指定。
mask_char
マスクのためのグリフ文字を指定。
mask_font
マスクのグリフのためのフォントか None を指定。
shape
カーソルの形状を指定。
source
ソースカーソルの形状を指定。
source_char
ソースに対する文字グリフを指定。
source_font
so-Specifies the font for the source glyph. ソースグリフのためのフォントを指定。
x

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

説明

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

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

XCreateFontCursor はエラー BadAlloc, BadValue を起こすことがある。

関数 XCreatePixmapCursor はカーソルを生成し、これに対応するカーソルIDを返す。 X サーバが StaticGrayGrayScale のスクリーンしか持っていない場合であっても、前景色と背景色の 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 を起こすことがある。

返り値

BadAlloc
要求されたリソースやサーバメモリの割り当てにサーバが失敗した。
BadFont
引き数 Font や GC に対する値が定義された Font ではない。
BadMatch
引き数や引き数の組は正しい型・範囲を持っているが、そのリクエストが要求する 他の条件に適合できなかった。
BadPixmap
引き数 Pixmap に対する値が定義されている Pixmap ではない。
BadValue
指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。