]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_slk.3x
ncurses 6.2 - patch 20201107
[ncurses.git] / man / curs_slk.3x
index d1927a107a2927a09437966cfc84811b40b0a132..9eb2dfb4dd43ca3fe81b117887c1548c94c0bc45 100644 (file)
@@ -1,5 +1,6 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+.\" Copyright 2018,2020 Thomas E. Dickey                                     *
+.\" Copyright 1998-2016,2017 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.36 2020/02/02 23:34:34 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.
@@ -170,8 +177,10 @@ The \fBslk_touch\fR routine forces all the soft labels to be output
 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
@@ -181,10 +190,15 @@ 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
-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
@@ -208,8 +222,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 +243,40 @@ 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 HISTORY
+SVr3 introduced these functions:
+  slk_clear
+  slk_init
+  slk_label
+  slk_noutrefresh
+  slk_refresh
+  slk_restore
+  slk_set
+  slk_touch
+.PP
+SVr4 added these functions:
+  slk_attroff
+  slk_attron
+  slk_attrset
+  slk_start
+.PP
+X/Open Curses added these:
+  slk_attr_off
+  slk_attr_on
+  slk_attr_set
+  slk_color
+  slk_wset
+.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 +284,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 +301,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),