|
|
1.1 ! root 1: #include "copyright.h" ! 2: ! 3: /* $Header: XGeom.c,v 1.2 87/09/11 08:09:25 toddb Exp $/ ! 4: /* Copyright Massachusetts Institute of Technology 1985 */ ! 5: ! 6: #include "Xlibint.h" ! 7: #include "Xutil.h" ! 8: ! 9: /* ! 10: * This routine given a user supplied positional argument and a default ! 11: * argument (fully qualified) will return the position the window should take ! 12: * returns 0 if there was some problem, else the position bitmask. ! 13: */ ! 14: ! 15: int XGeometry (dpy, screen, pos, def, bwidth, fwidth, fheight, xadd, yadd, x, y, width, height) ! 16: Display *dpy; /* user's display connection */ ! 17: int screen; /* screen on which to do computation */ ! 18: char *pos; /* user provided geometry spec */ ! 19: char *def; /* default geometry spec for window */ ! 20: unsigned int bwidth; /* border width */ ! 21: unsigned int fwidth, fheight; /* size of position units */ ! 22: int xadd, yadd; /* any additional interior space */ ! 23: register *x, *y, *width, *height; /* always set on successful RETURN */ ! 24: { ! 25: int px, py, pwidth, pheight; /* returned values from parse */ ! 26: int dx, dy, dwidth, dheight; /* default values from parse */ ! 27: int pmask, dmask; /* values back from parse */ ! 28: ! 29: pmask = XParseGeometry(pos, &px, &py, &pwidth, &pheight); ! 30: dmask = XParseGeometry(def, &dx, &dy, &dwidth, &dheight); ! 31: ! 32: /* set default values */ ! 33: *x = (dmask & XNegative) ? ! 34: DisplayWidth(dpy, screen) + dx - dwidth * fwidth - ! 35: 2 * bwidth - xadd : dx; ! 36: *y = (dmask & YNegative) ? ! 37: DisplayHeight(dpy, screen) + dy - dheight * fheight - ! 38: 2 * bwidth - yadd : dy; ! 39: *width = dwidth; ! 40: *height = dheight; ! 41: ! 42: if (pmask & WidthValue) *width = pwidth; ! 43: if (pmask & HeightValue) *height = pheight; ! 44: ! 45: if (pmask & XValue) ! 46: *x = (pmask & XNegative) ? ! 47: DisplayWidth(dpy, screen) + px - *width * fwidth - ! 48: 2 * bwidth - xadd : px; ! 49: if (pmask & YValue) ! 50: *y = (pmask & YNegative) ? ! 51: DisplayHeight(dpy, screen) + py - *height * fheight - ! 52: 2 * bwidth - yadd : py; ! 53: return (pmask); ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.