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

1.1       root        1: .ds ZZ DEVELOPMENT PACKAGE
                      2: .TH GLOBALS 3R "630 MTG"
                      3: .XE "physical"
                      4: .XE "display"
                      5: .XE "Drect"
                      6: .XE "Jrect"
                      7: .XE "mouse"
                      8: .XE "PtCurrent"
                      9: .SH NAME
                     10: globals: physical, display, Drect, Jrect, PtCurrent, P, mouse \- globals describing display and mouse
                     11: .SH SYNOPSIS
                     12: .B #include <dmd.h>
                     13: .sp
                     14: .B Bitmap physical;
                     15: .PP
                     16: .B Bitmap display;
                     17: .PP
                     18: .B Rectangle Drect;
                     19: .PP
                     20: .B Rectangle Jrect;
                     21: .PP
                     22: .B Point PtCurrent;
                     23: .PP
                     24: .B #define XMAX  1024
                     25: .br
                     26: .B #define YMAX 1024
                     27: .PP
                     28: .B #define INSET 4
                     29: .PP
                     30: .B struct Mouse {
                     31: .RS 3
                     32: .br
                     33: .B        Point xy;
                     34: .br
                     35: .B        Point jxy;
                     36: .br
                     37: .B        short buttons;
                     38: .br
                     39: .RE
                     40: .B } mouse;
                     41: .PP
                     42: .B Proc \(**P;
                     43: .SH DESCRIPTION
                     44: Each global is defined when
                     45: .B dmd.h
                     46: is included.
                     47: One should not include these definitions in their source code.
                     48: .PP
                     49: The global
                     50: .I physical
                     51: is a Bitmap describing the entire screen display in screen coordinates.
                     52: .PP
                     53: The global
                     54: .I display
                     55: is the Bitmap describing an individual window in screen coordinates.
                     56: .PP
                     57: The global
                     58: .I Drect
                     59: is a Rectangle
                     60: defining, in screen coordinates,
                     61: the display area available to the program.
                     62: It is not
                     63: .I display.rect,
                     64: which includes the border around each window.
                     65: .PP
                     66: The global
                     67: .I Jrect
                     68: is the Rectangle
                     69: { 0, 0, \fIXMAX\fR, \fIYMAX\fR }
                     70: .PP
                     71: The global
                     72: .I PtCurrent
                     73: is the current Point in window coordinates which the j-routines reference and update.
                     74: .PP
                     75: The values
                     76: .I XMAX
                     77: and
                     78: .I YMAX
                     79: define the maximum x and y coordinates of the 630 MTG screen.
                     80: These are the same as
                     81: .I physical.rect.corner.x
                     82: and
                     83: .IR physical.rect.corner.y .
                     84: .PP
                     85: The value
                     86: .I INSET
                     87: is the width of the border around a window.
                     88: Therefore,
                     89: .I Drect
                     90: is the same as
                     91: .IR inset(display.rect,INSET) .
                     92: .PP
                     93: The global
                     94: .I mouse
                     95: is a location containing the current mouse coordinates
                     96: and button states.
                     97: The Point
                     98: .I xy
                     99: is in screen coordinates;
                    100: .I jxy
                    101: is in window coordinates.
                    102: The
                    103: .I buttons
                    104: field is a bit vector of the mouse buttons that is
                    105: most easily interpreted by using the button macros.
                    106: The
                    107: .I mouse
                    108: is updated only when requested and the window is current.
                    109: .PP
                    110: \f2P\f1 is a special variable used by the 630 MTG. It
                    111: represents the running process. A process can be a downloaded
                    112: application or the default terminal emulator or an internal
                    113: maintenance process. An example is the ``control'' process
                    114: that puts up the button 3 global menu.
                    115: .PP
                    116: The 630 MTG changes the value of \f2P\f1 whenever one process
                    117: switches out through ``wait'' or ``sleep'' to let another run.
                    118: It always points to the running process's table (Proc). Many
                    119: routines either update \f2P\f1 or use \f2P\f1 to find
                    120: information specific to the process. For example, the memory
                    121: allocator ``alloc'' uses \f2P\f1 to record who owns the memory
                    122: requested. The ``allocown'' routine can be used to change
                    123: this.
                    124: .SH SEE ALSO
                    125: alloc(3R), btoc(3R), buttons(3R/3L), inset(3R), resources(3R),
                    126: sleep(3R), structures(3R), transform(3R/3L).
                    127: .SH WARNING
                    128: These globals (except XMAX, YMAX, and INSET) reside in the terminal.
                    129: They cannot be used in automatic initializations of a program's
                    130: global variables.

unix.superglobalmegacorp.com

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