.\"***************************************************************************
-.\" Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_slk.3x,v 1.29 2017/03/18 01:00:30 tom Exp $
+.\" $Id: curs_slk.3x,v 1.34 2018/07/28 22:20:54 tom Exp $
.TH curs_slk 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
\fBslk_attr_set\fR,
\fBslk_attr_off\fR,
\fBslk_attr\fR,
-\fBslk_color\fR \- \fBcurses\fR soft label routines
+\fBslk_color\fR,
+\fBextended_slk_color\fR \- \fBcurses\fR soft label routines
.ad
.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.sp
-\fBint slk_init(int fmt);\fR
+\fBint slk_init(int \fP\fIfmt\fP\fB);\fR
.sp
-\fBint slk_set(int labnum, const char *label, int fmt);\fR
+\fBint slk_set(int \fP\fIlabnum\fP\fB, const char *\fP\fIlabel\fP\fB, int \fP\fIfmt\fP\fB);\fR
.br
-\fBint slk_wset(int labnum, const wchar_t *label, int fmt);\fR
+\fBint slk_wset(int \fP\fIlabnum\fP\fB, const wchar_t *\fP\fIlabel\fP\fB, int \fP\fIfmt\fP\fB);\fR
.sp
-\fBchar *slk_label(int labnum);\fR
+\fBchar *slk_label(int \fP\fIlabnum\fP\fB);\fR
.sp
\fBint slk_refresh(void);\fR
.br
.br
\fBint slk_touch(void);\fR
.sp
-\fBint slk_attron(const chtype attrs);\fR
+\fBint slk_attron(const chtype \fP\fIattrs\fP\fB);\fR
.br
-\fBint slk_attroff(const chtype attrs);\fR
+\fBint slk_attroff(const chtype \fP\fIattrs\fP\fB);\fR
.br
-\fBint slk_attrset(const chtype attrs);\fR
+\fBint slk_attrset(const chtype \fP\fIattrs\fP\fB);\fR
.br
-\fBint slk_attr_on(attr_t attrs, void* opts);\fR
+\fBint slk_attr_on(attr_t \fP\fIattrs\fP\fB, void* \fP\fIopts\fP\fB);\fR
.br
-\fBint slk_attr_off(const attr_t attrs, void * opts);\fR
+\fBint slk_attr_off(const attr_t \fP\fIattrs\fP\fB, void * \fP\fIopts\fP\fB);\fR
.br
-\fBint slk_attr_set(const attr_t attrs, short pair, void* opts);\fR
+\fBint slk_attr_set(const attr_t \fP\fIattrs\fP\fB, short \fP\fIpair\fP\fB, void* \fP\fIopts\fP\fB);\fR
.sp
\fBattr_t slk_attr(void);\fR
.sp
-\fBint slk_color(short pair);\fR
+\fBint slk_color(short \fP\fIpair\fP\fB);\fR
+.br
+/* extension */
+.br
+\fBint extended_slk_color(int \fP\fIpair\fP\fB);\fR
.SH DESCRIPTION
The slk* functions manipulate the set of soft function-key labels that exist on
many terminals.
the next time a \fBslk_noutrefresh\fR is performed.
.SS Video attributes
.PP
-The \fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR and \fBslk_attr\fR
-routines correspond to \fBattron\fR, \fBattrset\fR, \fBattroff\fR and \fBattr_get\fR.
+The
+\fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR and \fBslk_attr\fR
+routines correspond to
+\fBattron\fR, \fBattrset\fR, \fBattroff\fR and \fBattr_get\fR, respectively.
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
The \fBslk_color\fR routine corresponds to \fBcolor_set\fR.
It has an effect only
if soft labels are simulated on the bottom line of the screen.
+.PP
+Because \fBslk_color\fR accepts only \fBshort\fP (signed 16-bit integer) values,
+this implementation provides
+\fBextended_slk_color\fR which accepts an integer value, e.g., 32-bits.
.
.SH RETURN VALUE
-These routines return \fBERR\fR upon failure and OK (SVr4 specifies only "an
-integer value other than \fBERR\fR") upon successful completion.
+These routines return \fBERR\fR upon failure
+and \fBOK\fP (SVr4 specifies only "an integer value other than \fBERR\fR")
+upon successful completion.
.PP
X/Open defines no error conditions.
In this implementation
\fBslk_attr_set\fP
returns an error
if the terminal or the softkeys were not initialized, or
-the color pair is outside the range 0..COLOR_PAIRS\-1,
-or opts is not null.
+the color pair is outside the range 0..COLOR_PAIRS\-1.
.TP 5
\fBslk_color\fP
returns an error
if the format parameter is outside the range 0..2, or if
memory for the labels cannot be allocated.
.RE
+.SH EXTENSIONS
+.PP
+X/Open Curses documents the \fIopts\fP argument as reserved for future use,
+saying that it must be null.
+This implementation
+uses that parameter in ABI 6 for the functions which have a color-pair
+parameter to support extended color pairs.
+.PP
+For functions which modify the color, e.g., \fBslk_attr_set\fP,
+if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
+and used to set the color pair instead of the \fBshort\fP pair parameter.
.SH NOTES
Most applications would use \fBslk_noutrefresh\fR because a
\fBwrefresh\fR is likely to follow soon.
The XSI Curses standard, Issue 4, described the soft-key functions,
with some differences from SVr4 curses:
.bP
-It
-added functions like the SVr4
-the attribute-manipulation functions \fBslk_attron\fR,
-\fBslk_attroff\fR, \fBslk_attrset\fR
-which use \fBattr_t\fR parameters,
+It added functions like the SVr4
+attribute-manipulation functions \fBslk_attron\fR,
+\fBslk_attroff\fR, \fBslk_attrset\fR,
+but which use \fBattr_t\fR parameters (rather than \fBchtype\fP),
along with a reserved \fIopts\fP parameter.
.IP
-One of these new functions (\fBslk_attr_set\fP) also has a color-pair parameter.
+Two of these new functions (unlike the SVr4 functions) have no provision
+for color: \fBslk_attr_on\fP and \fBslk_attr_off\fP.
+.IP
+The third function (\fBslk_attr_set\fP) has a color-pair parameter.
.bP
It added \fBconst\fR qualifiers to parameters (unnecessarily), and
.bP
.PP
The format codes \fB2\fR and \fB3\fR for \fBslk_init\fR and the
function \fBslk_attr\fR are specific to ncurses.
+.PP
+X/Open Curses does not specify a limit for the number of colors and
+color pairs which a terminal can support.
+However, in its use of \fBshort\fP for the parameters,
+it carries over SVr4's implementation detail for the compiled
+terminfo database, which uses signed 16-bit numbers.
+This implementation provides extended versions of those functions
+which use \fBshort\fP parameters,
+allowing applications to use larger color- and pair-numbers.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_attr\fR(3X),