.\" Copyright (c) 1985 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms are permitted provided .\" that: (1) source distributions retain this entire copyright notice and .\" comment, and (2) distributions including binaries display the following .\" acknowledgement: ``This product includes software developed by the .\" University of California, Berkeley and its contributors'' in the .\" documentation or other materials provided with the distribution and in .\" all advertising materials mentioning features or use of this software. .\" Neither the name of the University nor the names of its contributors may .\" be used to endorse or promote products derived from this software without .\" specific prior written permission. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" .\" @(#)curses.3 6.5 (Berkeley) 6/23/90 .\" .TH CURSES 3 "June 23, 1990" .UC 4 .SH NAME curses \- screen functions with ``optimal'' cursor motion .SH SYNOPSIS .B cc [ flags ] files .B \-lcurses \-ltermcap [ libraries ] .SH DESCRIPTION These routines give the user a method of updating screens with reasonable optimization. They keep an image of the current screen, and the user sets up an image of a new one. Then the .I refresh() tells the routines to make the current screen look like the new one. In order to initialize the routines, the routine .I initscr() must be called before any of the other routines that deal with windows and screens are used. The routine .I endwin() should be called before exiting. .SH SEE ALSO .I "Screen Updating and Cursor Movement Optimization: A Library Package," Ken Arnold, .br ioctl(2), getenv(3), tty(4), termcap(5) .SH AUTHOR Ken Arnold .SH FUNCTIONS .nf .ds w \fIwin\fP .ds s \fIstdscr\fP .ta 3i addch(ch) add a character to \*s addstr(str) add a string to \*s box(win,vert,hor) draw a box around a window cbreak() set cbreak mode clear() clear \*s clearok(scr,boolf) set clear flag for \fIscr\fP clrtobot() clear to bottom on \*s clrtoeol() clear to end of line on \*s delch() delete a character deleteln() delete a line delwin(win) delete \*w echo() set echo mode endwin() end window modes erase() erase \*s flusok(win,boolf) set flush-on-refresh flag for \fIwin\fP getch() get a char through \*s getcap(name) get terminal capability \fIname\fP getstr(str) get a string through \*s gettmode() get tty modes getyx(win,y,x) get (y,x) co-ordinates inch() get char at current (y,x) co-ordinates initscr() initialize screens insch(c) insert a char insertln() insert a line leaveok(win,boolf) set leave flag for \*w longname(termbuf,name) get long name from \fItermbuf\fP move(y,x) move to (y,x) on \*s mvcur(lasty,lastx,newy,newx) actually move cursor newwin(lines,cols,begin_y,begin_x)\ create a new window nl() set newline mapping nocbreak() unset cbreak mode noecho() unset echo mode nonl() unset newline mapping noraw() unset raw mode overlay(win1,win2) overlay win1 on win2 overwrite(win1,win2) overwrite win1 on top of win2 printw(fmt,arg1,arg2,...) printf on \*s raw() set raw mode refresh() make current screen look like \*s resetty() reset tty flags to stored value savetty() stored current tty flags scanw(fmt,arg1,arg2,...) scanf through \*s scroll(win) scroll \*w one line scrollok(win,boolf) set scroll flag setterm(name) set term variables for name standend() end standout mode standout() start standout mode subwin(win,lines,cols,begin_y,begin_x)\ create a subwindow touchline(win,y,sx,ex) mark line \fIy\fP \fIsx\fP through \fIsy\fP as changed touchoverlap(win1,win2) mark overlap of \fIwin1\fP on \fIwin2\fP as changed touchwin(win) \*(lqchange\*(rq all of \*w unctrl(ch) printable version of \fIch\fP waddch(win,ch) add char to \*w waddstr(win,str) add string to \*w wclear(win) clear \*w wclrtobot(win) clear to bottom of \*w wclrtoeol(win) clear to end of line on \*w wdelch(win,c) delete char from \*w wdeleteln(win) delete line from \*w werase(win) erase \*w wgetch(win) get a char through \*w wgetstr(win,str) get a string through \*w winch(win) get char at current (y,x) in \*w winsch(win,c) insert char into \*w winsertln(win) insert line into \*w wmove(win,y,x) set current (y,x) co-ordinates on \*w wprintw(win,fmt,arg1,arg2,...)\ printf on \*w wrefresh(win) make screen look like \*w wscanw(win,fmt,arg1,arg2,...)\ scanf through \*w wstandend(win) end standout mode on \*w wstandout(win) start standout mode on \*w