slk_init,     slk_set,    slk_refresh,    slk_noutrefresh,
       slk_label, slk_clear, slk_restore, slk_touch,  slk_attron,
       slk_attrset, slk_attroff - curses soft label routines


SYNOPSIS

       #include <curses.h>

       int slk_init(int fmt);
       int slk_set(int labnum, const char *label, int fmt);
       int slk_refresh(void);
       int slk_noutrefresh(void);
       char *slk_label(int labnum);
       int slk_clear(void);
       int slk_restore(void);
       int slk_touch(void);
       int slk_attron(attr_t attrs);
       int slk_attrset(attr_t attrs);
       attr_t slk_attr(void);
       int slk_attroff(attr_t attrs);


DESCRIPTION

       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  vari-
       able  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  todays  PC  like  enduser  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  initscr  or
       newterm is called.  If initscr eventually uses a line from
       stdscr to emulate the soft labels, then fmt determines how
       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-justi-
       fied, respectively, within the label.


       The  slk_label routine returns the current label for label
       number labnum, with leading and trailing blanks  stripped.

       The  slk_clear  routine  clears  the  soft labels from the
       screen.

       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 rou-
       tines 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).


RETURN VALUE

       These routines return ERR upon failure and OK (SVr4 speci-
       fies only "an integer value other than ERR") upon success-
       ful  completion.  slk_attr  returns the attribute used for
       the soft keys.

       slk_label returns NULL on error.


NOTES

       Most applications would use slk_noutrefresh because a wre-
       fresh is likely to follow soon.


PORTABILITY

       The  XSI  Curses  standard, Issue 4, describes these func-
       tions.  It changes the argument  type  of  the  attribute-
       manipulation     functions     slk_attron,    slk_attroff,
       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.


SEE ALSO

       curses(3X),        curs_attr(3X),        curs_initscr(3X),
       curs_refresh(3X)