]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/curs_color.3x.html
ncurses 5.9 - patch 20150516
[ncurses.git] / doc / html / man / curs_color.3x.html
index eda9d7ec35a76698fac778f75d603680b17867eb..5ff2f5f949488853b87ecf1b33158e8f1a69c265 100644 (file)
@@ -1,7 +1,6 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2010,2015 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            *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp @
+  * @Id: curs_color.3x,v 1.37 2015/04/04 19:42:47 tom Exp @
 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
 <TITLE>curs_color 3x</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>curs_color 3x</H1>
-<HR>
+<H1 class="no-header">curs_color 3x</H1>
 <PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>                                     <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>                                           <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
 
 
 
 
 </PRE>
-<H2>NAME</H2><PRE>
-       <STRONG>start_color</STRONG>,     <STRONG>init_pair</STRONG>,     <STRONG>init_color</STRONG>,    <STRONG>has_colors</STRONG>,
-       <STRONG>can_change_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>,  <STRONG>COLOR_PAIR</STRONG>
+<H2><a name="h2-NAME">NAME</a></H2><PRE>
+       <STRONG>start_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, <STRONG>has_colors</STRONG>,
+       <STRONG>can_change_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>COLOR_PAIR</STRONG>
        - <STRONG>curses</STRONG> color manipulation routines
 
 
 </PRE>
-<H2>SYNOPSIS</H2><PRE>
+<H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
        <STRONG>#</STRONG> <STRONG>include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
        <STRONG>int</STRONG> <STRONG>start_color(void);</STRONG>
        <STRONG>int</STRONG> <STRONG>init_pair(short</STRONG> <STRONG>pair,</STRONG> <STRONG>short</STRONG> <STRONG>f,</STRONG> <STRONG>short</STRONG> <STRONG>b);</STRONG>
        <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>
 
 
 </PRE>
-<H2>DESCRIPTION</H2><PRE>
-   <STRONG>Overview</STRONG>
-       <STRONG>curses</STRONG> support color attributes  on  terminals  with  that
-       capability.   To  use  these  routines <STRONG>start_color</STRONG> must be
+<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+
+</PRE>
+<H3><a name="h3-Overview">Overview</a></H3><PRE>
+       <STRONG>curses</STRONG> support color attributes on terminals with that ca-
+       pability.   To  use  these  routines  <STRONG>start_color</STRONG>  must be
        called, usually right after <STRONG>initscr</STRONG>.   Colors  are  always
        used  in pairs (referred to as color-pairs).  A color-pair
        consists of a foreground  color  (for  characters)  and  a
        nition   of   a   color.    The  routines  <STRONG>has_colors</STRONG>  and
        <STRONG>can_change_color</STRONG>  return  <STRONG>TRUE</STRONG>  or  <STRONG>FALSE</STRONG>,  depending   on
        whether  the  terminal  has color capabilities and whether
-       the  programmer  can  change  the  colors.   The   routine
-       <STRONG>color_content</STRONG>  allows  a programmer to extract the amounts
-       of red, green,  and  blue  components  in  an  initialized
-       color.   The  routine  <STRONG>pair_content</STRONG> allows a programmer to
-       find out how a given color-pair is currently defined.
+       the programmer can change the colors.   The  routine  <STRONG>col-</STRONG>
+       <STRONG>or_content</STRONG>  allows  a programmer to extract the amounts of
+       red, green, and blue components in an  initialized  color.
+       The  routine  <STRONG>pair_content</STRONG> allows a programmer to find out
+       how a given color-pair is currently defined.
 
-   <STRONG>Routine</STRONG> <STRONG>Descriptions</STRONG>
+
+</PRE>
+<H3><a name="h3-Routine-Descriptions">Routine Descriptions</a></H3><PRE>
        The <STRONG>start_color</STRONG> routine requires no arguments.  It must be
        called  if  the programmer wants to use colors, and before
        any other color manipulation routine  is  called.   It  is
        good  practice  to  call this routine right after <STRONG>initscr</STRONG>.
-       <STRONG>start_color</STRONG> initializes eight basic  colors  (black,  red,
-       green,  yellow,  blue,  magenta, cyan, and white), and two
-       global variables,  <STRONG>COLORS</STRONG>  and  <STRONG>COLOR_PAIRS</STRONG>  (respectively
-       defining  the maximum number of colors and color-pairs the
-       terminal can support).  It also restores the colors on the
-       terminal to the values they had when the terminal was just
-       turned on.
+       <STRONG>start_color</STRONG> does this:
+
+       <STRONG>o</STRONG>   It initializes two global variables, <STRONG>COLORS</STRONG>  and  <STRONG>COL-</STRONG>
+           <STRONG>OR_PAIRS</STRONG>  (respectively defining the maximum number of
+           colors and color-pairs the terminal can support).
+
+       <STRONG>o</STRONG>   It initializes the special color pair <STRONG>0</STRONG> to the default
+           foreground  and  background  colors.   No  other color
+           pairs are initialized.
+
+       <STRONG>o</STRONG>   It restores the colors on the terminal to  the  values
+           they had when the terminal was just turned on.
+
+       <STRONG>o</STRONG>   If  the terminal supports the <STRONG>initc</STRONG> (<STRONG>initialize_color</STRONG>)
+           capability, <STRONG>start_color</STRONG> initializes its internal table
+           representing the red, green and blue components of the
+           color palette.
+
+           The components depend on whether the terminal uses CGA
+           (aka "ANSI") or HLS (i.e., the <STRONG>hls</STRONG> (<STRONG>hue_lightness_sat-</STRONG>
+           <STRONG>uration</STRONG>) capability is set).  The table is initialized
+           first  for eight basic colors (black, red, green, yel-
+           low, blue, magenta, cyan, and white), and  after  that
+           (if  the terminal supports more than eight colors) the
+           components are initialized to <STRONG>1000</STRONG>.
+
+           <STRONG>start_color</STRONG> does not attempt  to  set  the  terminal's
+           color  palette to match its built-in table.  An appli-
+           cation may use <STRONG>init_color</STRONG> to alter the internal  table
+           along with the terminal's color.
+
+       These  limits apply to color values and color pairs.  Val-
+       ues outside these limits are not legal, and may result  in
+       a runtime error:
+
+       <STRONG>o</STRONG>   <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_col-</STRONG>
+           <STRONG>ors</STRONG> capability, which is typically a signed 16-bit in-
+           teger (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
+
+       <STRONG>o</STRONG>   color values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COL-</STRONG>
+           <STRONG>ORS-1</STRONG>, inclusive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>).
+
+       <STRONG>o</STRONG>   a special color value <STRONG>-1</STRONG> is used in  certain  extended
+           functions  to  denote  the  <EM>default</EM> <EM>color</EM> (see <STRONG>use_de-</STRONG>
+           <STRONG>fault_colors</STRONG>).
+
+       <STRONG>o</STRONG>   <STRONG>COLOR_PAIRS</STRONG> corresponds  to  the  terminal  database's
+           <STRONG>max_pairs</STRONG>  capability,  which  is  typically  a signed
+           16-bit integer (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
+
+       <STRONG>o</STRONG>   legal color pair values are in the  range  <STRONG>1</STRONG>  to  <STRONG>COL-</STRONG>
+           <STRONG>OR_PAIRS-1</STRONG>, inclusive.
+
+       <STRONG>o</STRONG>   color pair <STRONG>0</STRONG> is special; it denotes "no color".
+
+           Color  pair  <STRONG>0</STRONG> is assumed to be white on black, but is
+           actually whatever the terminal implements before color
+           is initialized.  It cannot be modified by the applica-
+           tion.
 
        The <STRONG>init_pair</STRONG> routine changes the definition of  a  color-
        pair.   It takes three arguments: the number of the color-
        pair to be changed, the foreground color number,  and  the
        background color number.  For portable applications:
 
-       -    The value of the first argument must be between <STRONG>1</STRONG> and
-            <STRONG>COLOR_PAIRS-1</STRONG>.
+       <STRONG>o</STRONG>   The  first  argument must be a legal color pair value.
+           If default colors are  used  (see  <STRONG>use_default_colors</STRONG>)
+           the  upper  limit is adjusted to allow for extra pairs
+           which use a default color in foreground  and/or  back-
+           ground.
 
-       -    The value of the second and third arguments  must  be
-            between  0  and  <STRONG>COLORS</STRONG> (the 0 color pair is wired to
-            white on black and cannot be changed).
+       <STRONG>o</STRONG>   The  second  and  third  arguments must be legal color
+           values.
 
        If the color-pair was previously initialized,  the  screen
        is  refreshed  and  all occurrences of that color-pair are
        changed to the new definition.
 
-       As an extension, ncurses allows you to set  color  pair  0
+       As an extension, ncurses allows you to set  color  pair  <STRONG>0</STRONG>
        via  the  <STRONG>assume_default_colors</STRONG> routine, or to specify the
-       use of default colors  (color  number  <STRONG>-1</STRONG>)  if  you  first
-       invoke the <STRONG>use_default_colors</STRONG> routine.
+       use of default colors (color number <STRONG>-1</STRONG>) if you  first  in-
+       voke the <STRONG>use_default_colors</STRONG> routine.
 
        The  <STRONG>init_color</STRONG> routine changes the definition of a color.
        It takes four arguments: the number of  the  color  to  be
        changed  followed  by three RGB values (for the amounts of
-       red, green, and blue components).  The value of the  first
-       argument  must  be between <STRONG>0</STRONG> and <STRONG>COLORS</STRONG>.  (See the section
-       <STRONG>Colors</STRONG> for the default color index.)   Each  of  the  last
-       three  arguments must be a value between 0 and 1000.  When
-       <STRONG>init_color</STRONG> is used, all occurrences of that color  on  the
-       screen immediately change to the new definition.
-
-       The  <STRONG>has_colors</STRONG> routine requires no arguments.  It returns
-       <STRONG>TRUE</STRONG> if the terminal can manipulate colors; otherwise,  it
+       red, green, and blue components).  The first argument must
+       be  a  legal  color  value; default colors are not allowed
+       here.  (See the section <STRONG>Colors</STRONG> for the default  color  in-
+       dex.)  Each of the last three arguments must be a value in
+       the range <STRONG>0</STRONG> through <STRONG>1000</STRONG>.  When <STRONG>init_color</STRONG>  is  used,  all
+       occurrences of that color on the screen immediately change
+       to the new definition.
+
+       The <STRONG>has_colors</STRONG> routine requires no arguments.  It  returns
+       <STRONG>TRUE</STRONG>  if the terminal can manipulate colors; otherwise, it
        returns <STRONG>FALSE</STRONG>.  This routine facilitates writing terminal-
-       independent programs.  For example, a programmer  can  use
-       it  to  decide  whether  to  use color or some other video
-       attribute.
+       independent  programs.   For example, a programmer can use
+       it to decide whether to use color or some other video  at-
+       tribute.
 
-       The <STRONG>can_change_color</STRONG> routine requires  no  arguments.   It
-       returns  <STRONG>TRUE</STRONG>  if  the  terminal  supports  colors and can
-       change their definitions; other, it returns  <STRONG>FALSE</STRONG>.   This
+       The  <STRONG>can_change_color</STRONG>  routine  requires no arguments.  It
+       returns <STRONG>TRUE</STRONG> if  the  terminal  supports  colors  and  can
+       change  their  definitions; other, it returns <STRONG>FALSE</STRONG>.  This
        routine facilitates writing terminal-independent programs.
 
        The <STRONG>color_content</STRONG> routine gives programmers a way to  find
        in a color.  It requires four arguments: the color number,
        and  three addresses of <STRONG>short</STRONG>s for storing the information
        about the amounts of red, green, and  blue  components  in
-       the  given color.  The value of the first argument must be
-       between 0 and <STRONG>COLORS</STRONG>.  The values that are stored  at  the
-       addresses  pointed  to  by  the  last  three arguments are
-       between 0 (no component) and 1000 (maximum amount of  com-
-       ponent).
+       the given color.  The first argument must be a legal color
+       value, i.e., <STRONG>0</STRONG> through <STRONG>COLORS-1</STRONG>,  inclusive.   The  values
+       that  are  stored  at the addresses pointed to by the last
+       three arguments are in the range <STRONG>0</STRONG> (no component)  through
+       <STRONG>1000</STRONG> (maximum amount of component), inclusive.
 
        The  <STRONG>pair_content</STRONG>  routine  allows programmers to find out
        what colors a given color-pair consists of.   It  requires
        three  arguments: the color-pair number, and two addresses
        of <STRONG>short</STRONG>s for storing the foreground  and  the  background
-       color  numbers.   The  value of the first argument must be
-       between 1 and <STRONG>COLOR_PAIRS-1</STRONG>.  The values that  are  stored
-       at  the addresses pointed to by the second and third argu-
-       ments are between 0 and <STRONG>COLORS</STRONG>.
+       color  numbers.   The first argument must be a legal color
+       value, i.e., in the range <STRONG>1</STRONG> through <STRONG>COLOR_PAIRS-1</STRONG>,  inclu-
+       sive.  The values that are stored at the addresses pointed
+       to by the second and third arguments are in  the  range  <STRONG>0</STRONG>
+       through <STRONG>COLORS</STRONG>, inclusive.
+
 
-   <STRONG>Colors</STRONG>
+</PRE>
+<H3><a name="h3-Colors">Colors</a></H3><PRE>
        In <STRONG>&lt;curses.h&gt;</STRONG> the following macros are defined.  These are
-       the  default colors.  <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG>
+       the default colors.  <STRONG>curses</STRONG> also assumes that  <STRONG>COLOR_BLACK</STRONG>
        is the default background color for all terminals.
 
              <STRONG>COLOR_BLACK</STRONG>
 
 
 </PRE>
-<H2>RETURN VALUE</H2><PRE>
-       The routines <STRONG>can_change_color()</STRONG>  and  <STRONG>has_colors()</STRONG>  return
+<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+       The  routines  <STRONG>can_change_color()</STRONG>  and <STRONG>has_colors()</STRONG> return
        <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
 
        All other routines return the integer <STRONG>ERR</STRONG> upon failure and
-       an <STRONG>OK</STRONG> (SVr4 specifies only "an integer  value  other  than
+       an  <STRONG>OK</STRONG>  (SVr4  specifies only "an integer value other than
        <STRONG>ERR</STRONG>") upon successful completion.
 
+       X/Open defines no error conditions.   This  implementation
+       will  return  <STRONG>ERR</STRONG>  on attempts to use color values outside
+       the range <STRONG>0</STRONG> to COLORS-1 (except for the default colors ex-
+       tension),  or  use color pairs outside the range <STRONG>0</STRONG> to <STRONG>COL-</STRONG>
+       <STRONG>OR_PAIRS-1</STRONG>.  Color values used in <STRONG>init_color</STRONG>  must  be  in
+       the  range <STRONG>0</STRONG> to <STRONG>1000</STRONG>.  An error is returned from all func-
+       tions if the terminal has not been initialized.  An  error
+       is  returned from secondary functions such as <STRONG>init_pair</STRONG> if
+       <STRONG>start_color</STRONG> was not called.
+
+          <STRONG>init_color</STRONG>
+               returns an error if the terminal does not  support
+               this  feature, e.g., if the <EM>initialize</EM><STRONG>_</STRONG><EM>color</EM> capa-
+               bility is absent from the terminal description.
+
+          <STRONG>start_color</STRONG>
+               returns an error if the color table cannot be  al-
+               located.
+
 
 </PRE>
-<H2>NOTES</H2><PRE>
+<H2><a name="h2-NOTES">NOTES</a></H2><PRE>
        In  the  <EM>ncurses</EM> implementation, there is a separate color
-       activation flag, color palette,  color  pairs  table,  and
-       associated  COLORS and COLOR_PAIRS counts for each screen;
+       activation flag, color palette, color pairs table, and as-
+       sociated  COLORS  and  COLOR_PAIRS counts for each screen;
        the <STRONG>start_color</STRONG> function only affects the current  screen.
        The SVr4/XSI interface is not really designed with this in
        mind, and historical  implementations  may  use  a  single
        Several  caveats  apply  on 386 and 486 machines with VGA-
        compatible graphics:
 
-       -    COLOR_YELLOW is actually brown.  To get  yellow,  use
-            COLOR_YELLOW combined with the <STRONG>A_BOLD</STRONG> attribute.
+       <STRONG>o</STRONG>   COLOR_YELLOW is actually brown.  To  get  yellow,  use
+           COLOR_YELLOW combined with the <STRONG>A_BOLD</STRONG> attribute.
 
-       -    The  A_BLINK  attribute  should  in  theory cause the
-            background to go bright.  This often fails  to  work,
-            and  even  some cards for which it mostly works (such
-            as the Paradise and compatibles) do the  wrong  thing
-            when you try to set a bright "yellow" background (you
-            get a blinking yellow foreground instead).
+       <STRONG>o</STRONG>   The A_BLINK attribute should in theory cause the back-
+           ground to go bright.  This often fails  to  work,  and
+           even some cards for which it mostly works (such as the
+           Paradise and compatibles) do the wrong thing when  you
+           try  to  set  a  bright "yellow" background (you get a
+           blinking yellow foreground instead).
 
-          Color RGB values are not settable.
+       <STRONG>o</STRONG>   Color RGB values are not settable.
 
 
 </PRE>
-<H2>PORTABILITY</H2><PRE>
+<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
        This implementation satisfies XSI Curses's  minimum  maxi-
        mums for <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>.
 
        The  <STRONG>init_pair</STRONG>  routine  accepts  negative values of fore-
-       ground   and   background    color    to    support    the
-       <STRONG>use_default_colors</STRONG> extension, but only if that routine has
-       been first invoked.
+       ground  and  background  color  to  support  the   <STRONG>use_de-</STRONG>
+       <STRONG>fault_colors</STRONG>  extension, but only if that routine has been
+       first invoked.
 
        The assumption that <STRONG>COLOR_BLACK</STRONG> is the default  background
-       color   for  all  terminals  can  be  modified  using  the
-       <STRONG>assume_default_colors</STRONG> extension,
+       color  for  all  terminals  can  be modified using the <STRONG>as-</STRONG>
+       <STRONG>sume_default_colors</STRONG> extension.
 
+       This implementation checks the  pointers,  e.g.,  for  the
+       values  returned  by  <STRONG>color_content</STRONG>  and <STRONG>pair_content</STRONG>, and
+       will treat those as optional parameters when null.
 
 
 </PRE>
-<H2>SEE ALSO</H2><PRE>
-       <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>default_col-</STRONG>
-       <STRONG><A HREF="default_colors.3x.html">ors(3x)</A></STRONG>
+<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+       <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>curs_vari-</STRONG>
+       <STRONG><A HREF="curs_variables.3x.html">ables(3x)</A></STRONG>, <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
 
 
 
-                                                   <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
 </PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-Overview">Overview</a></li>
+<li><a href="#h3-Routine-Descriptions">Routine Descriptions</a></li>
+<li><a href="#h3-Colors">Colors</a></li>
+</ul>
+</li>
+<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+</ul>
+</div>
 </BODY>
 </HTML>