Annotation of 43BSD/contrib/X/Xlib/XGeom.c, revision 1.1

1.1     ! root        1: #include <X/mit-copyright.h>
        !             2: 
        !             3: /* $Header: XGeom.c,v 10.5 86/02/01 15:34:27 tony Rel $/
        !             4: /* Copyright Massachusetts Institute of Technology 1985 */
        !             5: 
        !             6: #include "XlibInternal.h"
        !             7: 
        !             8: /*
        !             9:  * This routine given a user supplied positional argument and a default
        !            10:  * argument (fully qualified) will return the position the window should take
        !            11:  * returns 0 if there was some problem, else the position bitmask.
        !            12:  */
        !            13: 
        !            14: int XGeometry (pos, def, bwidth, fwidth, fheight, xadd, yadd, x, y, width, height)
        !            15: char *pos;                             /* user provided geometry spec */
        !            16: char *def;                             /* default geometry spec for window */
        !            17: int bwidth;                            /* border width */
        !            18: int fwidth, fheight;                   /* size of position units */
        !            19: int xadd, yadd;                                /* any additional interior space */
        !            20: register *x, *y, *width, *height;      /* always set on successful RETURN */
        !            21: {
        !            22:        int px, py, pwidth, pheight;    /* returned values from parse */
        !            23:        int dx, dy, dwidth, dheight;    /* default values from parse */
        !            24:        int pmask, dmask;               /* values back from parse */
        !            25: 
        !            26:        pmask = XParseGeometry(pos, &px, &py, &pwidth, &pheight);
        !            27:        dmask = XParseGeometry(def, &dx, &dy, &dwidth, &dheight);
        !            28: 
        !            29:        /* set default values */
        !            30:        *x = (dmask & XNegative) ? 
        !            31:            DisplayWidth()  + dx - dwidth * fwidth - 2 * bwidth - xadd : dx;
        !            32:        *y = (dmask & YNegative) ? 
        !            33:            DisplayHeight() + dy - dheight * fheight - 2 * bwidth - yadd : dy;
        !            34:        *width  = dwidth;
        !            35:        *height = dheight;
        !            36: 
        !            37:        if (pmask & WidthValue)  *width  = pwidth;
        !            38:        if (pmask & HeightValue) *height = pheight;
        !            39: 
        !            40:        if (pmask & XValue)
        !            41:            *x = (pmask & XNegative) ?
        !            42:              DisplayWidth()  + px - *width * fwidth - 2 * bwidth - xadd : px;
        !            43:        if (pmask & YValue)
        !            44:            *y = (pmask & YNegative) ?
        !            45:              DisplayHeight() + py - *height * fheight - 2 * bwidth - xadd: py;
        !            46: 
        !            47:        return (pmask);
        !            48: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.