int slk_init(int fmt);
int slk_set(int labnum, const char *label, int fmt);
char *slk_label(int labnum);
int slk_attron(attr_t attrs);
int slk_attrset(attr_t attrs);
int slk_attroff(attr_t attrs);
The slk* functions manipulate the set of soft function-key
labels that exist on many terminals. For those terminals
that do not have soft labels, curses takes over the bottom
line of stdscr, reducing the size of stdscr and the
variable LINES. curses standardizes on eight labels of up to
eight characters each. In addition to this, the ncurses
implementation supports a mode where it simulates 12
labels of up to five characters each. This is most common
for today's PC-like end user devices. Please note that
ncurses simulates this mode by taking over up to two lines
at the bottom of the screen, it doesn't try to use any
hardware support for this mode.
The slk_init() routine must be called before
newterm() is called. If initscr()
eventually uses a line from
stdscr to emulate the soft labels, then fmt
the labels are arranged on the screen. Setting fmt to 0
indicates a 3-2-3 arrangement of the labels, 1 indicates a
4-4 arrangement and 2 indicates the PC like 4-4-4 mode. If
fmt() is set to 3, it is again the PC like 4-4-4 mode, but
in addition an index line is generated, helping the user
to identify the key numbers easily.
The slk_set() routine requires labnum to
be a label number,
from 1 to 8 (resp. 12()); label must be
the string to be put
on the label, up to eight (resp. five) characters in
length. A null string or a null pointer sets up a blank
label. fmt is either 0, 1, or 2, indicating whether the
label is to be left-justified, centered, or right-justified, respectively,
within the label.
The slk_refresh() and
slk_noutrefresh() routines correspond to
the wrefresh() and wnoutrefresh()
The slk_label() routine returns the current label for
number labnum, with leading and trailing blanks stripped.
The slk_clear() routine clears the soft labels from the
The slk_restore() routine, restores the soft labels to the
screen after a slk_clear() has been performed.
The slk_touch() routine forces all the soft labels to be
output the next time a slk_noutrefresh() is performed.
The slk_attron(), slk_attrset(),
slk_attroff() and slk_attr() routines
correspond to attron(), attrset(),
attroff() and attr_get().
They have an effect only if soft labels are simulated on
the bottom line of the screen. The default highlight for
soft keys is A_STANDOUT (as in System V curses, which does
not document this fact).
These routines return ERR upon failure and OK (SVr4 specifies
only "an integer value other than ERR") upon
successful completion. slk_attr() returns the attribute
used for the soft keys.
slk_label() returns NULL on error.
Most applications would use slk_noutrefresh() because a
wrefresh() is likely to follow soon.
The XSI Curses standard, Issue 4, describes these functions. It changes the
argument type of the attribute manipulation functions
slk_attrset() to be attr_t(), and adds
const() qualifiers. The
format codes 2 and 3 for slk_init() and the function
slk_attr() are specific to ncurses.
PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition
- curs_attr(), curs_initscr(), curs_refresh(), curses()
PTC MKS Toolkit 10.1 Documentation Build 15.