#include #include #include #ifndef NeedFunctionPrototypes /* Kludge */ #error "X11 Release 3 (or earlier) no longer supported" #endif #if XlibSpecificationRelease >= 5 # define XLIB_RELEASE_5_OR_LATER #endif #if XlibSpecificationRelease >= 6 # define XLIB_RELEASE_6_OR_LATER #endif #include "scheme48.h" #define S48_NULL_P(x) S48_EQ(x, S48_NULL) #define S48_FALSE_P(x) S48_EQ(x, S48_FALSE) #define S48_TRUE_P(x) S48_EQ(x, S48_TRUE) extern s48_value symbol_now(); // defined in init.c /* Extraction-Macros for the new types, from their s48_value wrapping. */ #define SCX_EXTRACT_DISPLAY(x) (Display*)s48_extract_integer(x) #define SCX_ENTER_DISPLAY(x) s48_enter_integer((long)x) #define SCX_EXTRACT_WINDOW(x) (Window)s48_extract_integer(x) #define SCX_ENTER_WINDOW(x) s48_enter_integer((long)x) #define SCX_EXTRACT_COLOR(x) (XColor*)S48_EXTRACT_VALUE_POINTER(x, XColor) #define SCX_EXTRACT_COLORMAP(x) (Colormap)s48_extract_integer(x) #define SCX_ENTER_COLORMAP(x) s48_enter_integer((long)x) #define SCX_EXTRACT_PIXEL(x) (unsigned long)s48_extract_integer(x) #define SCX_ENTER_PIXEL(x) s48_enter_integer((long)x) #define SCX_EXTRACT_GCONTEXT(x) (GC)s48_extract_integer(x) #define SCX_ENTER_GCONTEXT(x) s48_enter_integer((long)x) #define SCX_ENTER_PIXMAP(x) s48_enter_integer((long)x) #define SCX_EXTRACT_PIXMAP(x) (Pixmap)s48_extract_integer(x) #define SCX_EXTRACT_DRAWABLE(x) (Drawable)s48_extract_integer(x) #define SCX_ENTER_ATOM(x) s48_enter_integer((long)x) #define SCX_EXTRACT_ATOM(x) (Atom)s48_extract_integer(x) #define SCX_ENTER_TIME(x) x == CurrentTime ? symbol_now() : s48_enter_integer(x) #define SCX_EXTRACT_TIME(x) S48_SYMBOL_P(x) ? CurrentTime : (int)s48_extract_integer(x) #define SCX_EXTRACT_CURSOR(x) (Cursor)s48_extract_integer(x) #define SCX_ENTER_CURSOR(x) s48_enter_integer((long)x) #define SCX_ENTER_FONT(x) s48_enter_integer((long)x) #define SCX_EXTRACT_FONT(x) (Font)s48_extract_integer(x) #define SCX_ENTER_FONTSTRUCT(x) s48_enter_integer((long)x) #define SCX_EXTRACT_FONTSTRUCT(x) (XFontStruct*)s48_extract_integer(x) #define SCX_ENTER_VISUAL(x) s48_enter_integer((long)x) #define SCX_EXTRACT_VISUAL(x) (Visual*)s48_extract_integer(x) #define SCX_ENTER_REGION(x) s48_enter_integer((long)x) #define SCX_EXTRACT_REGION(x) (Region)s48_extract_integer(x) extern unsigned long AList_To_XWindowChanges(s48_value alist, XWindowChanges* WC);