Update of /cvsroot/scsh/scx/c/xlib
In directory usw-pr-cvs1:/tmp/cvs-serv20951
Modified Files:
Makefile color.c colormap.c cursor.c display.c event.c font.c
gcontext.c graphics.c main.c pixel.c pixmap.c property.c test
text.c type.c window.c wm.c xlib.h
Log Message:
Added suffix "scx_" to all functions and macros. Added initialization
for all GC_PROTECTed variables.
Index: Makefile
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** Makefile 2001/07/19 15:29:18 1.3
--- Makefile 2001/07/31 14:51:21 1.4
***************
*** 1,3 ****
! OBJECTS = main.o display.o window.o type.o color.o colormap.o pixel.o
gcontext.o event.o pixmap.o graphics.o font.o
$(OBJECTS): xlib.h
--- 1,3 ----
! OBJECTS = main.o display.o window.o type.o color.o colormap.o pixel.o
gcontext.o event.o pixmap.o graphics.o font.o cursor.o text.o property.o wm.o
$(OBJECTS): xlib.h
Index: color.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/color.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** color.c 2001/06/27 13:44:47 1.5
--- color.c 2001/07/31 14:51:21 1.6
***************
*** 2,6 ****
#include "scheme48.h"
! s48_value Create_Color(s48_value r, s48_value g, s48_value b) {
s48_value col = S48_MAKE_VALUE(XColor);
XColor* c = S48_EXTRACT_VALUE_POINTER(col, XColor);
--- 2,6 ----
#include "scheme48.h"
! s48_value scx_Create_Color(s48_value r, s48_value g, s48_value b) {
s48_value col = S48_MAKE_VALUE(XColor);
XColor* c = S48_EXTRACT_VALUE_POINTER(col, XColor);
***************
*** 12,16 ****
}
! s48_value Int_Extract_RGB_Values(XColor col) {
s48_value res = S48_NULL;
S48_DECLARE_GC_PROTECT(1);
--- 12,16 ----
}
! s48_value scx_Int_Extract_RGB_Values(XColor col) {
s48_value res = S48_NULL;
S48_DECLARE_GC_PROTECT(1);
***************
*** 25,46 ****
}
! s48_value Extract_RGB_Values(s48_value Xcolor) {
! return Int_Extract_RGB_Values(*EXTRACT_COLOR(Xcolor));
}
! s48_value Query_Color (s48_value Xcolormap, s48_value Xpixel,
! s48_value Xdisplay) {
XColor c;
! c.pixel = EXTRACT_PIXEL(Xpixel);
! XQueryColor(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap), &c);
! return Int_Extract_RGB_Values(c);
}
! s48_value Query_Colors(s48_value Xcolormap, s48_value Xpixels,
! s48_value Xdisplay) {
! s48_value result;
S48_DECLARE_GC_PROTECT(1);
--- 25,48 ----
}
! s48_value scx_Extract_RGB_Values(s48_value Xcolor) {
! return scx_Int_Extract_RGB_Values(*SCX_EXTRACT_COLOR(Xcolor));
}
! s48_value scx_Query_Color (s48_value Xcolormap, s48_value Xpixel,
! s48_value Xdisplay) {
XColor c;
! c.pixel = SCX_EXTRACT_PIXEL(Xpixel);
! XQueryColor(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap),
! &c);
! return scx_Int_Extract_RGB_Values(c);
}
! s48_value scx_Query_Colors(s48_value Xcolormap, s48_value Xpixels,
! s48_value Xdisplay) {
! s48_value result = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
***************
*** 50,61 ****
for (i=0; i < n; i++)
! p[i].pixel = EXTRACT_PIXEL(S48_VECTOR_REF(Xpixels, i));
! XQueryColors( EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap), p, n
);
S48_GC_PROTECT_1(result);
result = s48_make_vector(n, S48_FALSE);
for (i=0; i < n; i++)
! S48_VECTOR_SET(result, i, Int_Extract_RGB_Values(p[i]));
S48_GC_UNPROTECT();
--- 52,64 ----
for (i=0; i < n; i++)
! p[i].pixel = SCX_EXTRACT_PIXEL(S48_VECTOR_REF(Xpixels, i));
! XQueryColors( SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap), p, n );
S48_GC_PROTECT_1(result);
result = s48_make_vector(n, S48_FALSE);
for (i=0; i < n; i++)
! S48_VECTOR_SET(result, i, scx_Int_Extract_RGB_Values(p[i]));
S48_GC_UNPROTECT();
***************
*** 63,68 ****
}
! s48_value Lookup_Color(s48_value Xcolormap, s48_value Xdisplay,
! s48_value color_name) {
XColor visual, exact;
--- 66,71 ----
}
! s48_value scx_Lookup_Color(s48_value Xcolormap, s48_value Xdisplay,
! s48_value color_name) {
XColor visual, exact;
***************
*** 70,78 ****
S48_DECLARE_GC_PROTECT(1);
! if (XLookupColor( EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap),
s48_extract_string(color_name), &visual, &exact )) {
S48_GC_PROTECT_1(res);
! res = s48_cons( Int_Extract_RGB_Values( visual ),
! Int_Extract_RGB_Values( exact ) );
}
--- 73,82 ----
S48_DECLARE_GC_PROTECT(1);
! if (XLookupColor( SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap),
s48_extract_string(color_name), &visual, &exact )) {
S48_GC_PROTECT_1(res);
! res = s48_cons( scx_Int_Extract_RGB_Values( visual ),
! scx_Int_Extract_RGB_Values( exact ) );
}
***************
*** 81,89 ****
}
! void s48_init_color(void) {
! S48_EXPORT_FUNCTION(Create_Color);
! S48_EXPORT_FUNCTION(Extract_RGB_Values);
! S48_EXPORT_FUNCTION(Query_Color);
! S48_EXPORT_FUNCTION(Query_Colors);
! S48_EXPORT_FUNCTION(Lookup_Color);
}
--- 85,93 ----
}
! void scx_init_color(void) {
! S48_EXPORT_FUNCTION(scx_Create_Color);
! S48_EXPORT_FUNCTION(scx_Extract_RGB_Values);
! S48_EXPORT_FUNCTION(scx_Query_Color);
! S48_EXPORT_FUNCTION(scx_Query_Colors);
! S48_EXPORT_FUNCTION(scx_Lookup_Color);
}
Index: colormap.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/colormap.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** colormap.c 2001/06/27 13:44:47 1.4
--- colormap.c 2001/07/31 14:51:21 1.5
***************
*** 2,38 ****
#include "scheme48.h"
! s48_value Free_Colormap (s48_value Xcolormap, s48_value Xdisplay) {
! XFreeColormap(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap));
return S48_UNSPECIFIC;
}
! s48_value Alloc_Color(s48_value Xcolormap, s48_value Xcolor,
! s48_value Xdisplay) {
! XColor* cp = EXTRACT_COLOR(Xcolor);
! if (!XAllocColor(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap),
cp))
return S48_FALSE;
else
! return ENTER_PIXEL(cp->pixel);
}
! s48_value Alloc_Named_Color(s48_value Xcolormap, s48_value color_name,
! s48_value Xdisplay) {
XColor screen, exact;
int r;
! s48_value ret;
S48_DECLARE_GC_PROTECT(1);
! r = XAllocNamedColor (EXTRACT_DISPLAY(Xdisplay),
EXTRACT_COLORMAP(Xcolormap),
s48_extract_string(color_name),
&screen, &exact);
! if (!r) ret = S48_FALSE;
! else {
S48_GC_PROTECT_1(ret);
! ret = s48_cons(Int_Extract_RGB_Values(exact), S48_NULL);
! ret = s48_cons(Int_Extract_RGB_Values(screen), ret);
! ret = s48_cons(ENTER_PIXEL(screen.pixel), ret);
}
--- 2,40 ----
#include "scheme48.h"
! s48_value scx_Free_Colormap (s48_value Xcolormap, s48_value Xdisplay) {
! XFreeColormap(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap));
return S48_UNSPECIFIC;
}
! s48_value scx_Alloc_Color(s48_value Xcolormap, s48_value Xcolor,
! s48_value Xdisplay) {
! XColor* cp = SCX_EXTRACT_COLOR(Xcolor);
! if (!XAllocColor(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap), cp))
return S48_FALSE;
else
! return SCX_ENTER_PIXEL(cp->pixel);
}
! s48_value scx_Alloc_Named_Color(s48_value Xcolormap, s48_value color_name,
! s48_value Xdisplay) {
XColor screen, exact;
int r;
! s48_value ret = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
! r = XAllocNamedColor (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap),
s48_extract_string(color_name),
&screen, &exact);
! if (r) {
S48_GC_PROTECT_1(ret);
! ret = s48_cons(scx_Int_Extract_RGB_Values(exact), S48_NULL);
! ret = s48_cons(scx_Int_Extract_RGB_Values(screen), ret);
! ret = s48_cons(SCX_ENTER_PIXEL(screen.pixel), ret);
}
***************
*** 42,48 ****
! void s48_init_colormap(void) {
! S48_EXPORT_FUNCTION(Free_Colormap);
! S48_EXPORT_FUNCTION(Alloc_Color);
! S48_EXPORT_FUNCTION(Alloc_Named_Color);
}
--- 44,50 ----
! void scx_init_colormap(void) {
! S48_EXPORT_FUNCTION(scx_Free_Colormap);
! S48_EXPORT_FUNCTION(scx_Alloc_Color);
! S48_EXPORT_FUNCTION(scx_Alloc_Named_Color);
}
Index: cursor.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/cursor.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** cursor.c 2001/07/30 14:11:41 1.3
--- cursor.c 2001/07/31 14:51:21 1.4
***************
*** 2,52 ****
#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);
}
--- 2,52 ----
#include "scheme48.h"
! s48_value scx_Free_Cursor(s48_value Xdisplay, s48_value Xcursor) {
! XFreeCursor(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_CURSOR(Xcursor));
return S48_UNSPECIFIC;
}
! s48_value scx_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(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_PIXMAP(src),
! SCX_EXTRACT_PIXMAP(mask),
! SCX_EXTRACT_COLOR(foreground),
! SCX_EXTRACT_COLOR(background),
s48_extract_integer(x),
s48_extract_integer(y));
! return SCX_ENTER_CURSOR(xc);
}
! s48_value scx_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(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_FONT(src),
! SCX_EXTRACT_FONT(mask),
s48_extract_integer(srcc),
s48_extract_integer(maskc),
! SCX_EXTRACT_COLOR(foreground),
! SCX_EXTRACT_COLOR(background));
! return SCX_ENTER_CURSOR(xc);
}
! s48_value scx_Recolor_Cursor(s48_value Xdisplay, s48_value Xcursor,
s48_value f, s48_value b) {
! XRecolorCursor(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_CURSOR(Xcursor),
! SCX_EXTRACT_COLOR(f),
! SCX_EXTRACT_COLOR(b));
return S48_UNSPECIFIC;
}
! void scx_init_cursor(void) {
! S48_EXPORT_FUNCTION(scx_Free_Cursor);
! S48_EXPORT_FUNCTION(scx_Create_Pixmap_Cursor);
! S48_EXPORT_FUNCTION(scx_Create_Glyph_Cursor);
! S48_EXPORT_FUNCTION(scx_Recolor_Cursor);
}
Index: display.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/display.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** display.c 2001/07/30 14:13:03 1.7
--- display.c 2001/07/31 14:51:21 1.8
***************
*** 4,26 ****
// Open_Display(name) name should be a string or S48_FALSE (=> Null)
! s48_value Open_Display (s48_value name) {
char* cname = (char*)0;
if (!S48_FALSE_P(name))
cname = s48_extract_string(name);
! return ENTER_DISPLAY(XOpenDisplay(cname));
}
// Close_Display( Xdisplay ) Xdisplay should be a pointer to the X-lib struct
// cast into a Scheme-Integer.
! s48_value Close_Display(s48_value Xdisplay) {
! XCloseDisplay(EXTRACT_DISPLAY(Xdisplay));
return S48_UNSPECIFIC;
}
! // This funktion selects the fd field of the Display-struct. One shouldn't do
! // that usually, but we need it.
! s48_value Display_Message_fd(s48_value Xdisplay) {
! int fd = ConnectionNumber(EXTRACT_DISPLAY(Xdisplay));
/* struct timeval timeout;
fd_set fdset;
--- 4,25 ----
// Open_Display(name) name should be a string or S48_FALSE (=> Null)
! s48_value scx_Open_Display (s48_value name) {
char* cname = (char*)0;
if (!S48_FALSE_P(name))
cname = s48_extract_string(name);
! return SCX_ENTER_DISPLAY(XOpenDisplay(cname));
}
// Close_Display( Xdisplay ) Xdisplay should be a pointer to the X-lib struct
// cast into a Scheme-Integer.
! s48_value scx_Close_Display(s48_value Xdisplay) {
! XCloseDisplay(SCX_EXTRACT_DISPLAY(Xdisplay));
return S48_UNSPECIFIC;
}
! // This function returns the file destriptor of the message-channel.
! s48_value scx_Display_Message_fd(s48_value Xdisplay) {
! int fd = ConnectionNumber(SCX_EXTRACT_DISPLAY(Xdisplay));
/* struct timeval timeout;
fd_set fdset;
***************
*** 41,88 ****
// The following procedure mainly wrap a corresponding XLib macro without
// underscores...
! s48_value Display_Default_Root_Window(s48_value Xdisplay) {
! Window wnd = DefaultRootWindow(EXTRACT_DISPLAY(Xdisplay));
! return ENTER_WINDOW(wnd);
}
! s48_value Display_Default_Colormap(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
Colormap cmp = DefaultColormap(dpy, DefaultScreen(dpy));
! return ENTER_COLORMAP(cmp);
}
! s48_value Display_Default_Gcontext(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
GC gc = DefaultGC(dpy, DefaultScreen(dpy));
! return ENTER_GCONTEXT(gc);
}
! s48_value Display_Default_Depth(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
int depth = DefaultDepth(dpy, DefaultScreen(dpy));
return s48_enter_integer(depth);
}
! s48_value Display_Default_Screen_Number(s48_value Xdisplay) {
! return s48_enter_integer(DefaultScreen(EXTRACT_DISPLAY(Xdisplay)));
}
! s48_value Display_Cells(s48_value Xdisplay, s48_value ScrNum) {
int num = (int)s48_extract_integer(ScrNum);
! return s48_enter_integer(DisplayCells(EXTRACT_DISPLAY(Xdisplay), num));
}
! s48_value Display_Planes(s48_value Xdisplay, s48_value ScrNum) {
int num = (int)s48_extract_integer(ScrNum);
! return s48_enter_integer(DisplayPlanes(EXTRACT_DISPLAY(Xdisplay), num));
}
! s48_value Display_String(s48_value Xdisplay) {
! char* s = DisplayString(EXTRACT_DISPLAY(Xdisplay));
return s48_enter_string(s);
}
! s48_value Display_Vendor(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
char* s = ServerVendor(dpy);
int i = VendorRelease(dpy);
--- 40,87 ----
// The following procedure mainly wrap a corresponding XLib macro without
// underscores...
! s48_value scx_Display_Default_Root_Window(s48_value Xdisplay) {
! Window wnd = DefaultRootWindow(SCX_EXTRACT_DISPLAY(Xdisplay));
! return SCX_ENTER_WINDOW(wnd);
}
! s48_value scx_Display_Default_Colormap(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
Colormap cmp = DefaultColormap(dpy, DefaultScreen(dpy));
! return SCX_ENTER_COLORMAP(cmp);
}
! s48_value scx_Display_Default_Gcontext(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
GC gc = DefaultGC(dpy, DefaultScreen(dpy));
! return SCX_ENTER_GCONTEXT(gc);
}
! s48_value scx_Display_Default_Depth(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
int depth = DefaultDepth(dpy, DefaultScreen(dpy));
return s48_enter_integer(depth);
}
! s48_value scx_Display_Default_Screen_Number(s48_value Xdisplay) {
! return s48_enter_integer(DefaultScreen(SCX_EXTRACT_DISPLAY(Xdisplay)));
}
! s48_value scx_Display_Cells(s48_value Xdisplay, s48_value ScrNum) {
int num = (int)s48_extract_integer(ScrNum);
! return s48_enter_integer(DisplayCells(SCX_EXTRACT_DISPLAY(Xdisplay), num));
}
! s48_value scx_Display_Planes(s48_value Xdisplay, s48_value ScrNum) {
int num = (int)s48_extract_integer(ScrNum);
! return s48_enter_integer(DisplayPlanes(SCX_EXTRACT_DISPLAY(Xdisplay), num));
}
! s48_value scx_Display_String(s48_value Xdisplay) {
! char* s = DisplayString(SCX_EXTRACT_DISPLAY(Xdisplay));
return s48_enter_string(s);
}
! s48_value scx_Display_Vendor(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
char* s = ServerVendor(dpy);
int i = VendorRelease(dpy);
***************
*** 91,96 ****
}
! s48_value Display_Protocol_Version(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
int maj = ProtocolVersion(dpy);
int min = ProtocolRevision(dpy);
--- 90,95 ----
}
! s48_value scx_Display_Protocol_Version(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
int maj = ProtocolVersion(dpy);
int min = ProtocolRevision(dpy);
***************
*** 99,180 ****
}
! s48_value Display_Screen_Count(s48_value Xdisplay) {
! int cnt = ScreenCount(EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(cnt);
}
! s48_value Display_Image_Byte_Order(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
return Bits_To_Symbols( (unsigned long)ImageByteOrder(dpy),
Byte_Order_Syms );
}
! s48_value Display_Bitmap_Unit(s48_value Xdisplay) {
! int bu = BitmapUnit(EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(bu);
}
! s48_value Display_Bitmap_Bit_Order(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
return Bits_To_Symbols( (unsigned long)BitmapBitOrder(dpy),
Byte_Order_Syms );
}
! s48_value Display_Bitmap_Pad(s48_value Xdisplay) {
! int bp = BitmapPad(EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(bp);
}
! s48_value Display_Width(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayWidth(dpy, DefaultScreen(dpy)));
}
! s48_value Display_Height(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayHeight(dpy, DefaultScreen(dpy)));
}
! s48_value Display_Width_Mm (s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayWidthMM(dpy, DefaultScreen(dpy)));
}
! s48_value Display_Height_Mm (s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayHeightMM(dpy, DefaultScreen(dpy)));
}
! s48_value Display_Motion_Buffer_Size(s48_value Xdisplay) {
! int mbs = XDisplayMotionBufferSize(EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(mbs);
}
! s48_value Display_Flush_Output (s48_value Xdisplay) {
! XFlush (EXTRACT_DISPLAY(Xdisplay));
return S48_UNSPECIFIC;
}
! s48_value Display_Wait_Output (s48_value Xdisplay, s48_value discard) {
! XSync (EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(discard));
return S48_UNSPECIFIC;
}
! s48_value No_Op (s48_value Xdisplay) {
! XNoOp(EXTRACT_DISPLAY(Xdisplay));
return S48_UNSPECIFIC;
}
! s48_value List_Depths (s48_value Xdisplay, s48_value scr) {
int i, num;
int* p;
! s48_value ret;
S48_DECLARE_GC_PROTECT(1);
! p = XListDepths(EXTRACT_DISPLAY(Xdisplay), s48_extract_integer(scr), &num);
! if (!p)
! ret = S48_FALSE;
! else {
S48_GC_PROTECT_1(ret);
ret = s48_make_vector(num, S48_NULL);
--- 98,178 ----
}
! s48_value scx_Display_Screen_Count(s48_value Xdisplay) {
! int cnt = ScreenCount(SCX_EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(cnt);
}
! s48_value scx_Display_Image_Byte_Order(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
return Bits_To_Symbols( (unsigned long)ImageByteOrder(dpy),
Byte_Order_Syms );
}
! s48_value scx_Display_Bitmap_Unit(s48_value Xdisplay) {
! int bu = BitmapUnit(SCX_EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(bu);
}
! s48_value scx_Display_Bitmap_Bit_Order(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
return Bits_To_Symbols( (unsigned long)BitmapBitOrder(dpy),
Byte_Order_Syms );
}
! s48_value scx_Display_Bitmap_Pad(s48_value Xdisplay) {
! int bp = BitmapPad(SCX_EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(bp);
}
! s48_value scx_Display_Width(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayWidth(dpy, DefaultScreen(dpy)));
}
! s48_value scx_Display_Height(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayHeight(dpy, DefaultScreen(dpy)));
}
! s48_value scx_Display_Width_Mm (s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayWidthMM(dpy, DefaultScreen(dpy)));
}
! s48_value scx_Display_Height_Mm (s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
return s48_enter_integer(DisplayHeightMM(dpy, DefaultScreen(dpy)));
}
! s48_value scx_Display_Motion_Buffer_Size(s48_value Xdisplay) {
! int mbs = XDisplayMotionBufferSize(SCX_EXTRACT_DISPLAY(Xdisplay));
return s48_enter_integer(mbs);
}
! s48_value scx_Display_Flush_Output (s48_value Xdisplay) {
! XFlush (SCX_EXTRACT_DISPLAY(Xdisplay));
return S48_UNSPECIFIC;
}
! s48_value scx_Display_Wait_Output (s48_value Xdisplay, s48_value discard) {
! XSync (SCX_EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(discard));
return S48_UNSPECIFIC;
}
! s48_value scx_No_Op (s48_value Xdisplay) {
! XNoOp(SCX_EXTRACT_DISPLAY(Xdisplay));
return S48_UNSPECIFIC;
}
! s48_value scx_List_Depths (s48_value Xdisplay, s48_value scr) {
int i, num;
int* p;
! s48_value ret = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
! p = XListDepths(SCX_EXTRACT_DISPLAY(Xdisplay),
! s48_extract_integer(scr), &num);
! if (p) {
S48_GC_PROTECT_1(ret);
ret = s48_make_vector(num, S48_NULL);
***************
*** 188,202 ****
}
! s48_value List_Pixmap_Formats (s48_value Xdisplay) {
int num, i;
XPixmapFormatValues* p;
! s48_value ret, t;
S48_DECLARE_GC_PROTECT(2);
! p = XListPixmapFormats(EXTRACT_DISPLAY(Xdisplay), &num);
! if (!p)
! ret = S48_FALSE;
! else {
S48_GC_PROTECT_2(ret, t);
ret = s48_make_vector (num, S48_FALSE);
--- 186,198 ----
}
! s48_value scx_List_Pixmap_Formats (s48_value Xdisplay) {
int num, i;
XPixmapFormatValues* p;
! s48_value ret = S48_FALSE, t = S48_FALSE;
S48_DECLARE_GC_PROTECT(2);
! p = XListPixmapFormats(SCX_EXTRACT_DISPLAY(Xdisplay), &num);
! if (p) {
S48_GC_PROTECT_2(ret, t);
ret = s48_make_vector (num, S48_FALSE);
***************
*** 215,246 ****
}
! void s48_init_display(void) {
! S48_EXPORT_FUNCTION(Open_Display);
! S48_EXPORT_FUNCTION(Close_Display);
! S48_EXPORT_FUNCTION(Display_Message_fd);
! S48_EXPORT_FUNCTION(Display_Default_Root_Window);
! S48_EXPORT_FUNCTION(Display_Default_Colormap);
! S48_EXPORT_FUNCTION(Display_Default_Gcontext);
! S48_EXPORT_FUNCTION(Display_Default_Depth);
! S48_EXPORT_FUNCTION(Display_Default_Screen_Number);
! S48_EXPORT_FUNCTION(Display_Cells);
! S48_EXPORT_FUNCTION(Display_Planes);
! S48_EXPORT_FUNCTION(Display_String);
! S48_EXPORT_FUNCTION(Display_Vendor);
! S48_EXPORT_FUNCTION(Display_Protocol_Version);
! S48_EXPORT_FUNCTION(Display_Screen_Count);
! S48_EXPORT_FUNCTION(Display_Image_Byte_Order);
! S48_EXPORT_FUNCTION(Display_Bitmap_Unit);
! S48_EXPORT_FUNCTION(Display_Bitmap_Bit_Order);
! S48_EXPORT_FUNCTION(Display_Bitmap_Pad);
! S48_EXPORT_FUNCTION(Display_Width);
! S48_EXPORT_FUNCTION(Display_Height);
! S48_EXPORT_FUNCTION(Display_Width_Mm);
! S48_EXPORT_FUNCTION(Display_Height_Mm);
! S48_EXPORT_FUNCTION(Display_Motion_Buffer_Size);
! S48_EXPORT_FUNCTION(Display_Flush_Output);
! S48_EXPORT_FUNCTION(Display_Wait_Output);
! S48_EXPORT_FUNCTION(No_Op);
! S48_EXPORT_FUNCTION(List_Depths);
! S48_EXPORT_FUNCTION(List_Pixmap_Formats);
}
--- 211,242 ----
}
! void scx_init_display(void) {
! S48_EXPORT_FUNCTION(scx_Open_Display);
! S48_EXPORT_FUNCTION(scx_Close_Display);
! S48_EXPORT_FUNCTION(scx_Display_Message_fd);
! S48_EXPORT_FUNCTION(scx_Display_Default_Root_Window);
! S48_EXPORT_FUNCTION(scx_Display_Default_Colormap);
! S48_EXPORT_FUNCTION(scx_Display_Default_Gcontext);
! S48_EXPORT_FUNCTION(scx_Display_Default_Depth);
! S48_EXPORT_FUNCTION(scx_Display_Default_Screen_Number);
! S48_EXPORT_FUNCTION(scx_Display_Cells);
! S48_EXPORT_FUNCTION(scx_Display_Planes);
! S48_EXPORT_FUNCTION(scx_Display_String);
! S48_EXPORT_FUNCTION(scx_Display_Vendor);
! S48_EXPORT_FUNCTION(scx_Display_Protocol_Version);
! S48_EXPORT_FUNCTION(scx_Display_Screen_Count);
! S48_EXPORT_FUNCTION(scx_Display_Image_Byte_Order);
! S48_EXPORT_FUNCTION(scx_Display_Bitmap_Unit);
! S48_EXPORT_FUNCTION(scx_Display_Bitmap_Bit_Order);
! S48_EXPORT_FUNCTION(scx_Display_Bitmap_Pad);
! S48_EXPORT_FUNCTION(scx_Display_Width);
! S48_EXPORT_FUNCTION(scx_Display_Height);
! S48_EXPORT_FUNCTION(scx_Display_Width_Mm);
! S48_EXPORT_FUNCTION(scx_Display_Height_Mm);
! S48_EXPORT_FUNCTION(scx_Display_Motion_Buffer_Size);
! S48_EXPORT_FUNCTION(scx_Display_Flush_Output);
! S48_EXPORT_FUNCTION(scx_Display_Wait_Output);
! S48_EXPORT_FUNCTION(scx_No_Op);
! S48_EXPORT_FUNCTION(scx_List_Depths);
! S48_EXPORT_FUNCTION(scx_List_Pixmap_Formats);
}
Index: event.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/event.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** event.c 2001/07/19 15:32:59 1.5
--- event.c 2001/07/31 14:51:21 1.6
***************
*** 7,11 ****
#define SETSIZE(i) r = s48_make_vector(sidx+i, S48_FALSE)
! s48_value enter_event(XEvent* e) {
s48_value r = S48_FALSE;
s48_value temp = S48_FALSE;
--- 7,11 ----
#define SETSIZE(i) r = s48_make_vector(sidx+i, S48_FALSE)
! s48_value scx_enter_event(XEvent* e) {
s48_value r = S48_FALSE;
s48_value temp = S48_FALSE;
***************
*** 22,28 ****
SETSIZE(10);
// all equal in the beginning
! SET(sidx+0, ENTER_WINDOW(q->root));
! SET(sidx+1, ENTER_WINDOW(q->subwindow));
! SET(sidx+2, ENTER_TIME(q->time));
SET(sidx+3, s48_enter_integer(q->x));
SET(sidx+4, s48_enter_integer(q->y));
--- 22,28 ----
SETSIZE(10);
// all equal in the beginning
! SET(sidx+0, SCX_ENTER_WINDOW(q->root));
! SET(sidx+1, SCX_ENTER_WINDOW(q->subwindow));
! SET(sidx+2, SCX_ENTER_TIME(q->time));
SET(sidx+3, s48_enter_integer(q->x));
SET(sidx+4, s48_enter_integer(q->y));
***************
*** 52,58 ****
ECAST(q, XCrossingEvent);
SETSIZE(12);
! SET(sidx+0, ENTER_WINDOW(q->root));
! SET(sidx+1, ENTER_WINDOW(q->subwindow));
! SET(sidx+2, ENTER_TIME(q->time));
SET(sidx+3, s48_enter_integer(q->x));
SET(sidx+4, s48_enter_integer(q->y));
--- 52,58 ----
ECAST(q, XCrossingEvent);
SETSIZE(12);
! SET(sidx+0, SCX_ENTER_WINDOW(q->root));
! SET(sidx+1, SCX_ENTER_WINDOW(q->subwindow));
! SET(sidx+2, SCX_ENTER_TIME(q->time));
SET(sidx+3, s48_enter_integer(q->x));
SET(sidx+4, s48_enter_integer(q->y));
***************
*** 122,126 ****
ECAST(q, XCreateWindowEvent);
SETSIZE(7);
! SET(sidx+0, ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
--- 122,126 ----
ECAST(q, XCreateWindowEvent);
SETSIZE(7);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
***************
*** 134,138 ****
ECAST(q, XDestroyWindowEvent);
SETSIZE(1);
! SET(sidx+0, ENTER_WINDOW(q->window));
} break;
--- 134,138 ----
ECAST(q, XDestroyWindowEvent);
SETSIZE(1);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
} break;
***************
*** 140,144 ****
ECAST(q, XUnmapEvent);
SETSIZE(2);
! SET(sidx+0, ENTER_WINDOW(q->window));
SET(sidx+1, S48_ENTER_BOOLEAN(q->from_configure));
} break;
--- 140,144 ----
ECAST(q, XUnmapEvent);
SETSIZE(2);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
SET(sidx+1, S48_ENTER_BOOLEAN(q->from_configure));
} break;
***************
*** 147,151 ****
ECAST(q, XMapEvent);
SETSIZE(2);
! SET(sidx+0, ENTER_WINDOW(q->window));
SET(sidx+1, S48_ENTER_BOOLEAN(q->override_redirect));
} break;
--- 147,151 ----
ECAST(q, XMapEvent);
SETSIZE(2);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
SET(sidx+1, S48_ENTER_BOOLEAN(q->override_redirect));
} break;
***************
*** 154,158 ****
ECAST(q, XMapRequestEvent);
SETSIZE(1);
! SET(sidx+0, ENTER_WINDOW(q->window));
} break;
--- 154,158 ----
ECAST(q, XMapRequestEvent);
SETSIZE(1);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
} break;
***************
*** 160,165 ****
ECAST(q, XReparentEvent);
SETSIZE(5);
! SET(sidx+0, ENTER_WINDOW(q->window));
! SET(sidx+1, ENTER_WINDOW(q->parent));
SET(sidx+2, s48_enter_integer(q->x));
SET(sidx+3, s48_enter_integer(q->y));
--- 160,165 ----
ECAST(q, XReparentEvent);
SETSIZE(5);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
! SET(sidx+1, SCX_ENTER_WINDOW(q->parent));
SET(sidx+2, s48_enter_integer(q->x));
SET(sidx+3, s48_enter_integer(q->y));
***************
*** 170,174 ****
ECAST(q, XConfigureEvent);
SETSIZE(8);
! SET(sidx+0, ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
--- 170,174 ----
ECAST(q, XConfigureEvent);
SETSIZE(8);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
***************
*** 176,180 ****
SET(sidx+4, s48_enter_integer(q->height));
SET(sidx+5, s48_enter_integer(q->border_width));
! SET(sidx+6, ENTER_WINDOW(q->above));
SET(sidx+7, S48_ENTER_BOOLEAN(q->override_redirect));
} break;
--- 176,180 ----
SET(sidx+4, s48_enter_integer(q->height));
SET(sidx+5, s48_enter_integer(q->border_width));
! SET(sidx+6, SCX_ENTER_WINDOW(q->above));
SET(sidx+7, S48_ENTER_BOOLEAN(q->override_redirect));
} break;
***************
*** 183,187 ****
ECAST(q, XConfigureRequestEvent);
SETSIZE(9);
! SET(sidx+0, ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
--- 183,187 ----
ECAST(q, XConfigureRequestEvent);
SETSIZE(9);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
***************
*** 189,193 ****
SET(sidx+4, s48_enter_integer(q->height));
SET(sidx+5, s48_enter_integer(q->border_width));
! SET(sidx+6, ENTER_WINDOW(q->above));
SET(sidx+7, Bit_To_Symbol(q->detail, Stack_Mode_Syms));
SET(sidx+8, s48_enter_integer(q->value_mask));
--- 189,193 ----
SET(sidx+4, s48_enter_integer(q->height));
SET(sidx+5, s48_enter_integer(q->border_width));
! SET(sidx+6, SCX_ENTER_WINDOW(q->above));
SET(sidx+7, Bit_To_Symbol(q->detail, Stack_Mode_Syms));
SET(sidx+8, s48_enter_integer(q->value_mask));
***************
*** 197,201 ****
ECAST(q, XGravityEvent);
SETSIZE(3);
! SET(sidx+0, ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
--- 197,201 ----
ECAST(q, XGravityEvent);
SETSIZE(3);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
SET(sidx+1, s48_enter_integer(q->x));
SET(sidx+2, s48_enter_integer(q->y));
***************
*** 212,216 ****
ECAST(q, XCirculateEvent);
SETSIZE(2);
! SET(sidx+0, ENTER_WINDOW(q->window));
SET(sidx+1, Bit_To_Symbol(q->place, Place_Syms));
} break;
--- 212,216 ----
ECAST(q, XCirculateEvent);
SETSIZE(2);
! SET(sidx+0, SCX_ENTER_WINDOW(q->window));
SET(sidx+1, Bit_To_Symbol(q->place, Place_Syms));
} break;
***************
*** 219,224 ****
ECAST(q, XPropertyEvent);
SETSIZE(3);
! SET(sidx+0, ENTER_ATOM(q->atom));
! SET(sidx+1, ENTER_TIME(q->time));
SET(sidx+2, Bit_To_Symbol(q->state, Prop_Syms));
} break;
--- 219,224 ----
ECAST(q, XPropertyEvent);
SETSIZE(3);
! SET(sidx+0, SCX_ENTER_ATOM(q->atom));
! SET(sidx+1, SCX_ENTER_TIME(q->time));
SET(sidx+2, Bit_To_Symbol(q->state, Prop_Syms));
} break;
***************
*** 227,232 ****
ECAST(q, XSelectionClearEvent);
SETSIZE(2);
! SET(sidx+0, ENTER_ATOM(q->selection));
! SET(sidx+1, ENTER_TIME(q->time));
} break;
--- 227,232 ----
ECAST(q, XSelectionClearEvent);
SETSIZE(2);
! SET(sidx+0, SCX_ENTER_ATOM(q->selection));
! SET(sidx+1, SCX_ENTER_TIME(q->time));
} break;
***************
*** 234,242 ****
ECAST(q, XSelectionRequestEvent);
SETSIZE(5);
! SET(sidx+0, ENTER_WINDOW(q->requestor));
! SET(sidx+1, ENTER_ATOM(q->selection));
! SET(sidx+2, ENTER_ATOM(q->target));
! SET(sidx+3, ENTER_ATOM(q->property));
! SET(sidx+4, ENTER_TIME(q->time));
} break;
--- 234,242 ----
ECAST(q, XSelectionRequestEvent);
SETSIZE(5);
! SET(sidx+0, SCX_ENTER_WINDOW(q->requestor));
! SET(sidx+1, SCX_ENTER_ATOM(q->selection));
! SET(sidx+2, SCX_ENTER_ATOM(q->target));
! SET(sidx+3, SCX_ENTER_ATOM(q->property));
! SET(sidx+4, SCX_ENTER_TIME(q->time));
} break;
***************
*** 244,251 ****
ECAST(q, XSelectionEvent);
SETSIZE(4);
! SET(sidx+0, ENTER_ATOM(q->selection));
! SET(sidx+1, ENTER_ATOM(q->target));
! SET(sidx+2, ENTER_ATOM(q->property));
! SET(sidx+3, ENTER_TIME(q->time));
} break;
--- 244,251 ----
ECAST(q, XSelectionEvent);
SETSIZE(4);
! SET(sidx+0, SCX_ENTER_ATOM(q->selection));
! SET(sidx+1, SCX_ENTER_ATOM(q->target));
! SET(sidx+2, SCX_ENTER_ATOM(q->property));
! SET(sidx+3, SCX_ENTER_TIME(q->time));
} break;
***************
*** 253,257 ****
ECAST(q, XColormapEvent);
SETSIZE(3);
! SET(sidx+0, ENTER_COLORMAP(q->colormap));
SET(sidx+1, S48_ENTER_BOOLEAN(q->new));
SET(sidx+2, q->state == ColormapInstalled ? S48_TRUE : S48_FALSE);
--- 253,257 ----
ECAST(q, XColormapEvent);
SETSIZE(3);
! SET(sidx+0, SCX_ENTER_COLORMAP(q->colormap));
SET(sidx+1, S48_ENTER_BOOLEAN(q->new));
SET(sidx+2, q->state == ColormapInstalled ? S48_TRUE : S48_FALSE);
***************
*** 261,265 ****
ECAST(q, XClientMessageEvent);
SETSIZE(2);
! SET(sidx+0, ENTER_ATOM(q->message_type));
switch (q->format) {
case 8 : {
--- 261,265 ----
ECAST(q, XClientMessageEvent);
SETSIZE(2);
! SET(sidx+0, SCX_ENTER_ATOM(q->message_type));
switch (q->format) {
case 8 : {
***************
*** 299,304 ****
SET(0, s48_enter_integer(q->serial));
SET(1, S48_ENTER_BOOLEAN(q->send_event));
! SET(2, ENTER_DISPLAY(q->display));
! SET(3, ENTER_WINDOW(q->window));
}
// more??
--- 299,304 ----
SET(0, s48_enter_integer(q->serial));
SET(1, S48_ENTER_BOOLEAN(q->send_event));
! SET(2, SCX_ENTER_DISPLAY(q->display));
! SET(3, SCX_ENTER_WINDOW(q->window));
}
// more??
***************
*** 311,337 ****
}
! s48_value Next_Event(s48_value Xdisplay) {
XEvent e;
! XNextEvent(EXTRACT_DISPLAY(Xdisplay), &e);
! return enter_event(&e);
}
! s48_value Peek_Event(s48_value Xdisplay) {
XEvent e;
! XPeekEvent(EXTRACT_DISPLAY(Xdisplay), &e);
! return enter_event(&e);
}
! s48_value Events_Pending(s48_value Xdisplay) {
! return s48_enter_integer(XPending(EXTRACT_DISPLAY(Xdisplay)));
}
! s48_value Get_Motion_Events(s48_value Xdisplay, s48_value Xwindow,
s48_value from, s48_value to) {
int n,i;
! XTimeCoord *p = XGetMotionEvents(EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_WINDOW(Xwindow),
! EXTRACT_TIME(from),
! EXTRACT_TIME(to),
&n);
s48_value v = s48_make_vector(n, S48_FALSE);
--- 311,337 ----
}
! s48_value scx_Next_Event(s48_value Xdisplay) {
XEvent e;
! XNextEvent(SCX_EXTRACT_DISPLAY(Xdisplay), &e);
! return scx_enter_event(&e);
}
! s48_value scx_Peek_Event(s48_value Xdisplay) {
XEvent e;
! XPeekEvent(SCX_EXTRACT_DISPLAY(Xdisplay), &e);
! return scx_enter_event(&e);
}
! s48_value scx_Events_Pending(s48_value Xdisplay) {
! return s48_enter_integer(XPending(SCX_EXTRACT_DISPLAY(Xdisplay)));
}
! s48_value scx_Get_Motion_Events(s48_value Xdisplay, s48_value Xwindow,
s48_value from, s48_value to) {
int n,i;
! XTimeCoord *p = XGetMotionEvents(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_WINDOW(Xwindow),
! SCX_EXTRACT_TIME(from),
! SCX_EXTRACT_TIME(to),
&n);
s48_value v = s48_make_vector(n, S48_FALSE);
***************
*** 340,344 ****
S48_GC_PROTECT_2(v,l);
for (i = 0; i < n; i++) {
! l = s48_cons(ENTER_TIME(p[i].time),
s48_cons(s48_enter_integer(p[i].x),
s48_cons(s48_enter_integer(p[i].y), S48_NULL)));
--- 340,344 ----
S48_GC_PROTECT_2(v,l);
for (i = 0; i < n; i++) {
! l = s48_cons(SCX_ENTER_TIME(p[i].time),
s48_cons(s48_enter_integer(p[i].x),
s48_cons(s48_enter_integer(p[i].y), S48_NULL)));
***************
*** 350,358 ****
}
! void s48_init_event(void) {
! S48_EXPORT_FUNCTION(Next_Event);
! S48_EXPORT_FUNCTION(Peek_Event);
! S48_EXPORT_FUNCTION(Events_Pending);
! S48_EXPORT_FUNCTION(Get_Motion_Events);
}
--- 350,358 ----
}
! void scx_init_event(void) {
! S48_EXPORT_FUNCTION(scx_Next_Event);
! S48_EXPORT_FUNCTION(scx_Peek_Event);
! S48_EXPORT_FUNCTION(scx_Events_Pending);
! S48_EXPORT_FUNCTION(scx_Get_Motion_Events);
}
Index: font.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/font.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** font.c 2001/07/18 15:44:41 1.3
--- font.c 2001/07/31 14:51:21 1.4
***************
*** 3,35 ****
! s48_value Load_Font(s48_value Xdisplay, s48_value font_name) {
! return ENTER_FONTSTRUCT(XLoadQueryFont(EXTRACT_DISPLAY(Xdisplay),
s48_extract_string(font_name)));
}
! s48_value Free_Font(s48_value Xdisplay, s48_value Xfontstruct) {
! XFreeFont(EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_FONTSTRUCT(Xfontstruct));
return S48_UNSPECIFIC;
}
! s48_value Get_Xfont(s48_value Xfontstruct) {
! return ENTER_FONT((EXTRACT_FONTSTRUCT(Xfontstruct))->fid);
}
! s48_value GContext_Font(s48_value Xdisplay, s48_value Xgcontext) {
! GContext gc = XGContextFromGC(EXTRACT_GCONTEXT(Xgcontext));
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
! return ENTER_FONTSTRUCT(XQueryFont(dpy, gc));
}
! s48_value Font_Path(s48_value Xdisplay) {
int n, i;
char** sa;
! s48_value ret;
S48_DECLARE_GC_PROTECT(1);
// Enable/Disable Interrupts ??
! sa = XGetFontPath(EXTRACT_DISPLAY(Xdisplay), &n);
ret = s48_make_vector(n, S48_FALSE);
S48_GC_PROTECT_1(ret);
--- 3,35 ----
! s48_value scx_Load_Font(s48_value Xdisplay, s48_value font_name) {
! return SCX_ENTER_FONTSTRUCT(XLoadQueryFont(SCX_EXTRACT_DISPLAY(Xdisplay),
s48_extract_string(font_name)));
}
! s48_value scx_Free_Font(s48_value Xdisplay, s48_value Xfontstruct) {
! XFreeFont(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_FONTSTRUCT(Xfontstruct));
return S48_UNSPECIFIC;
}
! s48_value scx_Get_Xfont(s48_value Xfontstruct) {
! return SCX_ENTER_FONT((SCX_EXTRACT_FONTSTRUCT(Xfontstruct))->fid);
}
! s48_value scx_GContext_Font(s48_value Xdisplay, s48_value Xgcontext) {
! GContext gc = XGContextFromGC(SCX_EXTRACT_GCONTEXT(Xgcontext));
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
! return SCX_ENTER_FONTSTRUCT(XQueryFont(dpy, gc));
}
! s48_value scx_Font_Path(s48_value Xdisplay) {
int n, i;
char** sa;
! s48_value ret = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
// Enable/Disable Interrupts ??
! sa = XGetFontPath(SCX_EXTRACT_DISPLAY(Xdisplay), &n);
ret = s48_make_vector(n, S48_FALSE);
S48_GC_PROTECT_1(ret);
***************
*** 43,47 ****
}
! s48_value Set_Font_Path(s48_value Xdisplay, s48_value path) {
int i, n = S48_VECTOR_LENGTH(path);
char* sa[n];
--- 43,47 ----
}
! s48_value scx_Set_Font_Path(s48_value Xdisplay, s48_value path) {
int i, n = S48_VECTOR_LENGTH(path);
char* sa[n];
***************
*** 50,65 ****
sa[i] = s48_extract_string(S48_VECTOR_REF(path, i));
}
! XSetFontPath(EXTRACT_DISPLAY(Xdisplay), sa, n);
return S48_UNSPECIFIC;
}
! s48_value List_Font_Names(s48_value Xdisplay, s48_value pattern) {
char** sa;
int i,n;
! s48_value v;
S48_DECLARE_GC_PROTECT(1);
! XListFonts(EXTRACT_DISPLAY(Xdisplay),
s48_extract_string(pattern),
65535,
--- 50,65 ----
sa[i] = s48_extract_string(S48_VECTOR_REF(path, i));
}
! XSetFontPath(SCX_EXTRACT_DISPLAY(Xdisplay), sa, n);
return S48_UNSPECIFIC;
}
! s48_value scx_List_Font_Names(s48_value Xdisplay, s48_value pattern) {
char** sa;
int i,n;
! s48_value v = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
! XListFonts(SCX_EXTRACT_DISPLAY(Xdisplay),
s48_extract_string(pattern),
65535,
***************
*** 77,88 ****
}
! s48_value List_Fonts(s48_value Xdisplay, s48_value pattern) {
char** sa;
XFontStruct* fsa;
int i,n;
! s48_value v;
S48_DECLARE_GC_PROTECT(1);
! XListFontsWithInfo(EXTRACT_DISPLAY(Xdisplay),
s48_extract_string(pattern),
65535,
--- 77,88 ----
}
! s48_value scx_List_Fonts(s48_value Xdisplay, s48_value pattern) {
char** sa;
XFontStruct* fsa;
int i,n;
! s48_value v = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
! XListFontsWithInfo(SCX_EXTRACT_DISPLAY(Xdisplay),
s48_extract_string(pattern),
65535,
***************
*** 94,98 ****
for (i = 0; i < n; i++) {
S48_VECTOR_SET(v, i, s48_cons(s48_enter_string(sa[i]),
! ENTER_FONTSTRUCT(&fsa[i])));
}
S48_GC_UNPROTECT();
--- 94,98 ----
for (i = 0; i < n; i++) {
S48_VECTOR_SET(v, i, s48_cons(s48_enter_string(sa[i]),
! SCX_ENTER_FONTSTRUCT(&fsa[i])));
}
S48_GC_UNPROTECT();
***************
*** 102,109 ****
}
! s48_value Font_Properties(s48_value Xfontstruct) {
! s48_value v;
int i,n;
! XFontStruct* fs = EXTRACT_FONTSTRUCT(Xfontstruct);
XFontProp* p;
S48_DECLARE_GC_PROTECT(1);
--- 102,109 ----
}
! s48_value scx_Font_Properties(s48_value Xfontstruct) {
! s48_value v = S48_FALSE;
int i,n;
! XFontStruct* fs = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
XFontProp* p;
S48_DECLARE_GC_PROTECT(1);
***************
*** 115,119 ****
for (i = 0; i < n; i++) {
p = fs->properties+i;
! S48_VECTOR_SET(v, i, s48_cons( ENTER_ATOM(p->name),
s48_enter_integer(p->card32) ));
}
--- 115,119 ----
for (i = 0; i < n; i++) {
p = fs->properties+i;
! S48_VECTOR_SET(v, i, s48_cons( SCX_ENTER_ATOM(p->name),
s48_enter_integer(p->card32) ));
}
***************
*** 122,129 ****
}
! s48_value Font_Property(s48_value Xfontstruct, s48_value Xatom) {
unsigned long val;
! if (XGetFontProperty(EXTRACT_FONTSTRUCT(Xfontstruct),
! EXTRACT_ATOM(Xatom),
&val))
return s48_enter_integer(val);
--- 122,129 ----
}
! s48_value scx_Font_Property(s48_value Xfontstruct, s48_value Xatom) {
unsigned long val;
! if (XGetFontProperty(SCX_EXTRACT_FONTSTRUCT(Xfontstruct),
! SCX_EXTRACT_ATOM(Xatom),
&val))
return s48_enter_integer(val);
***************
*** 132,137 ****
}
! s48_value Font_Info(s48_value Xfontstruct) {
! XFontStruct* fs = EXTRACT_FONTSTRUCT(Xfontstruct);
s48_value v = s48_make_vector(9, S48_FALSE);
S48_DECLARE_GC_PROTECT(1);
--- 132,137 ----
}
! s48_value scx_Font_Info(s48_value Xfontstruct) {
! XFontStruct* fs = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
s48_value v = s48_make_vector(9, S48_FALSE);
S48_DECLARE_GC_PROTECT(1);
***************
*** 152,160 ****
}
! static s48_value Char_Info(s48_value Xfontstruct, s48_value index) {
// index must be an integer, #f for 'min or #t for 'max
XCharStruct* cp;
! XFontStruct* p = EXTRACT_FONTSTRUCT(Xfontstruct);
! s48_value v;
S48_DECLARE_GC_PROTECT(1);
--- 152,160 ----
}
! s48_value scx_Char_Info(s48_value Xfontstruct, s48_value index) {
// index must be an integer, #f for 'min or #t for 'max
XCharStruct* cp;
! XFontStruct* p = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
! s48_value v = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
***************
*** 179,194 ****
}
! s48_init_font() {
! S48_EXPORT_FUNCTION(Load_Font);
! S48_EXPORT_FUNCTION(Free_Font);
! S48_EXPORT_FUNCTION(Get_Xfont);
! S48_EXPORT_FUNCTION(GContext_Font);
! S48_EXPORT_FUNCTION(Font_Path);
! S48_EXPORT_FUNCTION(Set_Font_Path);
! S48_EXPORT_FUNCTION(Font_Property);
! S48_EXPORT_FUNCTION(Font_Properties);
! S48_EXPORT_FUNCTION(List_Fonts);
! S48_EXPORT_FUNCTION(List_Font_Names);
! S48_EXPORT_FUNCTION(Font_Info);
! S48_EXPORT_FUNCTION(Char_Info);
}
--- 179,194 ----
}
! void scx_init_font(void) {
! S48_EXPORT_FUNCTION(scx_Load_Font);
! S48_EXPORT_FUNCTION(scx_Free_Font);
! S48_EXPORT_FUNCTION(scx_Get_Xfont);
! S48_EXPORT_FUNCTION(scx_GContext_Font);
! S48_EXPORT_FUNCTION(scx_Font_Path);
! S48_EXPORT_FUNCTION(scx_Set_Font_Path);
! S48_EXPORT_FUNCTION(scx_Font_Property);
! S48_EXPORT_FUNCTION(scx_Font_Properties);
! S48_EXPORT_FUNCTION(scx_List_Fonts);
! S48_EXPORT_FUNCTION(scx_List_Font_Names);
! S48_EXPORT_FUNCTION(scx_Font_Info);
! S48_EXPORT_FUNCTION(scx_Char_Info);
}
Index: gcontext.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/gcontext.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** gcontext.c 2001/07/30 14:15:34 1.6
--- gcontext.c 2001/07/31 14:51:21 1.7
***************
*** 18,28 ****
mask |= GCFunction;
} else if (strcmp(cname, "plane-mask") == 0) {
! GCV->plane_mask = EXTRACT_PIXEL(value);
mask |= GCPlaneMask;
} else if (strcmp(cname, "foreground") == 0) {
! GCV->foreground = EXTRACT_PIXEL(value);
mask |= GCForeground;
} else if (strcmp(cname, "background") == 0) {
! GCV->background = EXTRACT_PIXEL(value);
mask |= GCBackground;
} else if (strcmp(cname, "line-width") == 0) {
--- 18,28 ----
mask |= GCFunction;
} else if (strcmp(cname, "plane-mask") == 0) {
! GCV->plane_mask = SCX_EXTRACT_PIXEL(value);
mask |= GCPlaneMask;
} else if (strcmp(cname, "foreground") == 0) {
! GCV->foreground = SCX_EXTRACT_PIXEL(value);
mask |= GCForeground;
} else if (strcmp(cname, "background") == 0) {
! GCV->background = SCX_EXTRACT_PIXEL(value);
mask |= GCBackground;
} else if (strcmp(cname, "line-width") == 0) {
***************
*** 48,55 ****
mask |= GCArcMode;
} else if (strcmp(cname, "tile") == 0) {
! GCV->tile = EXTRACT_PIXMAP(value);
mask |= GCTile;
} else if (strcmp(cname, "stipple") == 0) {
! GCV->stipple = EXTRACT_PIXMAP(value);
mask |= GCStipple;
} else if (strcmp(cname, "ts-x") == 0) {
--- 48,55 ----
mask |= GCArcMode;
} else if (strcmp(cname, "tile") == 0) {
! GCV->tile = SCX_EXTRACT_PIXMAP(value);
mask |= GCTile;
} else if (strcmp(cname, "stipple") == 0) {
! GCV->stipple = SCX_EXTRACT_PIXMAP(value);
mask |= GCStipple;
} else if (strcmp(cname, "ts-x") == 0) {
***************
*** 60,64 ****
mask |= GCTileStipYOrigin;
} else if (strcmp(cname, "font") == 0) {
! GCV->font = EXTRACT_FONT(value);
mask |= GCFont;
} else if (strcmp(cname, "subwindow-mode") == 0) {
--- 60,64 ----
mask |= GCTileStipYOrigin;
} else if (strcmp(cname, "font") == 0) {
! GCV->font = SCX_EXTRACT_FONT(value);
mask |= GCFont;
} else if (strcmp(cname, "subwindow-mode") == 0) {
***************
*** 75,79 ****
mask |= GCClipYOrigin;
} else if (strcmp(cname, "clip-mask") == 0) {
! GCV->clip_mask = EXTRACT_PIXMAP(value);
mask |= GCClipMask;
} else if (strcmp(cname, "dash-offset") == 0) {
--- 75,79 ----
mask |= GCClipYOrigin;
} else if (strcmp(cname, "clip-mask") == 0) {
! GCV->clip_mask = SCX_EXTRACT_PIXMAP(value);
mask |= GCClipMask;
} else if (strcmp(cname, "dash-offset") == 0) {
***************
*** 90,112 ****
}
! s48_value Create_Gc(s48_value Xdisplay, s48_value Xdrawable, s48_value args) {
XGCValues GCV;
unsigned long mask = AList_To_GCValues(args, &GCV);
! GC Xgcontext = XCreateGC(EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_DRAWABLE(Xdrawable),
mask, &GCV);
! return ENTER_GCONTEXT(Xgcontext);
}
! s48_value Copy_Gc(s48_value Xdisplay, s48_value Xsource, s48_value Xdest) {
! XCopyGC(EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xsource),
! ~0L, EXTRACT_GCONTEXT(Xdest));
return S48_UNSPECIFIC;
}
! s48_value Free_Gc(s48_value Xgcontext, s48_value Xdisplay) {
! XFreeGC(EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext));
return S48_UNSPECIFIC;
}
--- 90,112 ----
}
! s48_value scx_Create_Gc(s48_value Xdisplay, s48_value Xdrawable, s48_value
args) {
XGCValues GCV;
unsigned long mask = AList_To_GCValues(args, &GCV);
! GC Xgcontext = XCreateGC(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_DRAWABLE(Xdrawable),
mask, &GCV);
! return SCX_ENTER_GCONTEXT(Xgcontext);
}
! s48_value scx_Copy_Gc(s48_value Xdisplay, s48_value Xsource, s48_value Xdest)
{
! XCopyGC(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xsource),
! ~0L, SCX_EXTRACT_GCONTEXT(Xdest));
return S48_UNSPECIFIC;
}
! s48_value scx_Free_Gc(s48_value Xgcontext, s48_value Xdisplay) {
! XFreeGC(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xgcontext));
return S48_UNSPECIFIC;
}
***************
*** 119,130 ****
GCDashOffset | GCArcMode)
! s48_value Get_Gc_Values (s48_value Xgcontext, s48_value Xdisplay) {
unsigned long mask = ValidGCValuesBits;
XGCValues GCV;
! s48_value res;
S48_DECLARE_GC_PROTECT(1);
! if (!XGetGCValues (EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext),
mask, &GCV))
res = S48_FALSE;
--- 119,131 ----
GCDashOffset | GCArcMode)
! s48_value scx_Get_Gc_Values (s48_value Xgcontext, s48_value Xdisplay) {
unsigned long mask = ValidGCValuesBits;
XGCValues GCV;
! s48_value res = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
! if (!XGetGCValues (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_GCONTEXT(Xgcontext),
mask, &GCV))
res = S48_FALSE;
***************
*** 134,140 ****
S48_VECTOR_SET(res, 0, Bit_To_Symbol(GCV.function, Func_Syms));
! S48_VECTOR_SET(res, 1, ENTER_PIXEL(GCV.plane_mask));
! S48_VECTOR_SET(res, 2, ENTER_PIXEL(GCV.foreground));
! S48_VECTOR_SET(res, 3, ENTER_PIXEL(GCV.background));
S48_VECTOR_SET(res, 4, s48_enter_integer(GCV.line_width));
S48_VECTOR_SET(res, 5, Bit_To_Symbol(GCV.line_style, Line_Style_Syms));
--- 135,141 ----
S48_VECTOR_SET(res, 0, Bit_To_Symbol(GCV.function, Func_Syms));
! S48_VECTOR_SET(res, 1, SCX_ENTER_PIXEL(GCV.plane_mask));
! S48_VECTOR_SET(res, 2, SCX_ENTER_PIXEL(GCV.foreground));
! S48_VECTOR_SET(res, 3, SCX_ENTER_PIXEL(GCV.background));
S48_VECTOR_SET(res, 4, s48_enter_integer(GCV.line_width));
S48_VECTOR_SET(res, 5, Bit_To_Symbol(GCV.line_style, Line_Style_Syms));
***************
*** 144,152 ****
S48_VECTOR_SET(res, 9, Bit_To_Symbol(GCV.fill_rule, Fill_Rule_Syms));
S48_VECTOR_SET(res, 10, Bit_To_Symbol(GCV.arc_mode, Arc_Mode_Syms));
! S48_VECTOR_SET(res, 11, ENTER_PIXMAP(GCV.tile));
! S48_VECTOR_SET(res, 12, ENTER_PIXMAP(GCV.stipple));
S48_VECTOR_SET(res, 13, s48_enter_integer(GCV.ts_x_origin));
S48_VECTOR_SET(res, 14, s48_enter_integer(GCV.ts_y_origin));
! S48_VECTOR_SET(res, 15, ENTER_FONT(GCV.font));
S48_VECTOR_SET(res, 16, Bit_To_Symbol(GCV.subwindow_mode,
Subwin_Mode_Syms));
--- 145,153 ----
S48_VECTOR_SET(res, 9, Bit_To_Symbol(GCV.fill_rule, Fill_Rule_Syms));
S48_VECTOR_SET(res, 10, Bit_To_Symbol(GCV.arc_mode, Arc_Mode_Syms));
! S48_VECTOR_SET(res, 11, SCX_ENTER_PIXMAP(GCV.tile));
! S48_VECTOR_SET(res, 12, SCX_ENTER_PIXMAP(GCV.stipple));
S48_VECTOR_SET(res, 13, s48_enter_integer(GCV.ts_x_origin));
S48_VECTOR_SET(res, 14, s48_enter_integer(GCV.ts_y_origin));
! S48_VECTOR_SET(res, 15, SCX_ENTER_FONT(GCV.font));
S48_VECTOR_SET(res, 16, Bit_To_Symbol(GCV.subwindow_mode,
Subwin_Mode_Syms));
***************
*** 154,158 ****
S48_VECTOR_SET(res, 18, s48_enter_integer(GCV.clip_x_origin));
S48_VECTOR_SET(res, 19, s48_enter_integer(GCV.clip_y_origin));
! S48_VECTOR_SET(res, 20, ENTER_PIXMAP(GCV.clip_mask));
S48_VECTOR_SET(res, 21, s48_enter_integer(GCV.dash_offset));
S48_VECTOR_SET(res, 22, s48_enter_integer(GCV.dashes));
--- 155,159 ----
S48_VECTOR_SET(res, 18, s48_enter_integer(GCV.clip_x_origin));
S48_VECTOR_SET(res, 19, s48_enter_integer(GCV.clip_y_origin));
! S48_VECTOR_SET(res, 20, SCX_ENTER_PIXMAP(GCV.clip_mask));
S48_VECTOR_SET(res, 21, s48_enter_integer(GCV.dash_offset));
S48_VECTOR_SET(res, 22, s48_enter_integer(GCV.dashes));
***************
*** 162,170 ****
}
! s48_value Change_Gc (s48_value Xgcontext, s48_value Xdisplay, s48_value args)
{
XGCValues GCV;
unsigned long mask = AList_To_GCValues(args, &GCV);
! XChangeGC(EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext),
mask, &GCV);
--- 163,171 ----
}
! s48_value scx_Change_Gc (s48_value Xgcontext, s48_value Xdisplay, s48_value
args) {
XGCValues GCV;
unsigned long mask = AList_To_GCValues(args, &GCV);
! XChangeGC(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xgcontext),
mask, &GCV);
***************
*** 172,176 ****
}
! s48_value Set_Gcontext_Dashlist(s48_value Xgcontext, s48_value Xdisplay,
s48_value dashoffset, s48_value dashlist) {
int n = S48_VECTOR_LENGTH(dashlist);
--- 173,177 ----
}
! s48_value scx_Set_Gcontext_Dashlist(s48_value Xgcontext, s48_value Xdisplay,
s48_value dashoffset, s48_value dashlist) {
int n = S48_VECTOR_LENGTH(dashlist);
***************
*** 181,185 ****
}
! XSetDashes( EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext),
s48_extract_integer(dashoffset), v, n);
--- 182,186 ----
}
! XSetDashes( SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xgcontext),
s48_extract_integer(dashoffset), v, n);
***************
*** 187,191 ****
}
! s48_value Set_Gcontext_Clip_Rectangles (s48_value Xgcontext,
s48_value Xdisplay, s48_value x,
s48_value y, s48_value v,
--- 188,192 ----
}
! s48_value scx_Set_Gcontext_Clip_Rectangles (s48_value Xgcontext,
s48_value Xdisplay, s48_value x,
s48_value y, s48_value v,
***************
*** 210,214 ****
}
! XSetClipRectangles (EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer (x),
(int)s48_extract_integer (y), p, n,
--- 211,216 ----
}
! XSetClipRectangles (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer (x),
(int)s48_extract_integer (y), p, n,
***************
*** 218,226 ****
}
! s48_value Query_Best_Size (s48_value Xdisplay, s48_value width,
s48_value height, s48_value shape) {
unsigned int rw, rh;
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
if (!XQueryBestSize (dpy,
--- 220,228 ----
}
! s48_value scx_Query_Best_Size (s48_value Xdisplay, s48_value width,
s48_value height, s48_value shape) {
unsigned int rw, rh;
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
if (!XQueryBestSize (dpy,
***************
*** 236,247 ****
! void s48_init_gcontext(void) {
! S48_EXPORT_FUNCTION(Create_Gc);
! S48_EXPORT_FUNCTION(Free_Gc);
! S48_EXPORT_FUNCTION(Copy_Gc);
! S48_EXPORT_FUNCTION(Get_Gc_Values);
! S48_EXPORT_FUNCTION(Change_Gc);
! S48_EXPORT_FUNCTION(Set_Gcontext_Dashlist);
! S48_EXPORT_FUNCTION(Set_Gcontext_Clip_Rectangles);
! S48_EXPORT_FUNCTION(Query_Best_Size);
}
--- 238,249 ----
! void scx_init_gcontext(void) {
! S48_EXPORT_FUNCTION(scx_Create_Gc);
! S48_EXPORT_FUNCTION(scx_Free_Gc);
! S48_EXPORT_FUNCTION(scx_Copy_Gc);
! S48_EXPORT_FUNCTION(scx_Get_Gc_Values);
! S48_EXPORT_FUNCTION(scx_Change_Gc);
! S48_EXPORT_FUNCTION(scx_Set_Gcontext_Dashlist);
! S48_EXPORT_FUNCTION(scx_Set_Gcontext_Clip_Rectangles);
! S48_EXPORT_FUNCTION(scx_Query_Best_Size);
}
Index: graphics.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/graphics.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** graphics.c 2001/07/09 13:39:15 1.4
--- graphics.c 2001/07/31 14:51:21 1.5
***************
*** 9,16 ****
! s48_value Clear_Area(s48_value Xwindow, s48_value Xdisplay, s48_value x,
s48_value y, s48_value w, s48_value h, s48_value e){
! Window win = EXTRACT_WINDOW(Xwindow);
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
XClearArea (dpy, win, (int)s48_extract_integer (x),
--- 9,16 ----
! s48_value scx_Clear_Area(s48_value Xwindow, s48_value Xdisplay, s48_value x,
s48_value y, s48_value w, s48_value h, s48_value e){
! Window win = SCX_EXTRACT_WINDOW(Xwindow);
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
XClearArea (dpy, win, (int)s48_extract_integer (x),
***************
*** 23,33 ****
! s48_value Copy_Area(s48_value Xdisplay,
s48_value srcXdrawable,s48_value Xgcontext,s48_value srcx,
s48_value srcy, s48_value width, s48_value height,
s48_value destXdrawable, s48_value destx,s48_value desty){
! XCopyArea (EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(srcXdrawable),
! EXTRACT_DRAWABLE(destXdrawable), EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
(int)s48_extract_integer(width), (int)s48_extract_integer(height),
--- 23,33 ----
! s48_value scx_Copy_Area(s48_value Xdisplay,
s48_value srcXdrawable,s48_value Xgcontext,s48_value srcx,
s48_value srcy, s48_value width, s48_value height,
s48_value destXdrawable, s48_value destx,s48_value desty){
! XCopyArea (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(srcXdrawable),
! SCX_EXTRACT_DRAWABLE(destXdrawable),
SCX_EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
(int)s48_extract_integer(width), (int)s48_extract_integer(height),
***************
*** 46,50 ****
*/
! s48_value Copy_Plane(s48_value Xdisplay, s48_value srcXdrawable,
s48_value Xgcontext, s48_value plane, s48_value srcx,
s48_value srcy, s48_value width, s48_value height,
--- 46,50 ----
*/
! s48_value scx_Copy_Plane(s48_value Xdisplay, s48_value srcXdrawable,
s48_value Xgcontext, s48_value plane, s48_value srcx,
s48_value srcy, s48_value width, s48_value height,
***************
*** 54,59 ****
// For further details, see the man-page.
unsigned long p = (unsigned long)s48_extract_integer(plane);
! XCopyPlane(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(srcXdrawable),
! EXTRACT_DRAWABLE(destXdrawable), EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
(int)s48_extract_integer(width), (int)s48_extract_integer(height),
--- 54,59 ----
// For further details, see the man-page.
unsigned long p = (unsigned long)s48_extract_integer(plane);
! XCopyPlane(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(srcXdrawable),
! SCX_EXTRACT_DRAWABLE(destXdrawable),
SCX_EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
(int)s48_extract_integer(width), (int)s48_extract_integer(height),
***************
*** 66,74 ****
! s48_value Draw_Point(s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x, s48_value y){
! XDrawPoint(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer (y));
--- 66,74 ----
! s48_value scx_Draw_Point(s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x, s48_value y){
! XDrawPoint(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer (y));
***************
*** 88,92 ****
! s48_value Draw_Points (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec, s48_value relative){
--- 88,92 ----
! s48_value scx_Draw_Points (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec, s48_value relative){
***************
*** 97,102 ****
Vector_To_XPoints(vec, p, n);
mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
! XDrawPoints(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
return S48_UNSPECIFIC;
--- 97,102 ----
Vector_To_XPoints(vec, p, n);
mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
! XDrawPoints(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
return S48_UNSPECIFIC;
***************
*** 104,113 ****
! s48_value Draw_Line (s48_value Xdisplay,s48_value Xdrawable,
s48_value Xgcontext, s48_value x1, s48_value y1,
s48_value x2, s48_value y2){
! XDrawLine (EXTRACT_DISPLAY(Xdisplay),EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x1),
(int)s48_extract_integer (y1), (int)s48_extract_integer (x2),
(int)s48_extract_integer (y2));
--- 104,113 ----
! s48_value scx_Draw_Line (s48_value Xdisplay,s48_value Xdrawable,
s48_value Xgcontext, s48_value x1, s48_value y1,
s48_value x2, s48_value y2){
! XDrawLine (SCX_EXTRACT_DISPLAY(Xdisplay),SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x1),
(int)s48_extract_integer (y1), (int)s48_extract_integer (x2),
(int)s48_extract_integer (y2));
***************
*** 116,120 ****
! s48_value Draw_Lines(s48_value Xdisplay, s48_value Xdrawalbe,
s48_value Xgcontext, s48_value vec, s48_value relative){
int n = S48_VECTOR_LENGTH(vec);
--- 116,120 ----
! s48_value scx_Draw_Lines(s48_value Xdisplay, s48_value Xdrawalbe,
s48_value Xgcontext, s48_value vec, s48_value relative){
int n = S48_VECTOR_LENGTH(vec);
***************
*** 123,128 ****
Vector_To_XPoints(vec, p, n);
mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
! XDrawLines(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawalbe),
! EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
return S48_UNSPECIFIC;
--- 123,128 ----
Vector_To_XPoints(vec, p, n);
mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
! XDrawLines(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawalbe),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
return S48_UNSPECIFIC;
***************
*** 130,134 ****
! s48_value Draw_Segments (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int i;
--- 130,134 ----
! s48_value scx_Draw_Segments (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int i;
***************
*** 142,147 ****
p[i].y2 = (int)s48_extract_integer (S48_CAR (seg));
}
! XDrawSegments (EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
--- 142,147 ----
p[i].y2 = (int)s48_extract_integer (S48_CAR (seg));
}
! XDrawSegments (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
***************
*** 149,157 ****
! s48_value Draw_Rectangle(s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x, s48_value y,
s48_value w, s48_value h){
! XDrawRectangle (EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h));
--- 149,157 ----
! s48_value scx_Draw_Rectangle(s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x, s48_value y,
s48_value w, s48_value h){
! XDrawRectangle (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h));
***************
*** 161,169 ****
! s48_value Fill_Rectangle (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x, s48_value y,
s48_value w, s48_value h){
! XFillRectangle(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h));
--- 161,169 ----
! s48_value scx_Fill_Rectangle (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x, s48_value y,
s48_value w, s48_value h){
! XFillRectangle(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h));
***************
*** 189,199 ****
! s48_value Draw_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XRectangle p[n];
Vector_To_XRectangle(vec, p, n);
! XDrawRectangles(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
--- 189,199 ----
! s48_value scx_Draw_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XRectangle p[n];
Vector_To_XRectangle(vec, p, n);
! XDrawRectangles(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
***************
*** 201,211 ****
! s48_value Fill_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XRectangle p[n];
Vector_To_XRectangle(vec, p, n);
! XFillRectangles(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
--- 201,211 ----
! s48_value scx_Fill_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XRectangle p[n];
Vector_To_XRectangle(vec, p, n);
! XFillRectangles(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
***************
*** 213,221 ****
! s48_value Draw_Arc (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
s48_value h, s48_value a1, s48_value a2){
! XDrawArc(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h), (int)s48_extract_integer(a1),
--- 213,221 ----
! s48_value scx_Draw_Arc (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
s48_value h, s48_value a1, s48_value a2){
! XDrawArc(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h), (int)s48_extract_integer(a1),
***************
*** 226,234 ****
! s48_value Fill_Arc (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
s48_value h, s48_value a1, s48_value a2){
! XFillArc(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h), (int)s48_extract_integer(a1),
--- 226,234 ----
! s48_value scx_Fill_Arc (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
s48_value h, s48_value a1, s48_value a2){
! XFillArc(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (int)s48_extract_integer(w),
(int)s48_extract_integer(h), (int)s48_extract_integer(a1),
***************
*** 258,268 ****
! s48_value Draw_Arcs (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XArc p[n];
Vector_To_XArc(vec, p, n);
! XDrawArcs(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
--- 258,268 ----
! s48_value scx_Draw_Arcs (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XArc p[n];
Vector_To_XArc(vec, p, n);
! XDrawArcs(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
***************
*** 270,280 ****
! s48_value Fill_Arcs (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XArc p[n];
Vector_To_XArc(vec, p, n);
! XFillArcs(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
--- 270,280 ----
! s48_value scx_Fill_Arcs (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec){
int n = S48_VECTOR_LENGTH(vec);
XArc p[n];
Vector_To_XArc(vec, p, n);
! XFillArcs(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
return S48_UNSPECIFIC;
***************
*** 282,286 ****
! s48_value Fill_Polygon (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec,
s48_value relative, s48_value shape){
--- 282,286 ----
! s48_value scx_Fill_Polygon (s48_value Xdisplay, s48_value Xdrawable,
s48_value Xgcontext, s48_value vec,
s48_value relative, s48_value shape){
***************
*** 291,296 ****
Vector_To_XPoints(vec, p, n);
mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
! XFillPolygon(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), p, n, sh, mode);
return S48_UNSPECIFIC;
--- 291,296 ----
Vector_To_XPoints(vec, p, n);
mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
! XFillPolygon(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), p, n, sh, mode);
return S48_UNSPECIFIC;
***************
*** 298,318 ****
! void s48_init_graphics(void) {
! S48_EXPORT_FUNCTION(Clear_Area);
! S48_EXPORT_FUNCTION(Copy_Area);
! S48_EXPORT_FUNCTION(Copy_Plane);
! S48_EXPORT_FUNCTION(Draw_Point);
! S48_EXPORT_FUNCTION(Draw_Points);
! S48_EXPORT_FUNCTION(Draw_Line);
! S48_EXPORT_FUNCTION(Draw_Lines);
! S48_EXPORT_FUNCTION(Draw_Segments);
! S48_EXPORT_FUNCTION(Draw_Rectangle);
! S48_EXPORT_FUNCTION(Fill_Rectangle);
! S48_EXPORT_FUNCTION(Draw_Rectangles);
! S48_EXPORT_FUNCTION(Fill_Rectangles);
! S48_EXPORT_FUNCTION(Draw_Arc);
! S48_EXPORT_FUNCTION(Fill_Arc);
! S48_EXPORT_FUNCTION(Draw_Arcs);
! S48_EXPORT_FUNCTION(Fill_Arcs);
! S48_EXPORT_FUNCTION(Fill_Polygon);
}
--- 298,318 ----
! void scx_init_graphics(void) {
! S48_EXPORT_FUNCTION(scx_Clear_Area);
! S48_EXPORT_FUNCTION(scx_Copy_Area);
! S48_EXPORT_FUNCTION(scx_Copy_Plane);
! S48_EXPORT_FUNCTION(scx_Draw_Point);
! S48_EXPORT_FUNCTION(scx_Draw_Points);
! S48_EXPORT_FUNCTION(scx_Draw_Line);
! S48_EXPORT_FUNCTION(scx_Draw_Lines);
! S48_EXPORT_FUNCTION(scx_Draw_Segments);
! S48_EXPORT_FUNCTION(scx_Draw_Rectangle);
! S48_EXPORT_FUNCTION(scx_Fill_Rectangle);
! S48_EXPORT_FUNCTION(scx_Draw_Rectangles);
! S48_EXPORT_FUNCTION(scx_Fill_Rectangles);
! S48_EXPORT_FUNCTION(scx_Draw_Arc);
! S48_EXPORT_FUNCTION(scx_Fill_Arc);
! S48_EXPORT_FUNCTION(scx_Draw_Arcs);
! S48_EXPORT_FUNCTION(scx_Fill_Arcs);
! S48_EXPORT_FUNCTION(scx_Fill_Polygon);
}
Index: main.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/main.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** main.c 2001/07/19 15:29:18 1.4
--- main.c 2001/07/31 14:51:21 1.5
***************
*** 1,29 ****
#include "scheme48.h"
! extern void s48_init_window();
! extern void s48_init_display();
! extern void s48_init_type();
! extern void s48_init_color();
! extern void s48_init_colormap();
! extern void s48_init_pixel();
! extern void s48_init_gcontext();
! extern void s48_init_event();
! extern void s48_init_pixmap();
! extern void s48_init_graphics();
! extern void s48_init_font();
int main(){
! s48_add_external_init(s48_init_window);
! s48_add_external_init(s48_init_display);
! s48_add_external_init(s48_init_type);
! s48_add_external_init(s48_init_color);
! s48_add_external_init(s48_init_color);
! s48_add_external_init(s48_init_colormap);
! s48_add_external_init(s48_init_pixel);
! s48_add_external_init(s48_init_gcontext);
! s48_add_external_init(s48_init_event);
! s48_add_external_init(s48_init_pixmap);
! s48_add_external_init(s48_init_graphics);
! s48_add_external_init(s48_init_font);
s48_main(8000000, 64000,
--- 1,37 ----
#include "scheme48.h"
! extern void scx_init_window();
! extern void scx_init_display();
! extern void scx_init_type();
! extern void scx_init_color();
! extern void scx_init_colormap();
! extern void scx_init_pixel();
! extern void scx_init_gcontext();
! extern void scx_init_event();
! extern void scx_init_pixmap();
! extern void scx_init_graphics();
! extern void scx_init_font();
! extern void scx_init_cursor();
! extern void scx_init_text();
! extern void scx_init_property();
! extern void scx_init_wm();
int main(){
! s48_add_external_init(scx_init_window);
! s48_add_external_init(scx_init_display);
! s48_add_external_init(scx_init_type);
! s48_add_external_init(scx_init_color);
! s48_add_external_init(scx_init_color);
! s48_add_external_init(scx_init_colormap);
! s48_add_external_init(scx_init_pixel);
! s48_add_external_init(scx_init_gcontext);
! s48_add_external_init(scx_init_event);
! s48_add_external_init(scx_init_pixmap);
! s48_add_external_init(scx_init_graphics);
! s48_add_external_init(scx_init_font);
! s48_add_external_init(scx_init_text);
! s48_add_external_init(scx_init_property);
! s48_add_external_init(scx_init_cursor);
! s48_add_external_init(scx_init_wm);
s48_main(8000000, 64000,
Index: pixel.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/pixel.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** pixel.c 2001/06/11 15:25:39 1.3
--- pixel.c 2001/07/31 14:51:21 1.4
***************
*** 2,17 ****
#include "scheme48.h"
! s48_value Black_Pixel(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
! return ENTER_PIXEL( BlackPixel(dpy, DefaultScreen(dpy)) );
}
! s48_value White_Pixel(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
! return ENTER_PIXEL( WhitePixel(dpy, DefaultScreen(dpy)) );
}
! void s48_init_pixel(void) {
! S48_EXPORT_FUNCTION(Black_Pixel);
! S48_EXPORT_FUNCTION(White_Pixel);
}
--- 2,17 ----
#include "scheme48.h"
! s48_value scx_Black_Pixel(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
! return SCX_ENTER_PIXEL( BlackPixel(dpy, DefaultScreen(dpy)) );
}
! s48_value scx_White_Pixel(s48_value Xdisplay) {
! Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
! return SCX_ENTER_PIXEL( WhitePixel(dpy, DefaultScreen(dpy)) );
}
! void scx_init_pixel(void) {
! S48_EXPORT_FUNCTION(scx_Black_Pixel);
! S48_EXPORT_FUNCTION(scx_White_Pixel);
}
Index: pixmap.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/pixmap.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** pixmap.c 2001/07/16 13:22:50 1.4
--- pixmap.c 2001/07/31 14:51:21 1.5
***************
*** 3,56 ****
!
! s48_value Free_Pixmap (s48_value Xdisplay, s48_value Xpixmap){
! XFreePixmap (EXTRACT_DISPLAY(Xdisplay), EXTRACT_PIXMAP(Xpixmap));
return S48_UNSPECIFIC;
}
! s48_value Create_Pixmap (s48_value Xdisplay, s48_value Xdrawable, s48_value w,
s48_value h, s48_value depth){
! Pixmap pm = XCreatePixmap (EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_DRAWABLE(Xdrawable),
(int)s48_extract_integer (w),
(int)s48_extract_integer (h),
(int)s48_extract_integer (depth));
! return S48_ENTER_PIXMAP(pm);
}
! s48_value Create_Bitmap_From_Data (s48_value Xdisplay, s48_value Xdrawable,
s48_value data, s48_value w, s48_value h){
! Pixmap pm = XCreateBitmapFromData (EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_DRAWABLE(Xdrawable),
s48_extract_string(data),
s48_extract_integer(w),
s48_extract_integer(h));
! return S48_ENTER_PIXMAP(pm);
}
! s48_value Create_Pixmap_From_Bitmap_Data (s48_value Xdisplay,
s48_value Xdrawable, s48_value data,
s48_value w,s48_value h, s48_value f,
s48_value b, s48_value d){
! Pixmap pm = XCreatePixmapFromBitmapData (EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_DRAWABLE(Xdrawable),
s48_extract_string(data),
(int)s48_extract_integer(w),
(int)s48_extract_integer(h),
s48_extract_integer(f),
! s48_extract_intgeger(b),
(int)s48_extract_integer(d));
! return S48_ENTER_PIXMAP(pm);
}
! s48_value Read_Bitmap_File (s48_value Xdisplay, s48_value Xdrawable,
s48_value file){
unsigned width, height;
int res, xhot, yhot;
Pixmap bitmap;
! s48_value ret;
S48_DECLARE_GC_PROTECT(1);
// Not used: Disable_Interrupts;
! res = XReadBitmapFile (EXTRACT_DISPLAY(Xdisplay),
EXTRACT_DRAWABLE(Xdrawable),
s48_extract_string(file), &width, &height, &bitmap,
&xhot, &yhot);
--- 3,56 ----
! s48_value scx_Free_Pixmap (s48_value Xdisplay, s48_value Xpixmap){
! XFreePixmap (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_PIXMAP(Xpixmap));
return S48_UNSPECIFIC;
}
! s48_value scx_Create_Pixmap (s48_value Xdisplay, s48_value Xdrawable,
s48_value w,
s48_value h, s48_value depth){
! Pixmap pm = XCreatePixmap (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_DRAWABLE(Xdrawable),
(int)s48_extract_integer (w),
(int)s48_extract_integer (h),
(int)s48_extract_integer (depth));
! return SCX_ENTER_PIXMAP(pm);
}
! s48_value scx_Create_Bitmap_From_Data (s48_value Xdisplay, s48_value
Xdrawable,
s48_value data, s48_value w, s48_value h){
! Pixmap pm = XCreateBitmapFromData (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_DRAWABLE(Xdrawable),
s48_extract_string(data),
s48_extract_integer(w),
s48_extract_integer(h));
! return SCX_ENTER_PIXMAP(pm);
}
! s48_value scx_Create_Pixmap_From_Bitmap_Data (s48_value Xdisplay,
s48_value Xdrawable, s48_value data,
s48_value w,s48_value h, s48_value f,
s48_value b, s48_value d){
! Pixmap pm = XCreatePixmapFromBitmapData (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_DRAWABLE(Xdrawable),
s48_extract_string(data),
(int)s48_extract_integer(w),
(int)s48_extract_integer(h),
s48_extract_integer(f),
! s48_extract_integer(b),
(int)s48_extract_integer(d));
! return SCX_ENTER_PIXMAP(pm);
}
! s48_value scx_Read_Bitmap_File (s48_value Xdisplay, s48_value Xdrawable,
! s48_value file){
unsigned width, height;
int res, xhot, yhot;
Pixmap bitmap;
! s48_value ret = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
// Not used: Disable_Interrupts;
! res = XReadBitmapFile (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
s48_extract_string(file), &width, &height, &bitmap,
&xhot, &yhot);
***************
*** 64,68 ****
ret = s48_cons (s48_enter_integer(height), ret);
ret = s48_cons (s48_enter_integer(width), ret);
! ret = s48_cons (S48_ENTER_PIXMAP(bitmap), ret);
S48_GC_UNPROTECT();
return ret;
--- 64,68 ----
ret = s48_cons (s48_enter_integer(height), ret);
ret = s48_cons (s48_enter_integer(width), ret);
! ret = s48_cons (SCX_ENTER_PIXMAP(bitmap), ret);
S48_GC_UNPROTECT();
return ret;
***************
*** 71,81 ****
! s48_value Write_Bitmap_File (s48_value Xdisplay, s48_value file,
s48_value Xbitmap, s48_value w, s48_value h,
s48_value x, s48_value y){
int ret;
// Not used: Disable_Interrupts;
! ret = XWriteBitmapFile (EXTRACT_DISPLAY(Xdisplay), s48_extract_string(file),
! EXTRACT_PIXMAP(Xbitmap), (int)s48_extract_integer(w),
(int)s48_extract_integer(h),
(int)s48_extract_integer(x),
--- 71,83 ----
! s48_value scx_Write_Bitmap_File (s48_value Xdisplay, s48_value file,
s48_value Xbitmap, s48_value w, s48_value h,
s48_value x, s48_value y){
int ret;
// Not used: Disable_Interrupts;
! ret = XWriteBitmapFile (SCX_EXTRACT_DISPLAY(Xdisplay),
! s48_extract_string(file),
! SCX_EXTRACT_PIXMAP(Xbitmap),
! (int)s48_extract_integer(w),
(int)s48_extract_integer(h),
(int)s48_extract_integer(x),
***************
*** 86,96 ****
! void s48_init_pixmap(void) {
! S48_EXPORT_FUNCTION(Free_Pixmap);
! S48_EXPORT_FUNCTION(Create_Pixmap);
! S48_EXPORT_FUNCTION(Create_Bitmap_From_Data);
! S48_EXPORT_FUNCTION(Create_Pixmap_From_Bitmap_Data);
! S48_EXPORT_FUNCTION(Read_Bitmap_File);
! S48_EXPORT_FUNCTION(Write_Bitmap_File);
}
--- 88,98 ----
! void scx_init_pixmap(void) {
! S48_EXPORT_FUNCTION(scx_Free_Pixmap);
! S48_EXPORT_FUNCTION(scx_Create_Pixmap);
! S48_EXPORT_FUNCTION(scx_Create_Bitmap_From_Data);
! S48_EXPORT_FUNCTION(scx_Create_Pixmap_From_Bitmap_Data);
! S48_EXPORT_FUNCTION(scx_Read_Bitmap_File);
! S48_EXPORT_FUNCTION(scx_Write_Bitmap_File);
}
Index: property.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/property.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** property.c 2001/07/11 14:59:28 1.5
--- property.c 2001/07/31 14:51:21 1.6
***************
*** 2,36 ****
#include "scheme48.h"
- s48_value Sym_Now;
-
/* Should be used with care */
! s48_value Intern_Atom (s48_value Xdisplay, s48_value name){
! Atom a = XInternAtom(EXTRACT_DISPLAY(Xdisplay), s48_extract_string(name),
0);
! return ENTER_ATOM(a);
}
! s48_value Find_Atom (s48_value Xdisplay, s48_value name){
! Atom a = XInternAtom (EXTRACT_DISPLAY(Xdisplay), s48_extract_string(name),
1);
! return ENTER_ATOM(a);
}
! s48_value Atom_Name (s48_value Xdisplay, s48_value a) {
register char *s;
// not used: Disalbe_Interrupts
! s = XGetAtomName (EXTRACT_DISPLAY(Xdisplay), a);
// not used: Enable_Interrupts
return s48_enter_string (s);
}
! s48_value List_Properties (s48_value Xwindow, s48_value Xdisplay){
int n, i;
Atom *ap;
! s48_value v;
S48_DECLARE_GC_PROTECT(1);
//not used: Disable_Interrupts
! ap = XListProperties (EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_WINDOW(Xwindow), &n);
//not used: Enable_Interrupts
v = s48_make_vector (n, S48_NULL);
--- 2,36 ----
#include "scheme48.h"
/* Should be used with care */
! s48_value scx_Intern_Atom (s48_value Xdisplay, s48_value name){
! Atom a = XInternAtom(SCX_EXTRACT_DISPLAY(Xdisplay),
! s48_extract_string(name), 0);
! return SCX_ENTER_ATOM(a);
}
! s48_value scx_Find_Atom (s48_value Xdisplay, s48_value name){
! Atom a = XInternAtom (SCX_EXTRACT_DISPLAY(Xdisplay),
! s48_extract_string(name), 1);
! return SCX_ENTER_ATOM(a);
}
! s48_value scx_Atom_Name (s48_value Xdisplay, s48_value a) {
register char *s;
// not used: Disalbe_Interrupts
! s = XGetAtomName (SCX_EXTRACT_DISPLAY(Xdisplay), a);
// not used: Enable_Interrupts
return s48_enter_string (s);
}
! s48_value scx_List_Properties (s48_value Xwindow, s48_value Xdisplay){
int n, i;
Atom *ap;
! s48_value v = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
//not used: Disable_Interrupts
! ap = XListProperties (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_WINDOW(Xwindow), &n);
//not used: Enable_Interrupts
v = s48_make_vector (n, S48_NULL);
***************
*** 45,49 ****
! s48_value Get_Property(s48_value Xwindow, s48_value Xdisplay, s48_value
Xatom_prop,
s48_value Xatom_type, s48_value start, s48_value len,
s48_value deletep) {
--- 45,50 ----
! s48_value scx_Get_Property(s48_value Xwindow, s48_value Xdisplay,
! s48_value Xatom_prop,
s48_value Xatom_type, s48_value start, s48_value len,
s48_value deletep) {
***************
*** 52,65 ****
unsigned long nitems_ret, bytes_left_ret;
unsigned char* prop_ret;
! s48_value ret, x, v;
S48_DECLARE_GC_PROTECT(2);
! if (!S48_EQ_P(Xatom_type, S48_FALSE)){
req_type = s48_extract_integer(Xatom_type);
}
//not used: Disable_Interrupts
! XGetWindowProperty (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
! s48_extract_integer(Xatom_prop), s48_extract_integer
(start),
s48_extract_integer (len), S48_EXTRACT_BOOLEAN(deletep),
req_type, &actual_type_ret, &format_ret, &nitems_ret,
--- 53,68 ----
unsigned long nitems_ret, bytes_left_ret;
unsigned char* prop_ret;
! s48_value ret = S48_FALSE, x, v = S48_FALSE;
S48_DECLARE_GC_PROTECT(2);
! if (!S48_FALSE_P(Xatom_type)){
req_type = s48_extract_integer(Xatom_type);
}
//not used: Disable_Interrupts
! XGetWindowProperty (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_WINDOW(Xwindow),
! s48_extract_integer(Xatom_prop),
! s48_extract_integer (start),
s48_extract_integer (len), S48_EXTRACT_BOOLEAN(deletep),
req_type, &actual_type_ret, &format_ret, &nitems_ret,
***************
*** 94,98 ****
! s48_value Change_Property(s48_value Xdisplay, s48_value Xwindow,
s48_value Xatom_prop, s48_value Xatom_type,
s48_value format, s48_value mode,
--- 97,101 ----
! s48_value scx_Change_Property(s48_value Xdisplay, s48_value Xwindow,
s48_value Xatom_prop, s48_value Xatom_type,
s48_value format, s48_value mode,
***************
*** 111,115 ****
// Alloca (buf, char*, nitems * (f / sizeof (char)));
for (i = 0; i < nitems; i++) {
! x = (int)s48_extract_integer(s48_VECTOR_REF(data, nitems));
if (f == 16) {
*((short *)buf + i) = x; /* Assumes short is 16 bits */
--- 114,118 ----
// Alloca (buf, char*, nitems * (f / sizeof (char)));
for (i = 0; i < nitems; i++) {
! x = (int)s48_extract_integer(S48_VECTOR_REF(data, nitems));
if (f == 16) {
*((short *)buf + i) = x; /* Assumes short is 16 bits */
***************
*** 118,123 ****
break;
}
! XChangeProperty (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
! EXTRACT_ATOM(Xatom_prop), EXTRACT_ATOM(Xatom_type),
f, m, (unsigned char *)buf, nitems);
return S48_UNSPECIFIC;
--- 121,126 ----
break;
}
! XChangeProperty (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow),
! SCX_EXTRACT_ATOM(Xatom_prop), SCX_EXTRACT_ATOM(Xatom_type),
f, m, (unsigned char *)buf, nitems);
return S48_UNSPECIFIC;
***************
*** 125,137 ****
! s48_value Delete_Property (s48_value Xdisplay, s48_value Xwindow,
s48_value Xatom_prop){
! XDeleteProperty (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
! EXTRACT_ATOM(Xatom_prop));
return S48_UNSPECIFIC;
}
! s48_value Rotate_Properties (s48_value Xdisplay, s48_value Xwindow,
s48_value Xatom_vec, s48_value delta){
int n = S48_VECTOR_LENGTH(Xatom_vec), i;
--- 128,140 ----
! s48_value scx_Delete_Property (s48_value Xdisplay, s48_value Xwindow,
s48_value Xatom_prop){
! XDeleteProperty (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow),
! SCX_EXTRACT_ATOM(Xatom_prop));
return S48_UNSPECIFIC;
}
! s48_value scx_Rotate_Properties (s48_value Xdisplay, s48_value Xwindow,
s48_value Xatom_vec, s48_value delta){
int n = S48_VECTOR_LENGTH(Xatom_vec), i;
***************
*** 140,184 ****
p[i] = s48_extract_integer(S48_VECTOR_REF(Xatom_vec, i));
}
! XRotateWindowProperties(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
p, n, (int)s48_extract_integer(delta));
return S48_UNSPECIFIC;
}
! s48_value Set_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s,
s48_value Xwindow_owner, s48_value time){
! XSetSelectionOwner (EXTRACT_DISPLAY(Xdisplay), EXTRACT_ATOM(Xatom_s),
! EXTRACT_WINDOW(Xwindow_owner), EXTRACT_TIME(time));
return S48_UNSPECIFIC;
}
! s48_value Get_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s){
! return ENTER_WINDOW (XGetSelectionOwner (EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_ATOM(Xatom_s)));
}
! s48_value Convert_Selection (s48_value Xdisplay, s48_value Xatom_s,
s48_value Xatom_t, s48_value Xatom_p,
s48_value Xwindow, s48_value time){
! XConvertSelection(EXTRACT_DISPLAY(Xdisplay), EXTRACT_ATOM(Xatom_s),
! EXTRACT_ATOM(Xatom_t), EXTRACT_ATOM(Xatom_p),
! EXTRACT_WINDOW(Xwindow), EXTRACT_TIME(time));
return S48_UNSPECIFIC;
}
! void s48_init_property(void) {
! S48_EXPORT_FUNCTION(Intern_Atom);
! S48_EXPORT_FUNCTION(Find_Atom);
! S48_EXPORT_FUNCTION(Atom_Name);
! S48_EXPORT_FUNCTION(List_Properties);
! S48_EXPORT_FUNCTION(Get_Property);
! S48_EXPORT_FUNCTION(Change_Property);
! S48_EXPORT_FUNCTION(Delete_Property);
! S48_EXPORT_FUNCTION(Rotate_Properties);
! S48_EXPORT_FUNCTION(Set_Selection_Owner);
! S48_EXPORT_FUNCTION(Get_Selection_Owner);
! S48_EXPORT_FUNCTION(Convert_Selection);
}
--- 143,188 ----
p[i] = s48_extract_integer(S48_VECTOR_REF(Xatom_vec, i));
}
! XRotateWindowProperties(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_WINDOW(Xwindow),
p, n, (int)s48_extract_integer(delta));
return S48_UNSPECIFIC;
}
! s48_value scx_Set_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s,
s48_value Xwindow_owner, s48_value time){
! XSetSelectionOwner (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_ATOM(Xatom_s),
! SCX_EXTRACT_WINDOW(Xwindow_owner),
SCX_EXTRACT_TIME(time));
return S48_UNSPECIFIC;
}
! s48_value scx_Get_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s){
! return SCX_ENTER_WINDOW (XGetSelectionOwner
(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_ATOM(Xatom_s)));
}
! s48_value scx_Convert_Selection (s48_value Xdisplay, s48_value Xatom_s,
s48_value Xatom_t, s48_value Xatom_p,
s48_value Xwindow, s48_value time){
! XConvertSelection(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_ATOM(Xatom_s),
! SCX_EXTRACT_ATOM(Xatom_t), SCX_EXTRACT_ATOM(Xatom_p),
! SCX_EXTRACT_WINDOW(Xwindow), SCX_EXTRACT_TIME(time));
return S48_UNSPECIFIC;
}
! void scx_init_property(void) {
! S48_EXPORT_FUNCTION(scx_Intern_Atom);
! S48_EXPORT_FUNCTION(scx_Find_Atom);
! S48_EXPORT_FUNCTION(scx_Atom_Name);
! S48_EXPORT_FUNCTION(scx_List_Properties);
! S48_EXPORT_FUNCTION(scx_Get_Property);
! S48_EXPORT_FUNCTION(scx_Change_Property);
! S48_EXPORT_FUNCTION(scx_Delete_Property);
! S48_EXPORT_FUNCTION(scx_Rotate_Properties);
! S48_EXPORT_FUNCTION(scx_Set_Selection_Owner);
! S48_EXPORT_FUNCTION(scx_Get_Selection_Owner);
! S48_EXPORT_FUNCTION(scx_Convert_Selection);
}
Index: test
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/test,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
Binary files /tmp/cvsLAza2k and /tmp/cvsen8AGB differ
Index: text.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/text.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** text.c 2001/07/19 13:59:42 1.3
--- text.c 2001/07/31 14:51:21 1.4
***************
*** 4,10 ****
extern XDrawText(), XDrawText16();
-
-
-
/* Calculation of text widths and extents should not be done using
* the Xlib functions. For instance, the values returned by
--- 4,7 ----
***************
*** 17,22 ****
char* s;
XChar2b* s2;
! XFontStruct* font = EXTRACT_XFONTSTRUCT(Xfontstruct);
! int len = (int)S48_VECTOR_LENGHT(text), i, tmp;
if (s48_extract_integer(format) == 2){
for (i = 0; i < len; i++){
--- 14,19 ----
char* s;
XChar2b* s2;
! XFontStruct* font = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
! int len = (int)S48_VECTOR_LENGTH(text), i, tmp;
if (s48_extract_integer(format) == 2){
for (i = 0; i < len; i++){
***************
*** 29,33 ****
else{
for (i = 0; i < len; i++){
! s[i] = (int)S48_extract_integer(S48_VECTOR_REF(text, i));
}
i = XTextWidth(font, s, len);
--- 26,30 ----
else{
for (i = 0; i < len; i++){
! s[i] = (int)s48_extract_integer(S48_VECTOR_REF(text, i));
}
i = XTextWidth(font, s, len);
***************
*** 41,47 ****
char* s;
XChar2b* s2;
! XFontStruct* font = EXTRACT_XFONTSTRUCT(Xfontstruct);
XCharStruct CI;
! int len = (int)S48_VECTOR_LENGHT(text), i, tmp, dir, fasc, fdesc;
if (s48_extract_integer(format) == 2){
for (i = 0; i < len; i++){
--- 38,44 ----
char* s;
XChar2b* s2;
! XFontStruct* font = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
XCharStruct CI;
! int len = (int)S48_VECTOR_LENGTH(text), i, tmp, dir, fasc, fdesc;
if (s48_extract_integer(format) == 2){
for (i = 0; i < len; i++){
***************
*** 87,92 ****
s2[i].byte2 = tmp & 0xff;
}
! XDrawImageString16 (EXTRACT_DISPLAY(Xdisplay),
EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(x),
(int)s48_extract_integer(y), s2, len);
--- 84,89 ----
s2[i].byte2 = tmp & 0xff;
}
! XDrawImageString16 (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(x),
(int)s48_extract_integer(y), s2, len);
***************
*** 95,100 ****
s[i] = (int)s48_extract_integer(S48_VECTOR_REF(text, i));
}
! XDrawImageString (EXTRACT_DISPLAY(Xdisplay), EXTRACT_INTEGER(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(x),
(int)s48_extract_integer(y), s, len);
--- 92,97 ----
s[i] = (int)s48_extract_integer(S48_VECTOR_REF(text, i));
}
! XDrawImageString (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext),
(int)s48_extract_integer(x),
(int)s48_extract_integer(y), s, len);
***************
*** 113,120 ****
len = S48_VECTOR_LENGTH(text);
! if (!len){
return S48_UNSPECIFIC;
}
// count the strings in text:
for (i = 0; i < len; i++){
if (S48_VECTOR_P(S48_VECTOR_REF(text, i))){
--- 110,118 ----
len = S48_VECTOR_LENGTH(text);
! if (len == 0){
return S48_UNSPECIFIC;
}
// count the strings in text:
+
for (i = 0; i < len; i++){
if (S48_VECTOR_P(S48_VECTOR_REF(text, i))){
***************
*** 150,164 ****
set++;
}else{
! item[set].font = EXTRACT_XFONT(S48_VECTOR_REF(text, i));
item[set].delta = 0;
}
}
if (twobyte){
! XDrawText16(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (XTextItem16*) item, nitems);
}else{
! XDrawText(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
! EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), item, nitems);
}
--- 148,162 ----
set++;
}else{
! item[set].font = SCX_EXTRACT_FONT(S48_VECTOR_REF(text, i));
item[set].delta = 0;
}
}
if (twobyte){
! XDrawText16(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), (XTextItem16*) item, nitems);
}else{
! XDrawText(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_DRAWABLE(Xdrawable),
! SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
(int)s48_extract_integer(y), item, nitems);
}
***************
*** 168,172 ****
! void s48_init_text(void) {
S48_EXPORT_FUNCTION(Text_Width);
S48_EXPORT_FUNCTION(Extents_Text);
--- 166,170 ----
! void scx_init_text(void) {
S48_EXPORT_FUNCTION(Text_Width);
S48_EXPORT_FUNCTION(Extents_Text);
Index: type.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/type.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** type.c 2001/07/30 14:18:32 1.10
--- type.c 2001/07/31 14:51:21 1.11
***************
*** 12,16 ****
! s48_value string_to_symbol_binding;
s48_value s48_enter_symbol(char* name) {
--- 12,16 ----
! s48_value string_to_symbol_binding = S48_FALSE;
s48_value s48_enter_symbol(char* name) {
***************
*** 928,932 ****
*/
! void s48_init_type(void) {
S48_GC_PROTECT_GLOBAL(string_to_symbol_binding);
string_to_symbol_binding = s48_get_imported_binding("string->symbol");
--- 928,932 ----
*/
! void scx_init_type(void) {
S48_GC_PROTECT_GLOBAL(string_to_symbol_binding);
string_to_symbol_binding = s48_get_imported_binding("string->symbol");
Index: window.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/window.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** window.c 2001/07/30 14:22:22 1.8
--- window.c 2001/07/31 14:51:21 1.9
***************
*** 75,79 ****
//else // error ...
}
! return EXTRACT_PIXMAP(value);
}
--- 75,79 ----
//else // error ...
}
! return SCX_EXTRACT_PIXMAP(value);
}
***************
*** 88,92 ****
}
! s48_value Create_Window (s48_value Xdisplay, s48_value Xparent, s48_value x,
s48_value y, s48_value width, s48_value height,
s48_value border_width, s48_value attrAlist) {
--- 88,92 ----
}
! s48_value scx_Create_Window (s48_value Xdisplay, s48_value Xparent, s48_value
x,
s48_value y, s48_value width, s48_value height,
s48_value border_width, s48_value attrAlist) {
***************
*** 96,100 ****
Window win;
! win = XCreateWindow( EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xparent),
(int)s48_extract_integer(x),
(int)s48_extract_integer(y),
--- 96,100 ----
Window win;
! win = XCreateWindow( SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_WINDOW(Xparent),
(int)s48_extract_integer(x),
(int)s48_extract_integer(y),
***************
*** 107,119 ****
mask,
&Xattrs );
! return ENTER_WINDOW(win);
}
! s48_value Destroy_Window (s48_value Xdisplay, s48_value Xwindow) {
! XDestroyWindow (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value Change_Window_Attributes(s48_value Xwindow, s48_value Xdisplay,
s48_value attrAlist) {
--- 107,119 ----
mask,
&Xattrs );
! return SCX_ENTER_WINDOW(win);
}
! s48_value scx_Destroy_Window (s48_value Xdisplay, s48_value Xwindow) {
! XDestroyWindow (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value scx_Change_Window_Attributes(s48_value Xwindow, s48_value Xdisplay,
s48_value attrAlist) {
***************
*** 121,130 ****
unsigned long mask = AList_To_XSetWindowAttributes( attrAlist, &Xattrs );
! XChangeWindowAttributes(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
mask, &Xattrs);
return S48_UNSPECIFIC;
}
! s48_value Get_Window_Attributes(s48_value Xdisplay, s48_value Xwindow) {
XWindowAttributes WA;
--- 121,130 ----
unsigned long mask = AList_To_XSetWindowAttributes( attrAlist, &Xattrs );
! XChangeWindowAttributes(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_WINDOW(Xwindow),
mask, &Xattrs);
return S48_UNSPECIFIC;
}
! s48_value scx_Get_Window_Attributes(s48_value Xdisplay, s48_value Xwindow) {
XWindowAttributes WA;
***************
*** 133,137 ****
s48_value res = S48_NULL;
! if (!XGetWindowAttributes(EXTRACT_DISPLAY(Xdisplay),EXTRACT_WINDOW(Xwindow),
&WA))
res = S48_FALSE;
--- 133,137 ----
s48_value res = S48_NULL;
! if
(!XGetWindowAttributes(SCX_EXTRACT_DISPLAY(Xdisplay),SCX_EXTRACT_WINDOW(Xwindow),
&WA))
res = S48_FALSE;
***************
*** 147,152 ****
S48_VECTOR_SET(res, 4, s48_enter_integer(WA.border_width));
S48_VECTOR_SET(res, 5, s48_enter_integer(WA.depth));
! S48_VECTOR_SET(res, 6, ENTER_VISUAL(WA.visual));
! S48_VECTOR_SET(res, 7, ENTER_WINDOW(WA.root));
S48_VECTOR_SET(res, 8, Bit_To_Symbol(WA.class, Class_Syms));
S48_VECTOR_SET(res, 9, Bit_To_Symbol(WA.bit_gravity, Bit_Grav_Syms));
--- 147,152 ----
S48_VECTOR_SET(res, 4, s48_enter_integer(WA.border_width));
S48_VECTOR_SET(res, 5, s48_enter_integer(WA.depth));
! S48_VECTOR_SET(res, 6, SCX_ENTER_VISUAL(WA.visual));
! S48_VECTOR_SET(res, 7, SCX_ENTER_WINDOW(WA.root));
S48_VECTOR_SET(res, 8, Bit_To_Symbol(WA.class, Class_Syms));
S48_VECTOR_SET(res, 9, Bit_To_Symbol(WA.bit_gravity, Bit_Grav_Syms));
***************
*** 155,161 ****
Backing_Store_Syms));
S48_VECTOR_SET(res, 12, s48_enter_integer(WA.backing_planes));
! S48_VECTOR_SET(res, 13, ENTER_PIXEL(WA.backing_pixel));
S48_VECTOR_SET(res, 14, WA.save_under ? S48_TRUE : S48_FALSE );
! S48_VECTOR_SET(res, 15, ENTER_COLORMAP( WA.colormap ));
S48_VECTOR_SET(res, 16, WA.map_installed ? S48_TRUE : S48_FALSE);
S48_VECTOR_SET(res, 17, Bit_To_Symbol( WA.map_state, Map_State_Syms));
--- 155,161 ----
Backing_Store_Syms));
S48_VECTOR_SET(res, 12, s48_enter_integer(WA.backing_planes));
! S48_VECTOR_SET(res, 13, SCX_ENTER_PIXEL(WA.backing_pixel));
S48_VECTOR_SET(res, 14, WA.save_under ? S48_TRUE : S48_FALSE );
! S48_VECTOR_SET(res, 15, SCX_ENTER_COLORMAP( WA.colormap ));
S48_VECTOR_SET(res, 16, WA.map_installed ? S48_TRUE : S48_FALSE);
S48_VECTOR_SET(res, 17, Bit_To_Symbol( WA.map_state, Map_State_Syms));
***************
*** 175,179 ****
}
! s48_value Configure_Window (s48_value Xwindow, s48_value Xdisplay,
s48_value alist) {
unsigned long mask = 0;
--- 175,179 ----
}
! s48_value scx_Configure_Window (s48_value Xwindow, s48_value Xdisplay,
s48_value alist) {
unsigned long mask = 0;
***************
*** 215,251 ****
} // for
! XConfigureWindow (EXTRACT_DISPLAY(Xdisplay),EXTRACT_WINDOW(Xwindow),
mask, &WC);
return S48_UNSPECIFIC;
}
! s48_value Map_Window(s48_value Xwindow, s48_value Xdisplay) {
! XMapWindow(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value Unmap_Window(s48_value Xwindow, s48_value Xdisplay) {
! XUnmapWindow(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value Destroy_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
! XDestroySubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value Map_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
! XMapSubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value Unmap_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
! XUnmapSubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value Circulate_Subwindows(s48_value Xwindow, s48_value Xdisplay,
s48_value dir) {
! XCirculateSubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
S48_FALSE_P(dir) ? RaiseLowest : LowerHighest);
return S48_UNSPECIFIC;
--- 215,251 ----
} // for
! XConfigureWindow
(SCX_EXTRACT_DISPLAY(Xdisplay),SCX_EXTRACT_WINDOW(Xwindow),
mask, &WC);
return S48_UNSPECIFIC;
}
! s48_value scx_Map_Window(s48_value Xwindow, s48_value Xdisplay) {
! XMapWindow(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value scx_Unmap_Window(s48_value Xwindow, s48_value Xdisplay) {
! XUnmapWindow(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value scx_Destroy_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
! XDestroySubwindows(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value scx_Map_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
! XMapSubwindows(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value scx_Unmap_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
! XUnmapSubwindows(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_WINDOW(Xwindow));
return S48_UNSPECIFIC;
}
! s48_value scx_Circulate_Subwindows(s48_value Xwindow, s48_value Xdisplay,
s48_value dir) {
! XCirculateSubwindows(SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_WINDOW(Xwindow),
S48_FALSE_P(dir) ? RaiseLowest : LowerHighest);
return S48_UNSPECIFIC;
***************
*** 268,280 ****
*/
! s48_value Query_Tree (s48_value Xwindow, s48_value Xdisplay) {
Window root, parent, *children;
int i;
unsigned n;
! s48_value v, ret;
S48_DECLARE_GC_PROTECT(2);
! XQueryTree (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
&root, &parent, &children, &n);
--- 268,280 ----
*/
! s48_value scx_Query_Tree (s48_value Xwindow, s48_value Xdisplay) {
Window root, parent, *children;
int i;
unsigned n;
! s48_value v = S48_FALSE, ret = S48_FALSE;
S48_DECLARE_GC_PROTECT(2);
! XQueryTree (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow),
&root, &parent, &children, &n);
***************
*** 287,295 ****
v = s48_make_vector (n, S48_FALSE);
for (i = 0; i < n; i++) {
! S48_VECTOR_SET(v, i, ENTER_WINDOW(children[i]));
}
! S48_VECTOR_SET(ret, 0, ENTER_WINDOW(root));
! S48_VECTOR_SET(ret, 1, ENTER_WINDOW(parent));
S48_VECTOR_SET(ret, 2, v);
--- 287,295 ----
v = s48_make_vector (n, S48_FALSE);
for (i = 0; i < n; i++) {
! S48_VECTOR_SET(v, i, SCX_ENTER_WINDOW(children[i]));
}
! S48_VECTOR_SET(ret, 0, SCX_ENTER_WINDOW(root));
! S48_VECTOR_SET(ret, 1, SCX_ENTER_WINDOW(parent));
S48_VECTOR_SET(ret, 2, v);
***************
*** 298,302 ****
}
! s48_value Translate_Coordinates (s48_value Xdisplay, s48_value srcXwindow,
s48_value x, s48_value y,
s48_value dstXwindow) {
--- 298,302 ----
}
! s48_value scx_Translate_Coordinates (s48_value Xdisplay, s48_value
srcXwindow,
s48_value x, s48_value y,
s48_value dstXwindow) {
***************
*** 307,313 ****
S48_DECLARE_GC_PROTECT(1);
! if (!XTranslateCoordinates (EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_WINDOW(srcXwindow),
! EXTRACT_WINDOW(dstXwindow),
(int)s48_extract_integer (x),
(int)s48_extract_integer (y),
--- 307,313 ----
S48_DECLARE_GC_PROTECT(1);
! if (!XTranslateCoordinates (SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_WINDOW(srcXwindow),
! SCX_EXTRACT_WINDOW(dstXwindow),
(int)s48_extract_integer (x),
(int)s48_extract_integer (y),
***************
*** 320,324 ****
S48_VECTOR_SET(v, 0, s48_enter_integer(rx));
S48_VECTOR_SET(v, 1, s48_enter_integer(ry));
! S48_VECTOR_SET(v, 2, ENTER_WINDOW(child));
S48_GC_UNPROTECT();
--- 320,324 ----
S48_VECTOR_SET(v, 0, s48_enter_integer(rx));
S48_VECTOR_SET(v, 1, s48_enter_integer(ry));
! S48_VECTOR_SET(v, 2, SCX_ENTER_WINDOW(child));
S48_GC_UNPROTECT();
***************
*** 326,332 ****
}
! s48_value Query_Pointer (s48_value Xdisplay, s48_value Xwindow) {
! s48_value v;
Bool ret;
Window root, child;
--- 326,332 ----
}
! s48_value scx_Query_Pointer (s48_value Xdisplay, s48_value Xwindow) {
! s48_value v = S48_FALSE;
Bool ret;
Window root, child;
***************
*** 335,339 ****
S48_DECLARE_GC_PROTECT(1);
! ret = XQueryPointer (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
&root, &child, &r_x, &r_y, &x, &y, &mask);
--- 335,339 ----
S48_DECLARE_GC_PROTECT(1);
! ret = XQueryPointer (SCX_EXTRACT_DISPLAY(Xdisplay),
SCX_EXTRACT_WINDOW(Xwindow),
&root, &child, &r_x, &r_y, &x, &y, &mask);
***************
*** 344,351 ****
S48_VECTOR_SET(v, 1, s48_enter_integer(y));
S48_VECTOR_SET(v, 2, ret ? S48_TRUE : S48_FALSE);
! S48_VECTOR_SET(v, 3, ENTER_WINDOW(root));
S48_VECTOR_SET(v, 4, s48_enter_integer(r_x));
S48_VECTOR_SET(v, 5, s48_enter_integer(r_y));
! S48_VECTOR_SET(v, 6, ENTER_WINDOW(child));
S48_VECTOR_SET(v, 7, Bits_To_Symbols ((unsigned long)mask, State_Syms));
--- 344,351 ----
S48_VECTOR_SET(v, 1, s48_enter_integer(y));
S48_VECTOR_SET(v, 2, ret ? S48_TRUE : S48_FALSE);
! S48_VECTOR_SET(v, 3, SCX_ENTER_WINDOW(root));
S48_VECTOR_SET(v, 4, s48_enter_integer(r_x));
S48_VECTOR_SET(v, 5, s48_enter_integer(r_y));
! S48_VECTOR_SET(v, 6, SCX_ENTER_WINDOW(child));
S48_VECTOR_SET(v, 7, Bits_To_Symbols ((unsigned long)mask, State_Syms));
***************
*** 354,369 ****
}
! s48_value Get_Geometry(s48_value Xdisplay, s48_value Xdrawable) {
! s48_value v;
Window root;
unsigned int x,y,width,height,border_width,depth;
S48_DECLARE_GC_PROTECT(1);
! XGetGeometry(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
&root, &x, &y, &width, &height, &border_width, &depth);
v = s48_make_vector(7, S48_FALSE);
S48_GC_PROTECT_1(v);
! S48_VECTOR_SET(v, 0, ENTER_WINDOW(root));
S48_VECTOR_SET(v, 1, s48_enter_integer(x));
S48_VECTOR_SET(v, 2, s48_enter_integer(y));
--- 354,369 ----
}
! s48_value scx_Get_Geometry(s48_value Xdisplay, s48_value Xdrawable) {
! s48_value v = S48_FALSE;
Window root;
unsigned int x,y,width,height,border_width,depth;
S48_DECLARE_GC_PROTECT(1);
! XGetGeometry(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
&root, &x, &y, &width, &height, &border_width, &depth);
v = s48_make_vector(7, S48_FALSE);
S48_GC_PROTECT_1(v);
! S48_VECTOR_SET(v, 0, SCX_ENTER_WINDOW(root));
S48_VECTOR_SET(v, 1, s48_enter_integer(x));
S48_VECTOR_SET(v, 2, s48_enter_integer(y));
***************
*** 375,395 ****
return v;
}
-
- void s48_init_window(void) {
- S48_EXPORT_FUNCTION(Create_Window);
- S48_EXPORT_FUNCTION(Destroy_Window);
- S48_EXPORT_FUNCTION(Change_Window_Attributes);
- S48_EXPORT_FUNCTION(Get_Window_Attributes);
- S48_EXPORT_FUNCTION(Configure_Window);
- S48_EXPORT_FUNCTION(Map_Window);
- S48_EXPORT_FUNCTION(Unmap_Window);
- S48_EXPORT_FUNCTION(Destroy_Subwindows);
- S48_EXPORT_FUNCTION(Map_Subwindows);
- S48_EXPORT_FUNCTION(Unmap_Subwindows);
- S48_EXPORT_FUNCTION(Circulate_Subwindows);
- S48_EXPORT_FUNCTION(Query_Tree);
- S48_EXPORT_FUNCTION(Translate_Coordinates);
- S48_EXPORT_FUNCTION(Query_Pointer);
- S48_EXPORT_FUNCTION(Get_Geometry);
}
--- 375,394 ----
return v;
}
+ void scx_init_window(void) {
+ S48_EXPORT_FUNCTION(scx_Create_Window);
+ S48_EXPORT_FUNCTION(scx_Destroy_Window);
+ S48_EXPORT_FUNCTION(scx_Change_Window_Attributes);
+ S48_EXPORT_FUNCTION(scx_Get_Window_Attributes);
+ S48_EXPORT_FUNCTION(scx_Configure_Window);
+ S48_EXPORT_FUNCTION(scx_Map_Window);
+ S48_EXPORT_FUNCTION(scx_Unmap_Window);
+ S48_EXPORT_FUNCTION(scx_Destroy_Subwindows);
+ S48_EXPORT_FUNCTION(scx_Map_Subwindows);
+ S48_EXPORT_FUNCTION(scx_Unmap_Subwindows);
+ S48_EXPORT_FUNCTION(scx_Circulate_Subwindows);
+ S48_EXPORT_FUNCTION(scx_Query_Tree);
+ S48_EXPORT_FUNCTION(scx_Translate_Coordinates);
+ S48_EXPORT_FUNCTION(scx_Query_Pointer);
+ S48_EXPORT_FUNCTION(scx_Get_Geometry);
}
Index: wm.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/wm.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** wm.c 2001/07/31 13:15:32 1.3
--- wm.c 2001/07/31 14:51:21 1.4
***************
*** 2,38 ****
#include "scheme48.h"
! s48_value Reparent_Window(s48_value Xdisplay, s48_value Xwindow,
s48_value Xwindow_parent, s48_value x,
s48_value y) {
! XReparentWindow(EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_WINDOW(Xwindow),
! EXTRACT_WINDOW(Xwindow_parent),
(int)s48_extract_integer (x), (int)s48_extract_integer (y));
return S48_UNSPECIFIC;
}
! s48_value Install_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
! XInstallColormap(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap));
return S48_UNSPECIFIC;
}
! s48_value Uninstall_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
! XUninstallColormap(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap));
return S48_UNSPECIFIC;
}
! s48_value List_Installed_Colormaps(s48_value Xdisplay, s48_value Xwindow) {
int i, n;
Colormap *ret;
! s48_value v;
S48_DECLARE_GC_PROTECT(1);
! ret = XListInstalledColormaps(EXTRACT_DISPLAY(Xdisplay),
! EXTRACT_WINDOW(Xwindow),
&n);
v = s48_make_vector (n, S48_FALSE);
S48_GC_PROTECT_1 (v);
for (i = 0; i < n; i++) {
! S48_VECTOR_SET(v, i, ENTER_COLORMAP(ret[i]));
}
XFree ((char *)ret);
--- 2,40 ----
#include "scheme48.h"
! s48_value scx_Reparent_Window(s48_value Xdisplay, s48_value Xwindow,
s48_value Xwindow_parent, s48_value x,
s48_value y) {
! XReparentWindow(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_WINDOW(Xwindow),
! SCX_EXTRACT_WINDOW(Xwindow_parent),
(int)s48_extract_integer (x), (int)s48_extract_integer (y));
return S48_UNSPECIFIC;
}
! s48_value scx_Install_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
! XInstallColormap(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap));
return S48_UNSPECIFIC;
}
! s48_value scx_Uninstall_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
! XUninstallColormap(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_COLORMAP(Xcolormap));
return S48_UNSPECIFIC;
}
! s48_value scx_List_Installed_Colormaps(s48_value Xdisplay, s48_value Xwindow)
{
int i, n;
Colormap *ret;
! s48_value v = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
! ret = XListInstalledColormaps(SCX_EXTRACT_DISPLAY(Xdisplay),
! SCX_EXTRACT_WINDOW(Xwindow),
&n);
v = s48_make_vector (n, S48_FALSE);
S48_GC_PROTECT_1 (v);
for (i = 0; i < n; i++) {
! S48_VECTOR_SET(v, i, SCX_ENTER_COLORMAP(ret[i]));
}
XFree ((char *)ret);
***************
*** 41,69 ****
}
! s48_value Set_Input_Focus(s48_value Xdisplay, s48_value Xwindow,
s48_value revert_to, s48_value time) {
Window focus = PointerRoot;
if (!S48_SYMBOL_P(Xwindow))
! focus = EXTRACT_WINDOW(Xwindow);
! XSetInputFocus (EXTRACT_DISPLAY(Xdisplay), focus,
Symbol_To_Bit (revert_to, Revert_Syms),
! EXTRACT_TIME(time));
return S48_UNSPECIFIC;
}
! s48_value Input_Focus (s48_value Xdisplay) {
Window win;
int revert_to;
! s48_value ret, x;
S48_DECLARE_GC_PROTECT(1);
! XGetInputFocus (EXTRACT_DISPLAY(Xdisplay), &win, &revert_to);
ret = s48_cons (S48_NULL, S48_NULL);
S48_GC_PROTECT_1 (ret);
! x = ENTER_WINDOW(win); S48_SET_CAR(ret, x);
! x = Bit_To_Symbol((unsigned long)revert_to, Revert_Syms);
! S48_SET_CDR(ret, x);
S48_GC_UNPROTECT();
--- 43,70 ----
}
! s48_value scx_Set_Input_Focus(s48_value Xdisplay, s48_value Xwindow,
s48_value revert_to, s48_value time) {
Window focus = PointerRoot;
if (!S48_SYMBOL_P(Xwindow))
! focus = SCX_EXTRACT_WINDOW(Xwindow);
! XSetInputFocus (SCX_EXTRACT_DISPLAY(Xdisplay), focus,
Symbol_To_Bit (revert_to, Revert_Syms),
! SCX_EXTRACT_TIME(time));
return S48_UNSPECIFIC;
}
! s48_value scx_Input_Focus (s48_value Xdisplay) {
Window win;
int revert_to;
! s48_value ret = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
! XGetInputFocus (SCX_EXTRACT_DISPLAY(Xdisplay), &win, &revert_to);
ret = s48_cons (S48_NULL, S48_NULL);
S48_GC_PROTECT_1 (ret);
! S48_SET_CAR(ret, SCX_ENTER_WINDOW(win));
! S48_SET_CDR(ret, Bit_To_Symbol((unsigned long)revert_to, Revert_Syms));
S48_GC_UNPROTECT();
***************
*** 71,79 ****
}
! s48_value General_Warp_Pointer(s48_value dpy, s48_value dst, s48_value dstx,
s48_value dsty, s48_value src, s48_value srcx,
s48_value srcy, s48_value srcw, s48_value srch) {
! XWarpPointer (EXTRACT_DISPLAY(dpy),
! EXTRACT_WINDOW(src), EXTRACT_WINDOW(dst),
(int)s48_extract_integer (srcx),
(int)s48_extract_integer (srcy),
--- 72,80 ----
}
! s48_value scx_General_Warp_Pointer(s48_value dpy, s48_value dst, s48_value
dstx,
s48_value dsty, s48_value src, s48_value srcx,
s48_value srcy, s48_value srcw, s48_value srch) {
! XWarpPointer (SCX_EXTRACT_DISPLAY(dpy),
! SCX_EXTRACT_WINDOW(src), SCX_EXTRACT_WINDOW(dst),
(int)s48_extract_integer (srcx),
(int)s48_extract_integer (srcy),
***************
*** 85,117 ****
}
! s48_value Bell(s48_value Xdisplay, s48_value percent) {
int p = (int)s48_extract_integer(percent);
! XBell (EXTRACT_DISPLAY(Xdisplay), p);
return S48_UNSPECIFIC;
}
! s48_value Set_Access_Control(s48_value Xdisplay, s48_value on) {
! XSetAccessControl (EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(on));
return S48_UNSPECIFIC;
}
! s48_value Change_Save_Set(s48_value Xdisplay, s48_value win, s48_value mode) {
! XChangeSaveSet(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(win),
Symbol_To_Bit(mode, Saveset_Syms));
return S48_UNSPECIFIC;
}
! s48_value Set_Close_Down_Mode(s48_value Xdisplay, s48_value mode) {
! XSetCloseDownMode(EXTRACT_DISPLAY(Xdisplay),
Symbol_To_Bit (mode, Closemode_Syms));
return S48_UNSPECIFIC;
}
! static s48_value Get_Pointer_Mapping(s48_value Xdisplay) {
unsigned char map[256];
int i, n;
s48_value ret;
! n = XGetPointerMapping (EXTRACT_DISPLAY(Xdisplay), map, 256);
ret = s48_make_vector (n, S48_NULL);
for (i = 0; i < n; i++)
--- 86,119 ----
}
! s48_value scx_Bell(s48_value Xdisplay, s48_value percent) {
int p = (int)s48_extract_integer(percent);
! XBell (SCX_EXTRACT_DISPLAY(Xdisplay), p);
return S48_UNSPECIFIC;
}
! s48_value scx_Set_Access_Control(s48_value Xdisplay, s48_value on) {
! XSetAccessControl (SCX_EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(on));
return S48_UNSPECIFIC;
}
! s48_value scx_Change_Save_Set(s48_value Xdisplay, s48_value win,
! s48_value mode) {
! XChangeSaveSet(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(win),
Symbol_To_Bit(mode, Saveset_Syms));
return S48_UNSPECIFIC;
}
! s48_value scx_Set_Close_Down_Mode(s48_value Xdisplay, s48_value mode) {
! XSetCloseDownMode(SCX_EXTRACT_DISPLAY(Xdisplay),
Symbol_To_Bit (mode, Closemode_Syms));
return S48_UNSPECIFIC;
}
! s48_value scx_Get_Pointer_Mapping(s48_value Xdisplay) {
unsigned char map[256];
int i, n;
s48_value ret;
! n = XGetPointerMapping (SCX_EXTRACT_DISPLAY(Xdisplay), map, 256);
ret = s48_make_vector (n, S48_NULL);
for (i = 0; i < n; i++)
***************
*** 120,124 ****
}
! s48_value Set_Pointer_Mapping (s48_value Xdisplay, s48_value map) {
int i, n = S48_VECTOR_LENGTH(map);
unsigned char p[n];
--- 122,126 ----
}
! s48_value scx_Set_Pointer_Mapping (s48_value Xdisplay, s48_value map) {
int i, n = S48_VECTOR_LENGTH(map);
unsigned char p[n];
***************
*** 128,148 ****
p[i] = (int)s48_extract_integer(S48_VECTOR_REF(map, i));
! ret = XSetPointerMapping (EXTRACT_DISPLAY(Xdisplay), p, n);
return (ret == MappingSuccess) ? S48_TRUE : S48_FALSE;
}
! void s48_init_wm(void) {
! S48_EXPORT_FUNCTION(Reparent_Window);
! S48_EXPORT_FUNCTION(Install_Colormap);
! S48_EXPORT_FUNCTION(Uninstall_Colormap);
! S48_EXPORT_FUNCTION(List_Installed_Colormaps);
! S48_EXPORT_FUNCTION(Set_Input_Focus);
! S48_EXPORT_FUNCTION(Input_Focus);
! S48_EXPORT_FUNCTION(General_Warp_Pointer);
! S48_EXPORT_FUNCTION(Bell);
! S48_EXPORT_FUNCTION(Set_Access_Control);
! S48_EXPORT_FUNCTION(Change_Save_Set);
! S48_EXPORT_FUNCTION(Set_Close_Down_Mode);
! S48_EXPORT_FUNCTION(Get_Pointer_Mapping);
! S48_EXPORT_FUNCTION(Set_Pointer_Mapping);
}
--- 130,150 ----
p[i] = (int)s48_extract_integer(S48_VECTOR_REF(map, i));
! ret = XSetPointerMapping (SCX_EXTRACT_DISPLAY(Xdisplay), p, n);
return (ret == MappingSuccess) ? S48_TRUE : S48_FALSE;
}
! void scx_init_wm(void) {
! S48_EXPORT_FUNCTION(scx_Reparent_Window);
! S48_EXPORT_FUNCTION(scx_Install_Colormap);
! S48_EXPORT_FUNCTION(scx_Uninstall_Colormap);
! S48_EXPORT_FUNCTION(scx_List_Installed_Colormaps);
! S48_EXPORT_FUNCTION(scx_Set_Input_Focus);
! S48_EXPORT_FUNCTION(scx_Input_Focus);
! S48_EXPORT_FUNCTION(scx_General_Warp_Pointer);
! S48_EXPORT_FUNCTION(scx_Bell);
! S48_EXPORT_FUNCTION(scx_Set_Access_Control);
! S48_EXPORT_FUNCTION(scx_Change_Save_Set);
! S48_EXPORT_FUNCTION(scx_Set_Close_Down_Mode);
! S48_EXPORT_FUNCTION(scx_Get_Pointer_Mapping);
! S48_EXPORT_FUNCTION(scx_Set_Pointer_Mapping);
}
Index: xlib.h
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/xlib.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** xlib.h 2001/07/19 15:29:18 1.7
--- xlib.h 2001/07/31 14:51:21 1.8
***************
*** 30,57 ****
*/
! #define EXTRACT_DISPLAY(x) (Display*)s48_extract_integer(x)
! #define ENTER_DISPLAY(x) s48_enter_integer((long)x)
! #define EXTRACT_WINDOW(x) (Window)s48_extract_integer(x)
! #define ENTER_WINDOW(x) s48_enter_integer((long)x)
! #define EXTRACT_COLOR(x) (XColor*)S48_EXTRACT_VALUE_POINTER(x, XColor)
! #define EXTRACT_COLORMAP(x) (Colormap)s48_extract_integer(x)
! #define ENTER_COLORMAP(x) s48_enter_integer((long)x)
! #define EXTRACT_PIXEL(x) (unsigned long)s48_extract_integer(x)
! #define ENTER_PIXEL(x) s48_enter_integer((long)x)
! #define EXTRACT_GCONTEXT(x) (GC)s48_extract_integer(x)
! #define ENTER_GCONTEXT(x) s48_enter_integer((long)x)
! #define EXTRACT_PIXMAP(x) (Pixmap)s48_extract_integer(x)
! #define ENTER_PIXMAP(x) s48_enter_integer((long)x)
! #define EXTRACT_DRAWABLE(x) (Drawable)s48_extract_integer(x)
! #define ENTER_ATOM(x) s48_enter_integer((long)x)
! #define EXTRACT_ATOM(x) (Atom)s48_extract_integer(x)
! #define ENTER_TIME(x) x == CurrentTime ? s48_enter_symbol("now") :
s48_enter_integer(x)
! #define EXTRACT_TIME(x) S48_SYMBOL_P(x) ? CurrentTime :
(int)s48_extract_integer(x)
// TODO:
! #define ENTER_VISUAL(x) S48_FALSE
! #define ENTER_FONT(x) s48_enter_integer((long)x)
! #define EXTRACT_FONT(x) (Font)s48_extract_integer(x)
! #define ENTER_FONTSTRUCT(x) s48_enter_integer((long)x)
! #define EXTRACT_FONTSTRUCT(x) (XFontStruct*)s48_extract_integer(x)
--- 30,59 ----
*/
! #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 ? s48_enter_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)
// TODO:
! #define SCX_ENTER_VISUAL(x) S48_FALSE
|