#include <X11/Xcursor/Xcursor.h>
-lXcursor
[pkgconfig] xcursor
デフォルトの検索パスは「~/.local/share/icons」「~/.icons」「/usr/share/icons」「/usr/share/pixmaps」。
各ディレクトリ下に、テーマのディレクトリがあるか検索し、その cursors ディレクトリ内からカーソルファイルを検索する。
index.theme がある場合、必要に応じて継承されたテーマを見つけて検索する。
テーマが見つからない場合、"default" テーマが検索される。
-lXcursor
[pkgconfig] xcursor
デフォルトの検索パスは「~/.local/share/icons」「~/.icons」「/usr/share/icons」「/usr/share/pixmaps」。
各ディレクトリ下に、テーマのディレクトリがあるか検索し、その cursors ディレクトリ内からカーソルファイルを検索する。
index.theme がある場合、必要に応じて継承されたテーマを見つけて検索する。
テーマが見つからない場合、"default" テーマが検索される。
構造体
typedef struct _XcursorImage { XcursorUInt version; XcursorDim size; XcursorDim width; XcursorDim height; XcursorDim xhot; XcursorDim yhot; XcursorUInt delay; XcursorPixel *pixels; } XcursorImage;
カーソルイメージ
version
イメージデータのバージョン (1)
size
マッチさせるカーソルサイズ
width,height
実際の幅と高さ
xhot,yhot
ホットスポット位置 (イメージ内の位置であること)
delay
アニメーション時、次のフレームまでの時間 (ms)
pixels
カーソルイメージ (uint32_t *)。
0xAARRGGBB の形でピクセルを並べる。
0xAARRGGBB の形でピクセルを並べる。
typedef struct _XcursorImages { int nimage; XcursorImage **images; char *name; } XcursorImages;
複数カーソルイメージ
nimage
イメージの数
images
XcursorImage * の配列
name
画像の読み込み時の名前
typedef struct _XcursorCursors { Display *dpy; int ref; int ncursor; Cursor *cursors; } XcursorCursors;
複数の X カーソル
ref
参照カウンタ
ncursor
カーソル数
cursors
Cursor の配列
typedef struct _XcursorAnimate { XcursorCursors *cursors; int sequence; //次のカーソル } XcursorAnimate;
Xカーソルのアニメーション
struct _XcursorFile { void *closure; int (*read)(XcursorFile *file, unsigned char *buf, int len); int (*write)(XcursorFile *file, unsigned char *buf, int len); int (*seek)(XcursorFile *file, long offset, int whence); };
Xカーソルファイルのハンドラ
関数
XcursorImage *XcursorImageCreate(int width, int height);
カーソルイメージの作成。
size には、width と height の最小値がセットされる。
size には、width と height の最小値がセットされる。
XcursorCursors *XcursorCursorsCreate(Display *dpy, int size);
複数のXカーソルの作成。
ncursor と ref には 0 がセットされる。
ncursor と ref には 0 がセットされる。
Cursor XcursorAnimateNext(XcursorAnimate *animate);
配列内の次の Cursor を周期的に返し、シーケンス番号をインクリメントして、次の呼び出しに備えます。
呼び出し元は、一連のカーソル画像を表示する責任があります。Xcursor はそれを行いません。
呼び出し元は、一連のカーソル画像を表示する責任があります。Xcursor はそれを行いません。
Xカーソルファイル (ハンドラ)
XcursorBool XcursorXcFileLoad(XcursorFile *file, XcursorComments **commentsp, XcursorImages **imagesp);
Xカーソルファイルから、コメントとイメージを読み込み
XcursorBool XcursorXcFileSave(XcursorFile *file, const XcursorComments *comments, const XcursorImages *images);
Xカーソルファイルに書き込み
Xカーソルファイル (FILE *)
XcursorBool XcursorFileLoad(FILE *file, XcursorComments **commentsp, XcursorImages **imagesp);
Xカーソルファイルから、コメントとイメージを読み込み
XcursorBool XcursorFileSave(FILE *file, const XcursorComments *comments, const XcursorImages *images);
Xカーソルファイルに書き込み
Xカーソルファイル (ファイル名)
XcursorBool XcursorFilenameLoad(const char *file, XcursorComments **commentsp, XcursorImages **imagesp);
Xカーソルファイルから、コメントとイメージを読み込み
XcursorBool XcursorFilenameSaveImages(const char *filename, const XcursorImages *images); XcursorBool XcursorFilenameSave(const char *file, const XcursorComments *comments, const XcursorImages *images);
Xカーソルファイルに書き込み
ライブラリ
XcursorImage *XcursorLibraryLoadImage(const char *library, const char *theme, int size);
ライブラリ (カーソルテーマ) からイメージを読み込み。
ライブラリの検索パスから、対象のテーマが検索される。
ライブラリの検索パスから、対象のテーマが検索される。
library
ライブラリ内のカーソルファイル名
theme
テーマ (ディレクトリ名)。
NULL が指定されているか、指定テーマが見つからない場合、"default" が検索される。
NULL が指定されているか、指定テーマが見つからない場合、"default" が検索される。
戻り値
テーマが見つからなかった場合、NULL
XcursorImages *XcursorLibraryLoadImages(const char *library, const char *theme, int size);
ライブラリから複数イメージを読み込み
const char *XcursorLibraryPath(void);
ライブラリの検索パスを取得。
複数パスは ':' で区切られている。
XCURSOR_PATH 環境変数がセットされている場合、その値が返る。それ以外は、デフォルトの検索パス。
複数パスは ':' で区切られている。
XCURSOR_PATH 環境変数がセットされている場合、その値が返る。それ以外は、デフォルトの検索パス。
int XcursorLibraryShape(const char *library);
ライブラリの shape name で指定されているカーソルフォント名の Xcursor テーブルを返す。
戻り値
見つかった場合は、テーブルのインデックスを 2 倍にして返します (X カーソルフォントで使用されるソース値とマスク値を考慮するため)。
見つからなかった場合、-1。
見つからなかった場合、-1。
Xカーソル
Cursor XcursorImageLoadCursor(Display *dpy, const XcursorImage *image);
カーソルイメージから Cursor を作成する。
ARGB がサポートされている場合、XRenderCreateCursor が使用される。
サポートされていない場合、XCreatePixmapCursor が使用される。
ARGB がサポートされている場合、XRenderCreateCursor が使用される。
サポートされていない場合、XCreatePixmapCursor が使用される。
Cursor XcursorImagesLoadCursor(Display *dpy, const XcursorImages *images);
image 配列に複数の画像が含まれている場合、アニメーションカーソルを作成する。
(XcursorSupportsAnim が true を返した場合。それ以外の場合は、XcursorImageLoadCursor を呼び出します)
この場合、Cursor には、複数のカーソルイメージが含まれている。
(XcursorSupportsAnim が true を返した場合。それ以外の場合は、XcursorImageLoadCursor を呼び出します)
この場合、Cursor には、複数のカーソルイメージが含まれている。
XcursorCursors *XcursorImagesLoadCursors(Display *dpy, const XcursorImages *images);
XcursorCursorsCreate() で XcursorCursors を作成し、各イメージごとに XcursorImageLoadCursor() を使用して Cursor を作成する。
戻り値
失敗した場合、XcursorCursorsDestroy で破棄され、NULL が返されます。
XcursorCursors *XcursorFilenameLoadCursors(Display *dpy, const char *file);
ファイルから XcursorCursors 読み込み
XcursorCursors *XcursorLibraryLoadCursors(Display *dpy, const char *file);
ライブラリから XcursorCursors 読み込み
XcursorImage *XcursorShapeLoadImage(unsigned int shape, const char *theme, int size);
標準の X カーソル名を使用して、形状をライブラリ名にマップし、イメージを読み込みます。
XcursorImages *XcursorShapeLoadImages(unsigned int shape, const char *theme, int size);
形状から XcursorImages 読み込み
情報