Annotation of 43BSDReno/share/doc/ps1/18.curses/appen.B, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted
                      5: .\" provided that the above copyright notice and this paragraph are
                      6: .\" duplicated in all such forms and that any documentation,
                      7: .\" advertising materials, and other materials related to such
                      8: .\" distribution and use acknowledge that the software was developed
                      9: .\" by the University of California, Berkeley.  The name of the
                     10: .\" University may not be used to endorse or promote products derived
                     11: .\" from this software without specific prior written permission.
                     12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     15: .\"
                     16: .\"    @(#)appen.B     6.2 (Berkeley) 3/17/89
                     17: .\"
                     18: .ie t .oh '\*(Ln Appendix B''PS1:18-%'
                     19: .eh 'PS1:18-%''\*(Ln Appendix B'
                     20: .el .he ''\fIAppendix B\fR''
                     21: .bp
                     22: .(x
                     23: .ti 0
                     24: .b "Appendix B"
                     25: .)x
                     26: .nr $1 0
                     27: .sh 1 "The WINDOW structure"
                     28: .pp
                     29: The WINDOW structure is defined as follows:
                     30: .(l I
                     31: .so win_st.gr
                     32: .)l
                     33: .pp
                     34: .Vn \*_cury \\*
                     35: .(f
                     36: \**
                     37: All variables not normally accessed directly by the user
                     38: are named with an initial
                     39: .Bq \*_
                     40: to avoid conflicts with the user's variables.
                     41: .)f
                     42: and
                     43: .Vn \*_curx
                     44: are the current \*y for the window.
                     45: New characters added to the screen
                     46: are added at this point.
                     47: .Vn \*_maxy
                     48: and
                     49: .Vn \*_maxx
                     50: are the maximum values allowed for
                     51: .Vn \*_cury\*,\*_curx ). (
                     52: .Vn \*_begy
                     53: and
                     54: .Vn \*_begx
                     55: are the starting \*y on the terminal for the window,
                     56: .i i.e. ,
                     57: the window's home.
                     58: .Vn \*_cury ,
                     59: .Vn \*_curx ,
                     60: .Vn \*_maxy ,
                     61: and
                     62: .Vn \*_maxx
                     63: are measured relative to
                     64: .Vn \*_begy\*,\*_begx ), (
                     65: not the terminal's home.
                     66: .pp
                     67: .Vn \*_clear
                     68: tells if a clear-screen sequence is to be generated
                     69: on the next
                     70: .Fn refresh
                     71: call.
                     72: This is only meaningful for screens.
                     73: The initial clear-screen for the first
                     74: .Fn refresh
                     75: call is generated by initially setting clear to be TRUE for
                     76: .Vn curscr ,
                     77: which always generates a clear-screen if set,
                     78: irrelevant of the dimensions of the window involved.
                     79: .Vn \*_leave
                     80: is TRUE if the current \*y and the cursor
                     81: are to be left after the last character changed on the terminal,
                     82: or not moved if there is no change.
                     83: .Vn \*_scroll
                     84: is TRUE
                     85: if scrolling is allowed.
                     86: .pp
                     87: .Vn \*_y
                     88: is a pointer to an array of lines which describe the terminal.
                     89: Thus:
                     90: .(l
                     91: \*_y[i]
                     92: .)l
                     93: .lp
                     94: is a pointer to the
                     95: .Vn i th
                     96: line, and
                     97: .(l
                     98: \*_y[i][j]
                     99: .)l
                    100: .lp
                    101: is the
                    102: .Vn j th
                    103: character on the
                    104: .Vn i th
                    105: line.
                    106: .Vn \*_flags
                    107: can have one or more values
                    108: or'd into it.
                    109: .pp
                    110: For windows that are not subwindows,
                    111: .Vn \*_orig
                    112: is
                    113: NULL .
                    114: For subwindows,
                    115: it points to the main window
                    116: to which the window is subsidiary.
                    117: .Vn \*_nextp
                    118: is a pointer in a circularly linked list
                    119: of all the windows which are subwindows of the same main window,
                    120: plus the main window itself.
                    121: .pp
                    122: .Vn \*_firstch
                    123: and
                    124: .Vn \*_lastch
                    125: are
                    126: .Fn malloc ed
                    127: arrays which contain the index of the
                    128: first and last changed characters
                    129: on the line.
                    130: .Vn \*_ch\*_off
                    131: is the x offset for the window
                    132: in the
                    133: .Vn \*_firstch
                    134: and
                    135: .Vn \*_lastch
                    136: arrays for this window.
                    137: For main windows,
                    138: this is always 0;
                    139: for subwindows
                    140: it is the difference between the starting point of the main window
                    141: and that of the subindow,
                    142: so that change markers can be set relative to the main window.
                    143: This makes these markers global in scope.
                    144: .pp
                    145: All subwindows share the appropriate portions of
                    146: .Vn _y ,
                    147: .Vn _firstch ,
                    148: .Vn _lastch ,
                    149: and
                    150: .Vn _insdel
                    151: with their main window.
                    152: .pp
                    153: .b \*_ENDLINE
                    154: says that the end of the line for this window
                    155: is also the end of a screen.
                    156: .b \*_FULLWIN
                    157: says that this window is a screen.
                    158: .b \*_SCROLLWIN
                    159: indicates that the last character of this screen
                    160: is at the lower right-hand corner of the terminal;
                    161: .i i.e. ,
                    162: if a character was put there,
                    163: the terminal would scroll.
                    164: .b \*_FULLLINE
                    165: says that the width of a line is the same as the width of the terminal.
                    166: If
                    167: .b \*_FLUSH
                    168: is set,
                    169: it says that
                    170: .Fn fflush "" "" stdout
                    171: should be called at the end of each
                    172: .Fn refresh
                    173: .b \*_STANDOUT
                    174: says that all characters added to the screen
                    175: are in standout mode.
                    176: .b \*_INSDEL
                    177: is reserved for future use,
                    178: and is set by
                    179: .Fn idlok .
                    180: .Vn \*_firstch
                    181: is set to
                    182: .b \*_NOCHANGE
                    183: for lines on which there has been no change
                    184: since the last
                    185: .Fn refresh .

unix.superglobalmegacorp.com

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