ncurses 5.9 - patch 20150214
[ncurses.git] / doc / html / man / curs_slk.3x.html
1 <!-- 
2   ****************************************************************************
3   * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc.              *
4   *                                                                          *
5   * Permission is hereby granted, free of charge, to any person obtaining a  *
6   * copy of this software and associated documentation files (the            *
7   * "Software"), to deal in the Software without restriction, including      *
8   * without limitation the rights to use, copy, modify, merge, publish,      *
9   * distribute, distribute with modifications, sublicense, and/or sell       *
10   * copies of the Software, and to permit persons to whom the Software is    *
11   * furnished to do so, subject to the following conditions:                 *
12   *                                                                          *
13   * The above copyright notice and this permission notice shall be included  *
14   * in all copies or substantial portions of the Software.                   *
15   *                                                                          *
16   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
17   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
18   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
19   * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
20   * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
21   * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
22   * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23   *                                                                          *
24   * Except as contained in this notice, the name(s) of the above copyright   *
25   * holders shall not be used in advertising or otherwise to promote the     *
26   * sale, use or other dealings in this Software without prior written       *
27   * authorization.                                                           *
28   ****************************************************************************
29   * @Id: curs_slk.3x,v 1.22 2010/12/04 18:38:55 tom Exp @
30 -->
31 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
32 <HTML>
33 <HEAD>
34 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
35 <meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
36 <TITLE>curs_slk 3x</TITLE>
37 <link rev=made href="mailto:bug-ncurses@gnu.org">
38 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
39 </HEAD>
40 <BODY>
41 <H1>curs_slk 3x</H1>
42 <HR>
43 <PRE>
44 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>                                               <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
45
46
47
48
49 </PRE>
50 <H2><a name="h2-NAME">NAME</a></H2><PRE>
51        <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_wset</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>,
52        <STRONG>slk_label</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>,
53        <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>,
54        <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>, <STRONG>slk_color</STRONG> - <STRONG>curses</STRONG> soft label
55        routines
56
57
58 </PRE>
59 <H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
60        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
61
62        <STRONG>int</STRONG> <STRONG>slk_init(int</STRONG> <STRONG>fmt);</STRONG>
63        <STRONG>int</STRONG> <STRONG>slk_set(int</STRONG> <STRONG>labnum,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*label,</STRONG> <STRONG>int</STRONG> <STRONG>fmt);</STRONG>
64        <STRONG>int</STRONG> <STRONG>slk_refresh(void);</STRONG>
65        <STRONG>int</STRONG> <STRONG>slk_noutrefresh(void);</STRONG>
66        <STRONG>char</STRONG> <STRONG>*slk_label(int</STRONG> <STRONG>labnum);</STRONG>
67        <STRONG>int</STRONG> <STRONG>slk_clear(void);</STRONG>
68        <STRONG>int</STRONG> <STRONG>slk_restore(void);</STRONG>
69        <STRONG>int</STRONG> <STRONG>slk_touch(void);</STRONG>
70        <STRONG>int</STRONG> <STRONG>slk_attron(const</STRONG> <STRONG>chtype</STRONG> <STRONG>attrs);</STRONG>
71        <STRONG>int</STRONG> <STRONG>slk_attroff(const</STRONG> <STRONG>chtype</STRONG> <STRONG>attrs);</STRONG>
72        <STRONG>int</STRONG> <STRONG>slk_attrset(const</STRONG> <STRONG>chtype</STRONG> <STRONG>attrs);</STRONG>
73        <STRONG>int</STRONG> <STRONG>slk_attr_on(attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void*</STRONG> <STRONG>opts);</STRONG>
74        <STRONG>int</STRONG> <STRONG>slk_attr_off(const</STRONG> <STRONG>attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG> <STRONG>opts);</STRONG>
75        <STRONG>int</STRONG>  <STRONG>slk_attr_set(const</STRONG>  <STRONG>attr_t</STRONG>  <STRONG>attrs,</STRONG>  <STRONG>short</STRONG> <STRONG>color_pair,</STRONG>
76        <STRONG>void*</STRONG> <STRONG>opts);</STRONG>
77        <STRONG>attr_t</STRONG> <STRONG>slk_attr(void);</STRONG>
78        <STRONG>int</STRONG> <STRONG>slk_color(short</STRONG> <STRONG>color_pair);</STRONG>
79        <STRONG>int</STRONG> <STRONG>slk_wset(int</STRONG> <STRONG>labnum,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*label,</STRONG> <STRONG>int</STRONG> <STRONG>fmt);</STRONG>
80
81
82 </PRE>
83 <H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
84        The slk* functions manipulate the set of soft function-key
85        labels  that exist on many terminals.  For those terminals
86        that do not have soft labels, <STRONG>curses</STRONG> takes over the bottom
87        line  of <STRONG>stdscr</STRONG>, reducing the size of <STRONG>stdscr</STRONG> and the vari-
88        able <STRONG>LINES</STRONG>.  <STRONG>curses</STRONG> standardizes on eight labels of up  to
89        eight  characters  each.  In addition to this, the ncurses
90        implementation supports a mode where it simulates  12  la-
91        bels  of  up  to five characters each.  This is useful for
92        today's PC-like enduser devices.  ncurses  simulates  this
93        mode  by  taking over up to two lines at the bottom of the
94        screen; it does not try to use any  hardware  support  for
95        this mode.
96
97        The  <STRONG>slk_init</STRONG>  routine  must  be  called before <STRONG>initscr</STRONG> or
98        <STRONG>newterm</STRONG> is called.  If <STRONG>initscr</STRONG> eventually uses a line from
99        <STRONG>stdscr</STRONG> to emulate the soft labels, then <EM>fmt</EM> determines how
100        the labels are arranged on the screen:
101
102               <STRONG>0</STRONG>  indicates a 3-2-3 arrangement of the labels.
103
104               <STRONG>1</STRONG>  indicates a 4-4 arrangement
105
106               <STRONG>2</STRONG>  indicates the PC-like 4-4-4 mode.
107
108               <STRONG>3</STRONG>  is again the PC-like 4-4-4 mode, but in addition
109                  an  index line is generated, helping the user to
110                  identify the key numbers easily.
111
112        The <STRONG>slk_set</STRONG> routine (and  the  <STRONG>slk_wset</STRONG>  routine  for  the
113        wide-character library) has three parameters:
114
115               <EM>labnum</EM>
116                    is  the  label number, from <STRONG>1</STRONG> to <STRONG>8</STRONG> (12 for <EM>fmt</EM>
117                    in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG> or <STRONG>3</STRONG>);
118
119               <EM>label</EM>
120                    is be the string to put on the  label,  up  to
121                    eight  (five  for  <EM>fmt</EM>  in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG> or <STRONG>3</STRONG>)
122                    characters in length.  A null string or a null
123                    pointer sets up a blank label.
124
125               <EM>fmt</EM>  is  either  <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG>, indicating whether the
126                    label is to be  left-justified,  centered,  or
127                    right-justified,  respectively, within the la-
128                    bel.
129
130        The <STRONG>slk_refresh</STRONG> and <STRONG>slk_noutrefresh</STRONG> routines correspond to
131        the <STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> routines.
132
133        The  <STRONG>slk_label</STRONG> routine returns the current label for label
134        number <EM>labnum</EM>, with leading and trailing blanks stripped.
135
136        The <STRONG>slk_clear</STRONG> routine clears  the  soft  labels  from  the
137        screen.
138
139        The  <STRONG>slk_restore</STRONG>  routine  restores the soft labels to the
140        screen after a <STRONG>slk_clear</STRONG> has been performed.
141
142        The <STRONG>slk_touch</STRONG> routine forces all the  soft  labels  to  be
143        output the next time a <STRONG>slk_noutrefresh</STRONG> is performed.
144
145        The <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG> and <STRONG>slk_attr</STRONG> rou-
146        tines correspond to <STRONG>attron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>attroff</STRONG> and <STRONG>attr_get</STRONG>.
147        They  have  an effect only if soft labels are simulated on
148        the bottom line of the screen.  The default highlight  for
149        soft keys is A_STANDOUT (as in System V curses, which does
150        not document this fact).
151
152        The <STRONG>slk_color</STRONG> routine corresponds to <STRONG>color_set</STRONG>.  It has an
153        effect  only  if  soft  labels are simulated on the bottom
154        line of the screen.
155
156
157 </PRE>
158 <H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
159        These routines return <STRONG>ERR</STRONG> upon failure and OK (SVr4 speci-
160        fies only "an integer value other than <STRONG>ERR</STRONG>") upon success-
161        ful completion.
162
163        X/Open defines no error conditions.  In  this  implementa-
164        tion
165
166               <STRONG>slk_attr</STRONG>
167                    returns the attribute used for the soft keys.
168
169               <STRONG>slk_attroff</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_clear</STRONG>,
170               <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_touch</STRONG>
171                    return an error if the terminal or  the  soft-
172                    keys were not initialized.
173
174               <STRONG>slk_attrset</STRONG>
175                    returns  an error if the terminal or the soft-
176                    keys were not initialized.
177
178               <STRONG>slk_attr_set</STRONG>
179                    returns an error if the terminal or the  soft-
180                    keys  were  not initialized, or the color pair
181                    is outside the range 0..COLOR_PAIRS-1, or opts
182                    is not null.
183
184               <STRONG>slk_color</STRONG>
185                    returns  an error if the terminal or the soft-
186                    keys were not initialized, or the  color  pair
187                    is outside the range 0..COLOR_PAIRS-1.
188
189               <STRONG>slk_init</STRONG>
190                    returns  an  error  if the format parameter is
191                    outside the range 0..3.
192
193               <STRONG>slk_label</STRONG>
194                    returns <STRONG>NULL</STRONG> on error.
195
196               <STRONG>slk_set</STRONG>
197                    returns an error if the terminal or the  soft-
198                    keys  were  not initialized, or the <EM>labnum</EM> pa-
199                    rameter is outside the range of label  counts,
200                    or  if  the  format  parameter  is outside the
201                    range 0..2, or if memory for the labels cannot
202                    be allocated.
203
204
205 </PRE>
206 <H2><a name="h2-NOTES">NOTES</a></H2><PRE>
207        Most applications would use <STRONG>slk_noutrefresh</STRONG> because a <STRONG>wre-</STRONG>
208        <STRONG>fresh</STRONG> is likely to follow soon.
209
210
211 </PRE>
212 <H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
213        The XSI Curses standard, Issue 4,  describes  these  func-
214        tions.   It changes the argument type of the attribute-ma-
215        nipulation functions <STRONG>slk_attron</STRONG>, <STRONG>slk_attroff</STRONG>,  <STRONG>slk_attrset</STRONG>
216        to be <STRONG>attr_t</STRONG>, and adds <STRONG>const</STRONG> qualifiers.  The format codes
217        <STRONG>2</STRONG> and <STRONG>3</STRONG> for <STRONG>slk_init()</STRONG> and the function <STRONG>slk_attr</STRONG> are  spe-
218        cific to ncurses.
219
220
221 </PRE>
222 <H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
223        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,   <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,  <STRONG>curs_re-</STRONG>
224        <STRONG><A HREF="curs_refresh.3x.html">fresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
225
226
227
228                                                            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
229 </PRE>
230 <div class="nav">
231 <ul>
232 <li><a href="#h2-NAME">NAME</a></li>
233 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
234 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
235 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
236 <li><a href="#h2-NOTES">NOTES</a></li>
237 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
238 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
239 </ul>
240 </div>
241 </BODY>
242 </HTML>