ncurses 6.0 - patch 20170401
[ncurses.git] / man / curs_slk.3x
index d1927a107a2927a09437966cfc84811b40b0a132..0b9b1d0b808deb0f92cb9700b5f66bb82df4ac5a 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_slk.3x,v 1.29 2017/03/18 01:00:30 tom Exp $
+.\" $Id: curs_slk.3x,v 1.31 2017/03/31 11:09:28 tom Exp $
 .TH curs_slk 3X ""
 .de bP
 .IP \(bu 4
 \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.
@@ -181,6 +186,10 @@ System V curses, which does not document this fact).
 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
@@ -208,8 +217,7 @@ if the terminal or the softkeys were not initialized.
 \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
@@ -230,6 +238,17 @@ the \fIlabnum\fP parameter is outside the range of label counts, or
 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.
@@ -237,14 +256,16 @@ Most applications would use \fBslk_noutrefresh\fR because a
 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
@@ -252,6 +273,15 @@ It added \fBslk_color\fP.
 .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),