Annotation of researchv9/X11/src/X.V11R1/clients/uwm/GridBox.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char *rcsid_StoreGridBox_c = "$Header: GridBox.c,v 1.3 87/09/11 08:21:55 toddb Exp $";
                      3: #endif lint
                      4: 
                      5: #include <X11/copyright.h>
                      6: 
                      7: /*
                      8:  * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
                      9:  *
                     10:  *                         All Rights Reserved
                     11:  *
                     12:  * Permission to use, copy, modify, and distribute this software and its
                     13:  * documentation for any purpose and without fee is hereby granted,
                     14:  * provided that the above copyright notice appear in all copies and that
                     15:  * both that copyright notice and this permission notice appear in
                     16:  * supporting documentation, and that the name of Digital Equipment
                     17:  * Corporation not be used in advertising or publicity pertaining to
                     18:  * distribution of the software without specific, written prior permission.
                     19:  *
                     20:  *
                     21:  * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
                     22:  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
                     23:  * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
                     24:  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                     25:  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
                     26:  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
                     27:  * SOFTWARE.
                     28:  */
                     29: 
                     30: 
                     31: 
                     32: /*
                     33:  * MODIFICATION HISTORY
                     34:  *
                     35:  * 000 -- M. Gancarz, DEC Ultrix Engineering Group
                     36:  * 001 -- Loretta Guarino Reid, DEC Ultrix Engineering Group,
                     37:     Western Software Lab. Converted to X11.
                     38:  */
                     39: 
                     40: #ifndef lint
                     41: static char *sccsid = "@(#)StoreGridBox.c      3.8     1/24/86";
                     42: #endif
                     43: /*
                     44:  *     StoreGridBox - This subroutine is used by the X Window Manager (xwm)
                     45:  *     to store the vertices for the movement resize grid and box in a
                     46:  *     vertex list.
                     47:  */
                     48: 
                     49: #include "uwm.h"
                     50: 
                     51: /*
                     52:  * Store the vertices for the movement resize grid and box in a vertex list.
                     53:  */
                     54: int StoreGridBox(box, ulx, uly, lrx, lry)
                     55: register XSegment box[];
                     56: int ulx;                       /* Upper left X coordinate. */
                     57: int uly;                       /* Upper left Y coordinate. */
                     58: int lrx;                       /* Lower right X coordinate. */
                     59: int lry;                       /* Lower right Y coordinate. */
                     60: {
                     61:     register int xthird, ythird;
                     62:     int x1third, y1third;
                     63:     int x2third, y2third;
                     64: 
                     65:     /*
                     66:      * Xor in.
                     67:      */
                     68:     box[0].x1 = ulx; box[0].y1 = uly;
                     69:     box[0].x2 = lrx; box[0].y2 = uly;
                     70: 
                     71:     box[1].x1 = lrx; box[1].y1 = uly;
                     72:     box[1].x2 = lrx; box[1].y2 = lry;
                     73: 
                     74:     box[2].x1 = lrx; box[2].y1 = lry;
                     75:     box[2].x2 = ulx; box[2].y2 = lry;
                     76: 
                     77:     box[3].x1 = ulx; box[3].y1 = lry;
                     78:     box[3].x2 = ulx; box[3].y2 = uly;
                     79: 
                     80: 
                     81:     /*
                     82:      * These are the X and Y calculations for the parts of the grid that
                     83:      * are dependent on the division by 3 calculations.
                     84:      */
                     85: 
                     86:     /*
                     87:      * Y dimension third.
                     88:      */
                     89:     ythird = (lry - uly) / 3;
                     90:     y1third = uly + ythird;
                     91:     y2third = y1third + ythird;
                     92:    
                     93:     /*
                     94:      * X dimension third.
                     95:      */
                     96:     xthird = (lrx - ulx) / 3;
                     97:     x1third = ulx + xthird;
                     98:     x2third = x1third + xthird;
                     99: 
                    100:     box[4].x1 = x1third; box[4].y1 = lry;
                    101:     box[4].x2 = x1third; box[4].y2 = uly;
                    102: 
                    103:     box[5].x1 = x2third; box[5].y1 = lry;
                    104:     box[5].x2 = x2third; box[5].y2 = uly;
                    105: 
                    106:     box[6].x1 = ulx; box[6].y1 = y1third;
                    107:     box[6].x2 = lrx; box[6].y2 = y1third;
                    108: 
                    109:     box[7].x1 = ulx; box[7].y1 = y2third;
                    110:     box[7].x2 = lrx; box[7].y2 = y2third;
                    111: 
                    112:     /*
                    113:      * Do not erase if we're freezing the screen.
                    114:      */
                    115:     if (Freeze)
                    116:         return(8);
                    117: 
                    118:     /*
                    119:      * From here on we're retracing the segments to clear the
                    120:      * grid using GXxor.
                    121:      */
                    122:     box[8].x1 = ulx; box[8].y1 = uly;
                    123:     box[8].x2 = lrx; box[8].y2 = uly;
                    124: 
                    125:     box[9].x1 = lrx; box[9].y1 = uly;
                    126:     box[9].x2 = lrx; box[9].y2 = lry;
                    127: 
                    128:     box[10].x1 = lrx; box[10].y1 = lry;
                    129:     box[10].x2 = ulx; box[10].y2 = lry;
                    130: 
                    131:     box[11].x1 = ulx; box[11].y1 = lry;
                    132:     box[11].x2 = ulx; box[11].y2 = uly;
                    133: 
                    134:     box[12].x1 = x1third; box[12].y1 = lry;
                    135:     box[12].x2 = x1third; box[12].y2 = uly;
                    136: 
                    137:     box[13].x1 = x2third; box[13].y1 = lry;
                    138:     box[13].x2 = x2third; box[13].y2 = uly;
                    139: 
                    140:     box[14].x1 = ulx; box[14].y1 = y1third;
                    141:     box[14].x2 = lrx; box[14].y2 = y1third;
                    142: 
                    143:     box[15].x1 = ulx; box[15].y1 = y2third;
                    144:     box[15].x2 = lrx; box[15].y2 = y2third;
                    145: 
                    146: 
                    147:     /*
                    148:      * Total number of segments is 16.
                    149:      */
                    150:     return(16);
                    151: }

unix.superglobalmegacorp.com

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