home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / gnu / crssrc16 / appen.b < prev    next >
Text File  |  1993-07-29  |  4KB  |  176 lines

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