-
Notifications
You must be signed in to change notification settings - Fork 2
/
curses.3
248 lines (220 loc) · 8.58 KB
/
curses.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
.TH CURSES 3
.SH NAME
curses \- screen/window management library
.SH SYNOPSIS
cc demo.c -lcurses
.SH DESCRIPTION
Curses is a library of screen and window management routines. It is modeled
after the UNIX curses and ncurses libraries. Normally, programs written for
curses should be easily ported to UNIX, and vice versa.
.PP
To use the routines, the function initscr() must first be called.
This creates two 'windows' for the user: stdscr and curscr. Stdscr is the
default
window for the user to make changes on, and curscr reflects the current
contents of the physical display screen. The user writes or edits the stdscr
window to his liking, then calls the refresh() function to make curscr
and the physical screen look like stdscr. When the user program terminates,
it should call the endwin() function to restore things to normal.
.PP
There are all sorts of window manipulation routines available to the
programmer: auxiliary windows may be created, edited, moved and deleted. The
terminal may be set in many different modes, output text may be attributed
with blink, blank, bold and reverse attributes. Screen colors may also be
set, foreground and background. There are window-specific
printf- and scanf-like routines, routines for scrolling, box-drawing,
window overlaying, clearing routines etc.
.PP
For more and detailed information, see the library source codes. All curses
functions are preceded by a complete description.
.SH FUNCTIONS
Below is a list over the available functions, together with a brief
description of what they do. In general, functions whose names start with 'w'
differ from the one without 'w' (like wmove vs. move) signify that
a specific window is used. Without a 'w', sdtscr is implied. The functions
that start with 'mv' before the 'genereic' function name signify that a
cursor motion should be made before the actual work. 'mv' and 'w' combine
as expected.
.PP
Most routines that return an int will return the manifest constant ERR if
there is a failure during execution. Routines that return a char actually
return an int, so that ERR does not conflict with the character code 0xff.
All characters from 0 to 0xff are allowed for usage with curses.
.PP
Some routines, like {mv}{w} printw() and {mv}{w}scanw() return a meaningful
positive value if the operation is successful.
.PP
The curses package uses some predefined types, variables and manifest
constants that are also available to the programmer. There are also a few
globally accessible variables that should not be touched by the application
program. Those untouchable variables have names starting with an
underscore (_) to avoid conflicts. The user-accessible types, variables
and constants are (there are a number of other constants defining character
attribute names and function key names - consult <curses.h> for details):
.sp
.nf
.ta 3i
(manifest constants)
.RS
TRUE boolean true
FALSE boolean false
ERR unsuccessfull operation
OK successfull operation
.RE
.sp
(types)
.RS
WINDOW a window structure type
bool boolean flag type
.RE
.sp
(variables)
.RS
WINDOW curscr physical display image
WINDOW stdscr default user drawing board
int LINES terminal height
int COLS terminal width
int NONL \\n causes CR and LF when TRUE
.RE
.sp
.fi
The following is an alphabetical list of the curses functions, together
with their types, parameters and a short comment for each (win is a window,
ch, vc, hc are characters, buf is a character buffer, attrs is an
attribute bit map, bf is a boolean flag. Note that `characters' in this
context usually can have 16 bits):
.nf
.sp
int waddch(win,ch) put char in stdscr
int addch(ch)
int mvaddch(y,x,ch)
int mvwaddch(win,y,x,ch)
int waddstr(win,str) put string in stdscr
int addstr(str)
int mvaddstr(y,x,str)
int mvwaddstr(win,y,x,str)
void wattroff(win,attrs) clear attribute(s) in window
void attroff(attrs)
void wattron(win,attrs) add attribute(s) in window
void attron(attrs)
void wattrset(win,attrs) set window char attributes
void attrset(attrs)
int baudrate() dummy for compatibility
void beep() ring the bell or visible bell if no bell available
void flash() flash terminal screen or rings bell if no visible bell available
void wbox(win,miny,minx,maxy,maxx,vc,hc) box in a window, with given characters
void box(win,vc,hc)
void cbreak() set terminal cbreak mode
void wclear(win) clear stdscr
void clear()
void clearok(win,bf) marks window for screen clear
int wclrtobot(win) clear from cursor to end of line and all lines down this line
int clrtobot()
int mvclrtoeol(y,x)
int mvwclrtobot(win,y,x)
int wclrtoeol(win) clear from cursor to end of line
int clrtoeol()
int mvclrtoeol(y,x)
int mvwclrtoeol(win,y,x)
int wdelch(win) delete a char in a window
int delch()
int mvdelch(y,x)
int mvwdelch(win,y,x)
int wdeleteln(win) delete a line in a window
int deleteln()
int mvdeleteln(y,x)
int mvwdeleteln(win,y,x)
void delwin(win) delete a window or a subwindow
void doupdate() update physical screen
void echo() set terminal echo mode
int endwin() cleanup and curses finitialization
void werase(win) erase a window
void erase()
int erasechar() return char delete character
int fixterm() dummy for compatibility
void flushinp() kill pending keyboard input
int wgetch(win) get char via a window
int getch()
int mvgetch(y,x)
int mvwgetch(win,y,x)
int wgetstr(win,str) get string via window to a buffer
int getstr(str)
int mvgetstr(y,x,str)
int mvwgetstr(win,y,x,str)
void getyx(win,y,x) get a window's cursor position
int gettmode() dummy for compatibility
void idlok(win,bf) dummy for compatibility
WINDOW *initscr() curses initialization (ret stdscr or NULL)
int winch(win) get char at window cursor
int inch()
int mvinch(y,x)
int mvwinch(win,y,x)
int winsch(win,ch) insert character in a window
int insch(ch)
int mvinsch(y,x,ch)
int mvwinsch(win,y,x,ch)
int winsertln(win) insert new line in a window
int insertln()
int mvinsertln(y,x)
int mvwinsertln(win,y,x)
void keypad(win,bf) marks a window for keypad usage
int killchar() return line delete character
char *longname() returns terminal description string
void leaveok(win,bf) marks window for cursor 'update leave'
void meta(win,bf) marks window for meta
int move(y,x) move cursor in stdscr
int mvcur(oldy,oldx,y,x) move terminal cursor to <y,x>
int mvprintw(y,x,fmt,args) move & print string in stdscr
int mvscanw(y,x,fmt,args) move & get values via stdscr
int mvwin(win,y,x) move window on physical screen
int mvwprintw(win,x,y,fmt,args) move & print string in a window
int mvwscanw(win,y,x,fmt,args) move & get values via a window
WINDOW *newwin(lines,cols,begy,begx) create a new window
void nl() set terminal cr-crlf mapping mode
void nocbreak() unset terminal cbreak mod
void nodelay(win,bf) marks window for no input wait
void noecho() unset terminal echo mode
void nonl() unset terminal cr-crlf mapping mode
void noraw() unset raw terminal mode
void overlay(win1,win2) overlay one window on another
void overwrite(win1,win2) overwrite one window on another
int printw(fmt,args) print string in stdscr
void raw() set raw terminal mode
void refrbrk(bf) set screen update break mode
void refresh() refresh stdscr
int resetterm() dummy for compatibility
int resetty() restore terminal I/O modes
int saveoldterm() dummy for compatibility
int saveterm() dummy for compatibility
int savetty() save terminal I/O modes
int scanw(fmt,args) get values via stdscr
void scroll(win) scroll scrolling region of a window
void scrollok(win,bf) marks a window to allow scroll
void setcolors(A_COLOR(for,back)) sets the forground and background
colors of stdscr
void set_curs(visibility) 0 for invisible, 1 for visible, 2 for good
visible
int setsrcreg(miny,maxy) define stdscr's scroll region
int setterm() dummy for compatibility
int setupterm(term,fd,errret) set up terminal
void standend() start normal chars in stdscr
void standout() start standout chars in stdscr
WINDOW *subwin(win,lines,cols,begy,begx)
create a sub-window in window win
int tabsize(ts) set/get tabsize of stdscr
void touchwin(win) mark a window as totally modified
char *unctrl(ch) char-to-string converter
int wmove(win,y,x) move cursor in a window
void wnoutrefresh(win) create internal screen image
int wprintw(win,fmt,args) print string in a window
void wrefresh(win) refresh window
int wscanw(win,fmt,args) get values via a window
void wsetcolors(win,A_COLOR(for,back)) sets the forground and
background colors of the specified window
int wsetsrcreg(win,miny,maxy) define a window's scrolling region
void wstandend(win) start normal chars in window
void wstandout(win) start standout chars in window
int wtabsize(win,ts) set/get tabsize of a window
.SH BUGS
Function keys are not available under the MINIX version.
.\" $PchId: curses.3,v 1.3 1996/02/22 21:26:28 philip Exp $