53 lines
1.5 KiB
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);
|
|
}
|