Annotation of researchv10dc/630/man/src/p_man/man3/box.3r, revision 1.1.1.1

1.1       root        1: .TH BOX 3R "630 MTG"
                      2: .XE "box()"
                      3: .SH NAME
                      4: box \- draw a Rectangle
                      5: .SH SYNOPSIS
                      6: .ft B
                      7: #include <dmd.h>
                      8: .sp
                      9: void box (bp, r, f)
                     10: .br
                     11: Bitmap \(**bp;
                     12: .br
                     13: Rectangle r;
                     14: .br
                     15: Code f;
                     16: .SH DESCRIPTION
                     17: The
                     18: .I box
                     19: function
                     20: draws the Rectangle
                     21: .I r
                     22: in the Bitmap
                     23: .I bp
                     24: using function Code
                     25: .IR f .
                     26: The coordinates of the corner point of the Rectangle
                     27: .I r
                     28: are decremented by one
                     29: before the outline is drawn so that abutting
                     30: Rectangles do not have common edges.
                     31: .SH EXAMPLE
                     32: The following subroutine can be used to draw a rectangle in the window and
                     33: have its position follow mouse movement.
                     34: .PP
                     35: .RS
                     36: .ft CM
                     37: .nf
                     38: .S -4
                     39: #include <dmd.h>
                     40: 
                     41: int request();
                     42: int wait();
                     43: Rectangle raddp();
                     44: void box();
                     45: int eqpt();
                     46: 
                     47: trackRect(tr)
                     48: Rectangle tr;
                     49: {
                     50:        Rectangle r;
                     51:        Point     p,q;
                     52:        int half_height, half_width;
                     53: 
                     54:        half_width  = (tr.corner.x - tr.origin.x)/2;
                     55:        half_height  = (tr.corner.y - tr.origin.y)/2;
                     56:        request (MOUSE);
                     57:        while (!button1())
                     58:                wait(MOUSE);
                     59:        q = mouse.xy;
                     60:        /*
                     61:         * position the rectangle with mouse position
                     62:         * in the middle
                     63:         */
                     64:        r = raddp (tr, Pt(q.x - half_width,
                     65:                   q.y - half_height));
                     66:        box (&display, r, F_XOR);
                     67:        do {
                     68:                /*
                     69:                 * NOTE:  This do-while loop does not give up
                     70:                 * the CPU for other processes to run.
                     71:                 */
                     72:                p = mouse.xy;
                     73:                if (!eqpt(p, q)){
                     74:                /* allow update of mouse and video refresh */
                     75:                nap(2);
                     76:                box (&display, r, F_XOR);
                     77:                r = raddp (tr, Pt(p.x - half_width,
                     78:                           p.y - half_height));
                     79:                        nap(2);
                     80:                        box (&display, r, F_XOR);
                     81:                        q = p;
                     82:                }
                     83:        } while( bttn(1) );
                     84: }\fR
                     85: .fi
                     86: .ft R
                     87: .RE
                     88: .S +4
                     89: .SH SEE ALSO
                     90: structures(3R).

unix.superglobalmegacorp.com

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