|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T x
Length: 5557 (0x15b5) Types: TextFile Names: »xProcs.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« └─⟦2109abc41⟧ └─⟦this⟧ »./X.V10R4/Toolkit/Sx/code/xProcs.c«
/* * $Source: /u1/Sx.new/code/RCS/xProcs.c,v $ * $Header: xProcs.c,v 1.1 86/12/03 16:11:21 swick Exp $ */ #ifndef lint static char *rcsid_xProcs_c = "$Header: xProcs.c,v 1.1 86/12/03 16:11:21 swick Exp $"; #endif lint /* * xProcs.c -- * * This file contains slightly-modified versions of several * of the X library procedures. They are modified to call * Sx routines that keep track of window creations and * deletions. It is important that they are all together * in one file: this guarantees that they all get loaded from * here. If they're in separate files, some might not appear * to be necessary when the Sx library is scanned, but might * be needed by other X procedures not included here. The * result is that the original X procedures would get grabbed * from the X Library. * */ #ifndef lint static char rcsid[] = "$Header: xProcs.c,v 1.1 86/12/03 16:11:21 swick Exp $ SPRITE (Berkeley)"; #endif not lint #include <X/mit-copyright.h> #include "XlibInternal.h" #include "sxInt.h" \f int XCreateTransparencies (parent, defs, ndefs) Window parent; TransparentFrame defs[]; int ndefs; { register Display *dpy; register int i; register TransparentFrame *frame = defs; int nresult = 0; for (i=0;i<ndefs;i++) { register XReq *req; GetReq(X_CreateTransparency, parent); req->param.s[0] = frame->height; req->param.s[1] = frame->width; req->param.s[2] = frame->x; req->param.s[3] = (frame++)->y; } /* Reset request number to its old value, so that error packets are processed correctly. */ dpy->request -= ndefs; frame = defs; for (i=0;i<ndefs;i++) { XRep rep; /* Increment request number so error packets are processed correctly. */ dpy->request++; if (!_XReply(dpy, &rep)) { frame->self = NULL; frame++; } else { frame->self = rep.param.l[0]; frame++; SxWindowCreated(parent, rep.param.l[0]); nresult++; } } return (nresult); } \f Window XCreateTransparency (parent, x, y, width, height) int x, y, width, height; Window parent; { register Display *dpy; register XReq *req; XRep rep; GetReq(X_CreateTransparency, parent); req->param.s[0] = height; req->param.s[1] = width; req->param.s[2] = x; req->param.s[3] = y; if (!_XReply(dpy, &rep)) { return(NULL); } SxWindowCreated(parent, rep.param.l[0]); return (rep.param.l[0]); } \f int XCreateWindowBatch(defs, ndefs) BatchFrame defs[]; int ndefs; { register Display *dpy; register int i; register BatchFrame *frame = defs; int nresult = 0; /* * Issue requests. */ for (i=0; i < ndefs; i++) { register XReq *req; if (frame->type == IsOpaque) { GetReq(X_CreateWindow, frame->parent); req->param.s[0] = frame->height; req->param.s[1] = frame->width; req->param.s[2] = frame->x; req->param.s[3] = frame->y; req->param.l[2] = frame->border; req->param.l[3] = frame->background; req->func = (frame++)->bdrwidth; } else { GetReq(X_CreateTransparency, frame->parent); req->param.s[0] = frame->height; req->param.s[1] = frame->width; req->param.s[2] = frame->x; req->param.s[3] = (frame++)->y; } } /* * Reset request number to its old value, so that * error packets are processed correctly. */ dpy->request -= ndefs; /* * Retrieve replies. */ frame = defs; for (i=0;i<ndefs;i++) { XRep rep; /* * Increment request number so error packets * are processed correctly. */ dpy->request++; if (!_XReply(dpy, &rep)) { (frame++)->self = NULL; } else { SxWindowCreated(frame->parent, rep.param.l[0]); (frame++)->self = rep.param.l[0]; nresult++; } } return (nresult); } \f Window XCreateWindow (parent, x, y, width, height, bdr_width, border, bgnd) int x, y, width, height, bdr_width; Window parent; Pixmap border, bgnd; { register Display *dpy; register XReq *req; XRep rep; GetReq(X_CreateWindow, parent); req->param.s[0] = height; req->param.s[1] = width; req->param.s[2] = x; req->param.s[3] = y; req->param.l[2] = border; req->param.l[3] = bgnd; req->func = bdr_width; if (!_XReply(dpy, &rep)) { return(NULL); } SxWindowCreated(parent, rep.param.l[0]); return (rep.param.l[0]); } \f int XCreateWindows (parent, defs, ndefs) Window parent; OpaqueFrame defs[]; int ndefs; { register Display *dpy; register int i; register OpaqueFrame *frame = defs; int nresult = 0; for (i=0;i<ndefs;i++) { register XReq *req; GetReq(X_CreateWindow, parent); req->param.s[0] = frame->height; req->param.s[1] = frame->width; req->param.s[2] = frame->x; req->param.s[3] = frame->y; req->param.l[2] = frame->border; req->param.l[3] = frame->background; req->func = (frame++)->bdrwidth; } /* Reset request number to its old value, so that error packets are processed correctly. */ dpy->request -= ndefs; frame = defs; for (i=0;i<ndefs;i++) { XRep rep; /* Increment request number so error packets are processed correctly. */ dpy->request++; if (!_XReply(dpy, &rep)) { frame->self = NULL; frame++; } else { SxWindowCreated(parent, rep.param.l[0]); (frame++)->self = rep.param.l[0]; nresult++; } } return (nresult); } \f XDestroySubwindows (w) Window w; { register Display *dpy; register XReq *req; SxSubwindowsDestroyed(w); GetReq(X_DestroySubwindows, w); } \f XDestroyWindow (w) Window w; { register Display *dpy; register XReq *req; SxWindowDestroyed(w); GetReq(X_DestroyWindow, w); }