1 .\" $NetBSD: doc.I,v 1.4 1998/01/09 04:12:06 perry Exp $ 2 .\" 3 .\" Copyright (c) 1980, 1993 4 .\" The Regents of the University of California. All rights reserved. 5 .\" 6 .\" Redistribution and use in source and binary forms, with or without 7 .\" modification, are permitted provided that the following conditions 8 .\" are met: 9 .\" 1. Redistributions of source code must retain the above copyright 10 .\" notice, this list of conditions and the following disclaimer. 11 .\" 2. Redistributions in binary form must reproduce the above copyright 12 .\" notice, this list of conditions and the following disclaimer in the 13 .\" documentation and/or other materials provided with the distribution. 14 .\" 3. All advertising materials mentioning features or use of this software 15 .\" must display the following acknowledgement: 16 .\" This product includes software developed by the University of 17 .\" California, Berkeley and its contributors. 18 .\" 4. Neither the name of the University nor the names of its contributors 19 .\" may be used to endorse or promote products derived from this software 20 .\" without specific prior written permission. 21 .\" 22 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 .\" SUCH DAMAGE. 33 .\" 34 .\" @(#)doc.I 8.1 (Berkeley) 6/4/93 35 .\" 36 .Ds 37 .Fd addch ch \*m 38 char ch; 39 .Fd waddch win\*,ch 40 WINDOW *win; 41 char ch; 42 .De 43 Add the character 44 .Vn ch 45 on the window 46 at the current \*y. 47 If the character is a newline 48 (\'\en\') 49 the line will be cleared to the end, 50 and the current \*y will be changed to the 51 beginning off the next line 52 if newline mapping is on, 53 or to the next line at the same x co-ordinate 54 if it is off. 55 A return 56 (\'\er\') 57 will move to the beginning of the line on the window. 58 Tabs 59 (\'\et\') 60 will be expanded into spaces 61 in the normal tabstop positions of 62 every eight characters. 63 \*(Es 64 .Ds 65 .Fd addstr str \*m 66 char *str; 67 .Fd waddstr win\*,str 68 WINDOW *win; 69 char *str; 70 .De 71 Add the string pointed to by 72 .Vn str 73 on the window at the current \*y. 74 \*(Es 75 In this case, it will put on as much as it can. 76 .Ds 77 .Fd box win\*,vert\*,hor 78 WINDOW *win; 79 char vert\*,hor; 80 .De 81 .Pp 82 Draws a box around the window using 83 .Vn vert 84 as the character for drawing the vertical sides, and 85 .Vn hor 86 for drawing the horizontal lines. 87 If scrolling is not allowed, 88 and the window encompasses the lower right-hand corner of the terminal, 89 the corners are left blank to avoid a scroll. 90 .Ds 91 .Fd clear "" \*m 92 .Fd wclear win 93 WINDOW *win; 94 .De 95 Resets the entire window to blanks. 96 If 97 .Vn win 98 is a screen, 99 this sets the clear flag, 100 which will cause a clear-screen sequence to be sent 101 on the next 102 .Fn refresh 103 call. 104 This also moves the current \*y 105 to (0\*,0). 106 .Ds 107 .Fd clearok scr\*,boolf \*m 108 WINDOW *scr; 109 bool boolf; 110 .De 111 Sets the clear flag for the screen 112 .Vn scr . 113 If 114 .Vn boolf 115 is TRUE, 116 this will force a clear-screen to be printed on the next 117 .Fn refresh , 118 or stop it from doing so if 119 .Vn boolf 120 is FALSE. 121 This only works on screens, 122 and, 123 unlike 124 .Fn clear , 125 does not alter the contents of the screen. 126 If 127 .Vn scr 128 is 129 .Vn curscr , 130 the next 131 .Fn refresh 132 call will cause a clear-screen, 133 even if the window passed to 134 .Fn refresh 135 is not a screen. 136 .Ds 137 .Fd clrtobot "" \*m 138 .Fd wclrtobot win 139 WINDOW *win; 140 .De 141 Wipes the window clear from the current \*y to the bottom. 142 This does not force a clear-screen sequence on the next refresh 143 under any circumstances. 144 \*(Nm 145 .Ds 146 .Fd clrtoeol "" \*m 147 .Fd wclrtoeol win 148 WINDOW *win; 149 .De 150 Wipes the window clear from the current \*y to the end of the line. 151 \*(Nm 152 .Ds 153 .Fd delch 154 .Fd wdelch win 155 WINDOW *win; 156 .De 157 Delete the character at the current \*y. 158 Each character after it on the line shifts to the left, 159 and the last character becomes blank. 160 .Ds 161 .Fd deleteln 162 .Fd wdeleteln win 163 WINDOW *win; 164 .De 165 Delete the current line. 166 Every line below the current one will move up, 167 and the bottom line will become blank. 168 The current \*y will remain unchanged. 169 .Ds 170 .Fd erase "" \*m 171 .Fd werase win 172 WINDOW *win; 173 .De 174 Erases the window to blanks without setting the clear flag. 175 This is analagous to 176 .Fn clear , 177 except that it never causes a clear-screen sequence to be generated 178 on a 179 .Fn refresh . 180 \*(Nm 181 .Ds 182 .Fd flushok win\*,boolf \*m 183 WINDOW *win; 184 bool boolf; 185 .De 186 Normally, 187 .Fn refresh 188 .Fn fflush 's 189 .Vn stdout 190 when it is finished. 191 .Fn flushok 192 allows you to control this. 193 if 194 .Vn boolf 195 is TRUE 196 (\c 197 .i i.e. , 198 non-zero) 199 it will do the 200 .Fn fflush ; 201 if it is FALSE. 202 it will not. 203 .Ds 204 .Fd idlok win\*,boolf 205 WINDOW *win; 206 bool boolf; 207 .De 208 Reserved for future use. 209 This will eventually signal to 210 .Fn refresh 211 that it is all right to use the insert and delete line sequences 212 when updating the window. 213 .Ds 214 .Fd insch c 215 char c; 216 .Fd winsch win\*,c 217 WINDOW *win; 218 char c; 219 .De 220 Insert 221 .Vn c 222 at the current \*y 223 Each character after it shifts to the right, 224 and the last character disappears. 225 \*(Es 226 .Ds 227 .Fd insertln 228 .Fd winsertln win 229 WINDOW *win; 230 .De 231 Insert a line above the current one. 232 Every line below the current line 233 will be shifted down, 234 and the bottom line will disappear. 235 The current line will become blank, 236 and the current \*y will remain unchanged. 237 .Ds 238 .Fd move y\*,x \*m 239 int y\*,x; 240 .Fd wmove win\*,y\*,x 241 WINDOW *win; 242 int y\*,x; 243 .De 244 Change the current \*y of the window to 245 .Vn y\*,x ). ( 246 \*(Es 247 .Ds 248 .Fd overlay win1\*,win2 249 WINDOW *win1\*,*win2; 250 .De 251 Overlay 252 .Vn win1 253 on 254 .Vn win2 . 255 The contents of 256 .Vn win1 , 257 insofar as they fit, 258 are placed on 259 .Vn win2 260 at their starting \*y. 261 This is done non-destructively, 262 i.e., blanks on 263 .Vn win1 264 leave the contents of the space on 265 .Vn win2 266 untouched. 267 .Ds 268 .Fd overwrite win1\*,win2 269 WINDOW *win1\*,*win2; 270 .De 271 Overwrite 272 .Vn win1 273 on 274 .Vn win2 . 275 The contents of 276 .Vn win1 , 277 insofar as they fit, 278 are placed on 279 .Vn win2 280 at their starting \*y. 281 This is done destructively, 282 .i i.e. , 283 blanks on 284 .Vn win1 285 become blank on 286 .Vn win2 . 287 .Ds 288 .Fd printw fmt\*,arg1\*,arg2\*,... 289 char *fmt; 290 .Fd wprintw win\*,fmt\*,arg1\*,arg2\*,... 291 WINDOW *win; 292 char *fmt; 293 .De 294 Performs a 295 .Fn printf 296 on the window starting at the current \*y. 297 It uses 298 .Fn addstr 299 to add the string on the window. 300 It is often advisable to use the field width options of 301 .Fn printf 302 to avoid leaving things on the window from earlier calls. 303 \*(Es 304 .Ds 305 .Fd refresh "" \*m 306 .Fd wrefresh win 307 WINDOW *win; 308 .De 309 Synchronize the terminal screen with the desired window. 310 If the window is not a screen, 311 only that part covered by it is updated. 312 \*(Es 313 In this case, it will update whatever it can 314 without causing the scroll. 315 .sp 316 As a special case, 317 if 318 .Fn wrefresh 319 is called with the window 320 .Vn curscr 321 the screen is cleared 322 and repainted as it is currently. 323 This is very useful for allowing the redrawing of the screen 324 when the user has garbage dumped on his terminal. 325 .Ds 326 .Fd standout "" \*m 327 .Fd wstandout win 328 WINDOW *win; 329 .Fd standend "" \*m 330 .Fd wstandend win 331 WINDOW *win; 332 .De 333 Start and stop putting characters onto 334 .i win 335 in standout mode. 336 .Fn standout 337 causes any characters added to the window 338 to be put in standout mode on the terminal 339 (if it has that capability). 340 .Fn standend 341 stops this. 342 The sequences 343 .Vn SO 344 and 345 .Vn SE 346 (or 347 .Vn US 348 and 349 .Vn UE 350 if they are not defined) 351 are used (see Appendix A). 352