scx/c/xlib/cursor.c

53 lines
1.5 KiB
C

#include "xlib.h"
#include "scheme48.h"
s48_value Free_Cursor(s48_value Xdisplay, s48_value Xcursor) {
XFreeCursor(EXTRACT_DISPLAY(Xdisplay),
EXTRACT_CURSOR(Xcursor));
return S48_UNSPECIFIC;
}
s48_value Create_Pixmap_Cursor(s48_value Xdisplay,
s48_value src, s48_value mask, s48_value x,
s48_value y, s48_value foreground,
s48_value background) {
Cursor xc = XCreatePixmapCursor(EXTRACT_DISPLAY(Xdisplay),
EXTRACT_PIXMAP(src),
EXTRACT_PIXMAP(mask),
EXTRACT_COLOR(foreground),
EXTRACT_COLOR(background),
s48_extract_integer(x),
s48_extract_integer(y));
return ENTER_CURSOR(xc);
}
s48_value Create_Glyph_Cursor(s48_value Xdisplay,
s48_value src, s48_value srcc,
s48_value mask, s48_value maskc,
s48_value foreground, s48_value background) {
Cursor xc = XCreateGlyphCursor(EXTRACT_DISPLAY(Xdisplay),
EXTRACT_FONT(src),
EXTRACT_FONT(mask),
s48_extract_integer(srcc),
s48_extract_integer(maskc),
EXTRACT_COLOR(foreground),
EXTRACT_COLOR(background));
return ENTER_CURSOR(xc);
}
s48_value Recolor_Cursor(s48_value Xdisplay, s48_value Xcursor,
s48_value f, s48_value b) {
XRecolorCursor(EXTRACT_DISPLAY(Xdisplay),
EXTRACT_CURSOR(Xcursor),
EXTRACT_COLOR(f),
EXTRACT_COLOR(b));
return S48_UNSPECIFIC;
}
s48_init_cursor() {
S48_EXPORT_FUNCTION(Free_Cursor);
S48_EXPORT_FUNCTION(Create_Pixmap_Cursor);
S48_EXPORT_FUNCTION(Create_Glyph_Cursor);
S48_EXPORT_FUNCTION(Recolor_Cursor);
}