c117f4830b60bc6cc4e8cb0fc71050c383b2271f
[ncurses.git] / doc / html / man / curs_color.3x.html
1 <!-- 
2   ****************************************************************************
3   * Copyright (c) 1998-2016,2017 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_color.3x,v 1.51 2017/08/12 21:40:14 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_color 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 class="no-header">curs_color 3x</H1>
42 <PRE>
43 <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>                                                  <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
44
45
46
47
48 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
49        <STRONG>start_color</STRONG>, <STRONG>has_colors</STRONG>, <STRONG>can_change_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>,
50        <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>reset_color_pairs</STRONG>, <STRONG>COLOR_PAIR</STRONG>, <STRONG>PAIR_NUMBER</STRONG>
51        - <STRONG>curses</STRONG> color manipulation routines
52
53
54 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
55        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
56
57        <STRONG>int</STRONG> <STRONG>start_color(void);</STRONG>
58
59        <STRONG>bool</STRONG> <STRONG>has_colors(void);</STRONG>
60        <STRONG>bool</STRONG> <STRONG>can_change_color(void);</STRONG>
61
62        <STRONG>int</STRONG> <STRONG>init_pair(short</STRONG> <STRONG>pair,</STRONG> <STRONG>short</STRONG> <STRONG>f,</STRONG> <STRONG>short</STRONG> <STRONG>b);</STRONG>
63        <STRONG>int</STRONG> <STRONG>init_color(short</STRONG> <STRONG>color,</STRONG> <STRONG>short</STRONG> <STRONG>r,</STRONG> <STRONG>short</STRONG> <STRONG>g,</STRONG> <STRONG>short</STRONG> <STRONG>b);</STRONG>
64        /* extensions */
65        <STRONG>int</STRONG> <STRONG>init_extended_pair(int</STRONG> <STRONG>pair,</STRONG> <STRONG>int</STRONG> <STRONG>f,</STRONG> <STRONG>int</STRONG> <STRONG>b);</STRONG>
66        <STRONG>int</STRONG> <STRONG>init_extended_color(int</STRONG> <STRONG>color,</STRONG> <STRONG>int</STRONG> <STRONG>r,</STRONG> <STRONG>int</STRONG> <STRONG>g,</STRONG> <STRONG>int</STRONG> <STRONG>b);</STRONG>
67
68        <STRONG>int</STRONG> <STRONG>color_content(short</STRONG> <STRONG>color,</STRONG> <STRONG>short</STRONG> <STRONG>*r,</STRONG> <STRONG>short</STRONG> <STRONG>*g,</STRONG> <STRONG>short</STRONG> <STRONG>*b);</STRONG>
69        <STRONG>int</STRONG> <STRONG>pair_content(short</STRONG> <STRONG>pair,</STRONG> <STRONG>short</STRONG> <STRONG>*f,</STRONG> <STRONG>short</STRONG> <STRONG>*b);</STRONG>
70        /* extensions */
71        <STRONG>int</STRONG> <STRONG>extended_color_content(int</STRONG> <STRONG>color,</STRONG> <STRONG>int</STRONG> <STRONG>*r,</STRONG> <STRONG>int</STRONG> <STRONG>*g,</STRONG> <STRONG>int</STRONG> <STRONG>*b);</STRONG>
72        <STRONG>int</STRONG> <STRONG>extended_pair_content(int</STRONG> <STRONG>pair,</STRONG> <STRONG>int</STRONG> <STRONG>*f,</STRONG> <STRONG>int</STRONG> <STRONG>*b);</STRONG>
73
74        /* extensions */
75        <STRONG>void</STRONG> <STRONG>reset_color_pairs(void);</STRONG>
76
77        <STRONG>int</STRONG> <STRONG>COLOR_PAIR(int</STRONG> <STRONG>n);</STRONG>
78        <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM><STRONG>);</STRONG>
79
80
81 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
82
83 </PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
84        <STRONG>curses</STRONG> supports color attributes on terminals with that capability.  To
85        use these routines <STRONG>start_color</STRONG> must  be  called,  usually  right  after
86        <STRONG>initscr</STRONG>.  Colors are always used in pairs (referred to as color-pairs).
87        A color-pair consists of a foreground  color  (for  characters)  and  a
88        background  color (for the blank field on which the characters are dis-
89        played).  A  programmer  initializes  a  color-pair  with  the  routine
90        <STRONG>init_pair</STRONG>.  After it has been initialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can be used to
91        convert the pair to a video attribute.
92
93        If a terminal is capable of redefining colors, the programmer  can  use
94        the  routine  <STRONG>init_color</STRONG> to change the definition of a color.  The rou-
95        tines <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG> or  <STRONG>FALSE</STRONG>,  depending
96        on whether the terminal has color capabilities and whether the program-
97        mer can change the colors.  The routine <STRONG>color_content</STRONG> allows a program-
98        mer  to  extract  the  amounts of red, green, and blue components in an
99        initialized color.  The routine <STRONG>pair_content</STRONG>  allows  a  programmer  to
100        find out how a given color-pair is currently defined.
101
102
103 </PRE><H3><a name="h3-Color-Rendering">Color Rendering</a></H3><PRE>
104        The  <STRONG>curses</STRONG>  library  combines these inputs to produce the actual fore-
105        ground and background colors shown on the screen:
106
107        <STRONG>o</STRONG>   per-character video attributes (e.g., via <STRONG>waddch</STRONG>),
108
109        <STRONG>o</STRONG>   the window attribute (e.g., by <STRONG>wattrset</STRONG>), and
110
111        <STRONG>o</STRONG>   the background character (e.g., <STRONG>wbkgdset</STRONG>).
112
113        Per-character and window attributes are usually set by a parameter con-
114        taining  video attributes including a color pair value.  Some functions
115        such as <STRONG>wattr_set</STRONG> use a separate parameter which is the color pair num-
116        ber.
117
118        The  background  character  is  a special case: it includes a character
119        value, just as if it were passed to <STRONG>waddch</STRONG>.
120
121        The <STRONG>curses</STRONG> library does the actual work of combining these color  pairs
122        in an internal function called from <STRONG>waddch</STRONG>:
123
124        <STRONG>o</STRONG>   If the parameter passed to <STRONG>waddch</STRONG> is <EM>blank</EM>, and it uses the special
125            color pair 0,
126
127            <STRONG>o</STRONG>   <STRONG>curses</STRONG> next checks the window attribute.
128
129            <STRONG>o</STRONG>   If the window attribute does not use color pair 0, <STRONG>curses</STRONG>  uses
130                the color pair from the window attribute.
131
132            <STRONG>o</STRONG>   Otherwise, <STRONG>curses</STRONG> uses the background character.
133
134        <STRONG>o</STRONG>   If  the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not use
135            the special color pair 0, <STRONG>curses</STRONG> prefers the color  pair  from  the
136            parameter,  if  it  is nonzero.  Otherwise, it tries the window at-
137            tribute next, and finally the background character.
138
139        Some <STRONG>curses</STRONG> functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>.  Those do  not  com-
140        bine its parameter with a color pair.  Consequently those calls use on-
141        ly the window attribute or the background character.
142
143
144 </PRE><H2><a name="h2-CONSTANTS">CONSTANTS</a></H2><PRE>
145        In <STRONG>&lt;curses.h&gt;</STRONG> the following macros are defined.  These are the standard
146        colors (ISO-6429).  <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG> is the default
147        background color for all terminals.
148
149              <STRONG>COLOR_BLACK</STRONG>
150              <STRONG>COLOR_RED</STRONG>
151              <STRONG>COLOR_GREEN</STRONG>
152              <STRONG>COLOR_YELLOW</STRONG>
153              <STRONG>COLOR_BLUE</STRONG>
154              <STRONG>COLOR_MAGENTA</STRONG>
155              <STRONG>COLOR_CYAN</STRONG>
156              <STRONG>COLOR_WHITE</STRONG>
157
158        Some terminals support more than the eight (8)  "ANSI"  colors.   There
159        are no standard names for those additional colors.
160
161
162 </PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE>
163
164 </PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
165        is  initialized by <STRONG>start_color</STRONG> to the maximum number of colors the ter-
166        minal can support.
167
168
169 </PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE>
170        is initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs  the
171        terminal can support.
172
173
174 </PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>
175
176 </PRE><H3><a name="h3-start_color">start_color</a></H3><PRE>
177        The  <STRONG>start_color</STRONG>  routine  requires no arguments.  It must be called if
178        the programmer wants to use colors, and before any other color  manipu-
179        lation  routine  is  called.   It is good practice to call this routine
180        right after <STRONG>initscr</STRONG>.  <STRONG>start_color</STRONG> does this:
181
182        <STRONG>o</STRONG>   It initializes two global variables, <STRONG>COLORS</STRONG>  and  <STRONG>COLOR_PAIRS</STRONG>  (re-
183            spectively  defining  the  maximum number of colors and color-pairs
184            the terminal can support).
185
186        <STRONG>o</STRONG>   It initializes the special color pair <STRONG>0</STRONG> to the  default  foreground
187            and background colors.  No other color pairs are initialized.
188
189        <STRONG>o</STRONG>   It  restores the colors on the terminal to the values they had when
190            the terminal was just turned on.
191
192        <STRONG>o</STRONG>   If the terminal supports the <STRONG>initc</STRONG>  (<STRONG>initialize_color</STRONG>)  capability,
193            <STRONG>start_color</STRONG>  initializes  its  internal table representing the red,
194            green and blue components of the color palette.
195
196            The components depend on whether the terminal uses CGA (aka "ANSI")
197            or  HLS  (i.e.,  the  <STRONG>hls</STRONG>  (<STRONG>hue_lightness_saturation</STRONG>) capability is
198            set).  The table  is  initialized  first  for  eight  basic  colors
199            (black,  red,  green,  yellow, blue, magenta, cyan, and white), and
200            after that (if the terminal supports more than  eight  colors)  the
201            components are initialized to <STRONG>1000</STRONG>.
202
203            <STRONG>start_color</STRONG> does not attempt to set the terminal's color palette to
204            match its built-in table.  An application may use <STRONG>init_color</STRONG> to al-
205            ter the internal table along with the terminal's color.
206
207        These  limits  apply  to  color values and color pairs.  Values outside
208        these limits are not legal, and may result in a runtime error:
209
210        <STRONG>o</STRONG>   <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_colors</STRONG>  capabili-
211            ty, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
212
213        <STRONG>o</STRONG>   color  values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COLORS-1</STRONG>, inclu-
214            sive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>).
215
216        <STRONG>o</STRONG>   a special color value <STRONG>-1</STRONG> is used in certain extended  functions  to
217            denote the <EM>default</EM> <EM>color</EM> (see <STRONG>use_default_colors</STRONG>).
218
219        <STRONG>o</STRONG>   <STRONG>COLOR_PAIRS</STRONG>  corresponds to the terminal database's <STRONG>max_pairs</STRONG> capa-
220            bility, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
221
222        <STRONG>o</STRONG>   legal color pair values are in the range <STRONG>1</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>, inclu-
223            sive.
224
225        <STRONG>o</STRONG>   color pair <STRONG>0</STRONG> is special; it denotes "no color".
226
227            Color pair <STRONG>0</STRONG> is assumed to be white on black, but is actually what-
228            ever the terminal implements before color is initialized.  It  can-
229            not be modified by the application.
230
231
232 </PRE><H3><a name="h3-has_colors">has_colors</a></H3><PRE>
233        The  <STRONG>has_colors</STRONG>  routine requires no arguments.  It returns <STRONG>TRUE</STRONG> if the
234        terminal can manipulate colors; otherwise, it returns <STRONG>FALSE</STRONG>.  This rou-
235        tine facilitates writing terminal-independent programs.  For example, a
236        programmer can use it to decide whether to  use  color  or  some  other
237        video attribute.
238
239
240 </PRE><H3><a name="h3-can_change_color">can_change_color</a></H3><PRE>
241        The <STRONG>can_change_color</STRONG> routine requires no arguments.  It returns <STRONG>TRUE</STRONG> if
242        the terminal supports colors and can change their  definitions;  other,
243        it  returns  <STRONG>FALSE</STRONG>.  This routine facilitates writing terminal-indepen-
244        dent programs.
245
246
247 </PRE><H3><a name="h3-init_pair">init_pair</a></H3><PRE>
248        The <STRONG>init_pair</STRONG> routine changes the definition of a color-pair.  It takes
249        three  arguments: the number of the color-pair to be changed, the fore-
250        ground color number, and the background color number.  For portable ap-
251        plications:
252
253        <STRONG>o</STRONG>   The  first  argument  must be a legal color pair value.  If default
254            colors are used (see <STRONG>use_default_colors</STRONG>) the upper limit is adjust-
255            ed to allow for extra pairs which use a default color in foreground
256            and/or background.
257
258        <STRONG>o</STRONG>   The second and third arguments must be legal color values.
259
260        If the color-pair was previously initialized, the screen  is  refreshed
261        and  all  occurrences of that color-pair are changed to the new defini-
262        tion.
263
264        As an extension, ncurses allows you to set color pair  <STRONG>0</STRONG>  via  the  <STRONG>as-</STRONG>
265        <STRONG><A HREF="assume_default_colors.3x.html">sume_default_colors(3x)</A></STRONG>  routine, or to specify the use of default col-
266        ors (color number <STRONG>-1</STRONG>) if you first  invoke  the  <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>
267        routine.
268
269        The  extension  <STRONG>reset_color_pairs</STRONG>  tells  ncurses to discard all of the
270        color-pair information which was set with <STRONG>init_pair</STRONG>.  It  also  touches
271        the  current-  and  standard-screens, allowing an application to switch
272        color palettes rapidly.
273
274
275 </PRE><H3><a name="h3-init_color">init_color</a></H3><PRE>
276        The <STRONG>init_color</STRONG> routine changes the definition of  a  color.   It  takes
277        four arguments: the number of the color to be changed followed by three
278        RGB values (for the amounts of red, green, and blue components).
279
280        <STRONG>o</STRONG>   The first argument must be a legal color value; default colors  are
281            not  allowed  here.   (See the section <STRONG>Colors</STRONG> for the default color
282            index.)
283
284        <STRONG>o</STRONG>   Each of the last three arguments must be a value  in  the  range  <STRONG>0</STRONG>
285            through <STRONG>1000</STRONG>.
286
287        When  <STRONG>init_color</STRONG>  is  used, all occurrences of that color on the screen
288        immediately change to the new definition.
289
290
291 </PRE><H3><a name="h3-color_content">color_content</a></H3><PRE>
292        The <STRONG>color_content</STRONG> routine gives programmers a way to find the intensity
293        of  the  red, green, and blue (RGB) components in a color.  It requires
294        four arguments: the color number, and three  addresses  of  <STRONG>short</STRONG>s  for
295        storing  the information about the amounts of red, green, and blue com-
296        ponents in the given color.
297
298        <STRONG>o</STRONG>   The first argument must be a legal color  value,  i.e.,  <STRONG>0</STRONG>  through
299            <STRONG>COLORS-1</STRONG>, inclusive.
300
301        <STRONG>o</STRONG>   The  values that are stored at the addresses pointed to by the last
302            three arguments are in the range  <STRONG>0</STRONG>  (no  component)  through  <STRONG>1000</STRONG>
303            (maximum amount of component), inclusive.
304
305
306 </PRE><H3><a name="h3-pair_content">pair_content</a></H3><PRE>
307        The  <STRONG>pair_content</STRONG>  routine allows programmers to find out what colors a
308        given color-pair consists of.  It requires three arguments: the  color-
309        pair number, and two addresses of <STRONG>short</STRONG>s for storing the foreground and
310        the background color numbers.
311
312        <STRONG>o</STRONG>   The first argument must be a legal color value, i.e., in the  range
313            <STRONG>1</STRONG> through <STRONG>COLOR_PAIRS-1</STRONG>, inclusive.
314
315        <STRONG>o</STRONG>   The  values that are stored at the addresses pointed to by the sec-
316            ond and third arguments are in the range <STRONG>0</STRONG> through  <STRONG>COLORS</STRONG>,  inclu-
317            sive.
318
319
320 </PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE>
321        <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM>)  extracts  the  color value from its <EM>attrs</EM> parameter
322        and returns it as a color pair number.
323
324
325 </PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE>
326        Its inverse <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute.
327        Attributes  can  hold color pairs in the range 0 to 255.  If you need a
328        color pair larger than that, you must use functions  such  as  <STRONG>attr_set</STRONG>
329        (which  pass  the  color  pair as a separate parameter) rather than the
330        legacy functions such as <STRONG>attrset</STRONG>.
331
332
333 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
334        The routines <STRONG>can_change_color</STRONG> and <STRONG>has_colors</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
335
336        All other routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG>  (SVr4
337        specifies  only "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
338        pletion.
339
340        X/Open defines no error conditions.  This  implementation  will  return
341        <STRONG>ERR</STRONG>  on  attempts  to  use color values outside the range <STRONG>0</STRONG> to <STRONG>COLORS</STRONG>-1
342        (except for the default colors extension), or use color  pairs  outside
343        the  range <STRONG>0</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>.  Color values used in <STRONG>init_color</STRONG> must be
344        in the range <STRONG>0</STRONG> to <STRONG>1000</STRONG>.  An error is returned from all functions if the
345        terminal has not been initialized.  An error is returned from secondary
346        functions such as <STRONG>init_pair</STRONG> if <STRONG>start_color</STRONG> was not called.
347
348           <STRONG>init_color</STRONG>
349                returns an error if the terminal does not support this feature,
350                e.g.,  if  the  <STRONG>initialize_color</STRONG>  capability is absent from the
351                terminal description.
352
353           <STRONG>start_color</STRONG>
354                returns an error if the color table cannot be allocated.
355
356
357 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
358        In the <STRONG>ncurses</STRONG> implementation, there is  a  separate  color  activation
359        flag,  color palette, color pairs table, and associated <STRONG>COLORS</STRONG> and <STRONG>COL-</STRONG>
360        <STRONG>OR_PAIRS</STRONG> counts for each screen; the <STRONG>start_color</STRONG> function only  affects
361        the current screen.  The SVr4/XSI interface is not really designed with
362        this in mind, and historical implementations may use  a  single  shared
363        color palette.
364
365        Setting  an  implicit  background  color  via a color pair affects only
366        character cells that a character write  operation  explicitly  touches.
367        To  change the background color used when parts of a window are blanked
368        by erasing or scrolling operations, see <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.
369
370        Several caveats apply on older x86 machines  (e.g.,  i386,  i486)  with
371        VGA-compatible graphics:
372
373        <STRONG>o</STRONG>   COLOR_YELLOW  is  actually  brown.  To get yellow, use COLOR_YELLOW
374            combined with the <STRONG>A_BOLD</STRONG> attribute.
375
376        <STRONG>o</STRONG>   The A_BLINK attribute should in theory cause the background  to  go
377            bright.  This often fails to work, and even some cards for which it
378            mostly works (such as the Paradise and compatibles)  do  the  wrong
379            thing  when  you try to set a bright "yellow" background (you get a
380            blinking yellow foreground instead).
381
382        <STRONG>o</STRONG>   Color RGB values are not settable.
383
384
385 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
386        This implementation satisfies XSI Curses's minimum maximums for  <STRONG>COLORS</STRONG>
387        and <STRONG>COLOR_PAIRS</STRONG>.
388
389        The  <STRONG>init_pair</STRONG>  routine accepts negative values of foreground and back-
390        ground color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but  only
391        if that routine has been first invoked.
392
393        The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background color for all
394        terminals can be modified using  the  <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG>  exten-
395        sion.
396
397        This  implementation checks the pointers, e.g., for the values returned
398        by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and will treat those as optional pa-
399        rameters when null.
400
401        X/Open  Curses  does  not  specify a limit for the number of colors and
402        color pairs which a terminal can support.  However, in its use of <STRONG>short</STRONG>
403        for  the  parameters,  it carries over SVr4's implementation detail for
404        the compiled terminfo database, which uses signed 16-bit numbers.  This
405        implementation  provides extended versions of those functions which use
406        <STRONG>short</STRONG> parameters, allowing applications to use larger color- and  pair-
407        numbers.
408
409        The <STRONG>reset_color_pairs</STRONG> function is an extension of ncurses.
410
411
412 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
413        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,  <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>de-</STRONG>
414        <STRONG><A HREF="default_colors.3x.html">fault_colors(3x)</A></STRONG>
415
416
417
418                                                                 <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
419 </PRE>
420 <div class="nav">
421 <ul>
422 <li><a href="#h2-NAME">NAME</a></li>
423 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
424 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
425 <ul>
426 <li><a href="#h3-Overview">Overview</a></li>
427 <li><a href="#h3-Color-Rendering">Color Rendering</a></li>
428 </ul>
429 </li>
430 <li><a href="#h2-CONSTANTS">CONSTANTS</a></li>
431 <li><a href="#h2-VARIABLES">VARIABLES</a>
432 <ul>
433 <li><a href="#h3-COLORS">COLORS</a></li>
434 <li><a href="#h3-COLOR_PAIRS">COLOR_PAIRS</a></li>
435 </ul>
436 </li>
437 <li><a href="#h2-FUNCTIONS">FUNCTIONS</a>
438 <ul>
439 <li><a href="#h3-start_color">start_color</a></li>
440 <li><a href="#h3-has_colors">has_colors</a></li>
441 <li><a href="#h3-can_change_color">can_change_color</a></li>
442 <li><a href="#h3-init_pair">init_pair</a></li>
443 <li><a href="#h3-init_color">init_color</a></li>
444 <li><a href="#h3-color_content">color_content</a></li>
445 <li><a href="#h3-pair_content">pair_content</a></li>
446 <li><a href="#h3-PAIR_NUMBER">PAIR_NUMBER</a></li>
447 <li><a href="#h3-COLOR_PAIR">COLOR_PAIR</a></li>
448 </ul>
449 </li>
450 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
451 <li><a href="#h2-NOTES">NOTES</a></li>
452 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
453 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
454 </ul>
455 </div>
456 </BODY>
457 </HTML>