NCurses Notes
Moving About
move(i, i)
– move to (y, x)
on the screen; coordinates are 0-indexed
[int] getch()
– get next input (mouse clicks, special chars, etc.)
getnstr(s, i)
– put at most i
chars from keyboard buffer into s
flushinp()
– flush keyboard buffer
Inserting Text
mvwaddch(w, i, i, c)
, waddch(w, c)
, addch(c)
– add char
insertln()
– add line empty line to current y-pos; doesn’t advance cursor; lines pushed past window are forgotten
addstr(s)
– add string to current cursor
insch(c)
– add char to current cursor; chars pushed past window size are forgotten; doesn’t advance cursor
ungetchar(c)
– put char back into keyboard queue
overlay(w, w)
, overwrite(w, w)
, copywin(w, w, i, i, i, i, i, i, b)
, dupwin(w)
– copy from source window to destination
box(w, c, c)
– draw a box with (cx, cy)
chars
hline(c, i)
, vline(c, i)
– draw a line
Misc. Text Manipulation
scroll()
, scrl(i)
, wscrl(w, i)
– scroll; scrl(i)
for i < 0
scrolls up
scr_dump(s)
, putwin()
– put window contents to disk
scr_restore(s)
, [WINDOW *] getwin()
– restore window contents from disk
Window Management
wrefresh(w)
, refresh()
– refresh appropriate window
touchwin(w)
– touch the window, so refresh will update the terminal
[WINDOW *] newwin(i, i, i, i)
– newwin(r, c, y_org, x_org)
[WINDOW *] subwin(w, i, i, i, i)
– subwin(r, c, y_org, x_org)
where y_org
and x_org
are relative to the parent window
delwin(w)
– delete the window
derwin(w)
– delete subwindow
mvwin(w, i, i)
– move the given window to new x and y coords
touchline(w, i, i)
– touch i
th line for i
lines
Pad Management
[WINDOW *] newpad(i, i)
prefresh(p, i, i, i, i, i, i)
– start at (px, py)
, transfer to (sx, sy)
for (r, c)
size
subpad(p, i, i, i, i)
– cf. subwin
Deleting Text
deleteln()
– delete current line; doesn’t advance cursor; doesn’t reverse word-rap
delch()
– delete current char; doesn’t reverse word-wrap
clrtoeol()
– delete from current line to EOL; doesn’t pull up next lines
clear()
, erase()
– deletes entire screen
clrtobot()
– deletes text to bottom of screen
Modifying Behavior
nodelay(w, b)
– getch returns immediately (returns ERR)
echo()
, noecho()
– toggle getch() input
keypad(w, b)
– toggle keypad functions
raw()
, noraw()
– toggle function key handler
scrollok(w, b)
– toggle if scrolling is allowed for current window
pechochar(p, c)
– echo onto bound window as well as input into pad
curs_set(i)
– set cursor echo (in mode i
)
Query Window
getmaxyx(w, i, i)
– get dimensions of current window
getyx(w, i, i)
– get cursor position
Key Testing
KEY_UP
, KEY_DOWN
, KEY_LEFT
, KEY_RIGHT
– cursor keys
KEY_HOME
, KEY_NPAGE
, KEY_PPAGE
, KEY_END
– page up / down, home and end keys
KEY_BACKSPACE
KEY_F(i)
– function key
Soft Key Labels
slk_init(i)
– called before initscr()
; enable soft key label functions (rendered in mode i
)
slk_set(i, s, i)
– set i
th label to s
slk_refresh()
– display soft labels
slk_restore()
slk_clear()
Mice Operations
NCURSES_MOUSE_VERSION
– non-zero if ncurses
supports mouse operations
[mmask_t] mousemask(m, [mmask_t *] m)
– test for supported mouse events; m
is the requested actions (e.g. ALL_MOUSE_EVENTS
), returns non-zero value if any mouse events are
supported
getmouse([MEVENT *] e)
– sets latest mouse event to e
Resources