scx/c/xlib/objects.c

39 lines
1.1 KiB
C

#include <varargs.h>
#include "xlib.h"
s48_value Sym_None;
int Match_X_Obj (x, v) s48_value x; va_list v; {
register type = TYPE(x);
if (type == T_Display) {
return 1;
} else if (type == T_Gc) {
return va_arg (v, GC) == GCONTEXT(x)->gc;
} else if (type == T_Pixel) {
return va_arg (v, unsigned long) == PIXEL(x)->pix;
} else if (type == T_Pixmap) {
return va_arg (v, Pixmap) == PIXMAP(x)->pm;
} else if (type == T_Window) {
return va_arg (v, Window) == WINDOW(x)->win;
} else if (type == T_Font) {
return va_arg (v, Font) == FONT(x)->id;
} else if (type == T_Colormap) {
return va_arg (v, Colormap) == COLORMAP(x)->cm;
} else if (type == T_Color) {
return va_arg (v, unsigned int) == COLOR(x)->c.red
&& va_arg (v, unsigned int) == COLOR(x)->c.green
&& va_arg (v, unsigned int) == COLOR(x)->c.blue;
} else if (type == T_Cursor) {
return va_arg (v, Cursor) == CURSOR(x)->cursor;
} else if (type == T_Atom) {
return va_arg (v, Atom) == ATOM(x)->atom;
} else Panic ("Match_X_Obj");
return 0;
}
elk_init_xlib_objects () {
Define_Symbol (&Sym_None, "none");
}