diff options
Diffstat (limited to 'doc/html/man/curs_color.3x.html')
| -rw-r--r-- | doc/html/man/curs_color.3x.html | 407 | 
1 files changed, 238 insertions, 169 deletions
| diff --git a/doc/html/man/curs_color.3x.html b/doc/html/man/curs_color.3x.html index c672b72a90ef..d84a5732540a 100644 --- a/doc/html/man/curs_color.3x.html +++ b/doc/html/man/curs_color.3x.html @@ -1,6 +1,6 @@ -<!--  +<!--    **************************************************************************** -  * Copyright 2018-2019,2020 Thomas E. Dickey                                * +  * Copyright 2018-2023,2024 Thomas E. Dickey                                *    * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *    *                                                                          *    * Permission is hereby granted, free of charge, to any person obtaining a  * @@ -27,35 +27,41 @@    * sale, use or other dealings in this Software without prior written       *    * authorization.                                                           *    **************************************************************************** -  * @Id: curs_color.3x,v 1.63 2020/10/24 09:35:23 tom Exp @ +  * @Id: curs_color.3x,v 1.100 2024/04/20 21:24:19 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 https://invisible-island.net/scripts/readme.html#others_scripts"> -<TITLE>curs_color 3x</TITLE> +<TITLE>curs_color 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>  <link rel="author" href="mailto:bug-ncurses@gnu.org"> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +  </HEAD>  <BODY> -<H1 class="no-header">curs_color 3x</H1> +<H1 class="no-header">curs_color 3x 2024-04-20 ncurses 6.5 Library calls</H1>  <PRE> -<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>                   Library calls                  <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>  </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE> -       <STRONG>start_color</STRONG>, <STRONG>has_colors</STRONG>, <STRONG>can_change_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, -       <STRONG>init_extended_pair</STRONG>, <STRONG>init_extended_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, -       <STRONG>extended_color_content</STRONG>, <STRONG>extended_pair_content</STRONG>, <STRONG>reset_color_pairs</STRONG>, -       <STRONG>COLOR_PAIR</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> color manipulation routines +       <STRONG>start_color</STRONG>,   <STRONG>has_colors</STRONG>,   <STRONG>can_change_color</STRONG>,  <STRONG>init_pair</STRONG>,  <STRONG>init_color</STRONG>, +       <STRONG>init_extended_pair</STRONG>, <STRONG>init_extended_color</STRONG>,  <STRONG>color_content</STRONG>,  <STRONG>pair_content</STRONG>, +       <STRONG>extended_color_content</STRONG>,    <STRONG>extended_pair_content</STRONG>,    <STRONG>reset_color_pairs</STRONG>, +       <STRONG>COLOR_PAIR</STRONG>, <STRONG>PAIR_NUMBER</STRONG>, <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>,  <STRONG>COLOR_BLACK</STRONG>,  <STRONG>COLOR_RED</STRONG>, +       <STRONG>COLOR_GREEN</STRONG>,   <STRONG>COLOR_YELLOW</STRONG>,   <STRONG>COLOR_BLUE</STRONG>,  <STRONG>COLOR_MAGENTA</STRONG>,  <STRONG>COLOR_CYAN</STRONG>, +       <STRONG>COLOR_WHITE</STRONG> - manipulate terminal colors with <EM>curses</EM>  </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>         <STRONG>#include</STRONG> <STRONG><curses.h></STRONG> +       <EM>/*</EM> <EM>variables</EM> <EM>*/</EM> +       <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG> +       <STRONG>int</STRONG> <STRONG>COLORS;</STRONG> +         <STRONG>int</STRONG> <STRONG>start_color(void);</STRONG>         <STRONG>bool</STRONG> <STRONG>has_colors(void);</STRONG> @@ -63,89 +69,88 @@         <STRONG>int</STRONG> <STRONG>init_pair(short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>f</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>b</EM><STRONG>);</STRONG>         <STRONG>int</STRONG> <STRONG>init_color(short</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>b</EM><STRONG>);</STRONG> -       /* extensions */ +       <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>         <STRONG>int</STRONG> <STRONG>init_extended_pair(int</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>f</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>b</EM><STRONG>);</STRONG>         <STRONG>int</STRONG> <STRONG>init_extended_color(int</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>b</EM><STRONG>);</STRONG>         <STRONG>int</STRONG> <STRONG>color_content(short</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>r</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>g</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG>         <STRONG>int</STRONG> <STRONG>pair_content(short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>f</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG> -       /* extensions */ +       <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>         <STRONG>int</STRONG> <STRONG>extended_color_content(int</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>r</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>g</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG>         <STRONG>int</STRONG> <STRONG>extended_pair_content(int</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>f</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG> -       /* extensions */ +       <EM>/*</EM> <EM>extension</EM> <EM>*/</EM>         <STRONG>void</STRONG> <STRONG>reset_color_pairs(void);</STRONG>         <STRONG>int</STRONG> <STRONG>COLOR_PAIR(int</STRONG> <EM>n</EM><STRONG>);</STRONG> -       <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM><STRONG>);</STRONG> +       <STRONG>PAIR_NUMBER(int</STRONG> <EM>attr</EM><STRONG>);</STRONG>  </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>  </PRE><H3><a name="h3-Overview">Overview</a></H3><PRE> -       <STRONG>curses</STRONG> supports color attributes on terminals with that capability.  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 -       background color (for the blank field on which the characters are  dis- -       played).   A  programmer  initializes  a  color-pair  with  the routine -       <STRONG>init_pair</STRONG>.  After it has been initialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can be used to -       convert the pair to a video attribute. +       <EM>curses</EM> supports color attributes on  terminals  with  that  capability. +       Call  <STRONG>start_color</STRONG>  (typically  right  after <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>) to enable this +       feature.  Colors are always used in pairs.   A  <EM>color</EM>  <EM>pair</EM>  couples  a +       foreground  color  for characters with a background color for the blank +       field on which characters are rendered.  <STRONG>init_pair</STRONG> initializes a  color +       pair.   The  macro  <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>)  can then convert the pair to a video +       attribute. -       If  a  terminal is capable of redefining colors, the programmer can use -       the routine <STRONG>init_color</STRONG> to change the definition of a color.   The  rou- -       tines  <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 program- -       mer can change the colors.  The routine <STRONG>color_content</STRONG> allows a program- -       mer 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. +       If  a  terminal  has  the  relevant  capability,   <STRONG>init_color</STRONG>   permits +       (re)definition of a color.  <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  capability  and +       whether  the  programmer  can change the colors.  <STRONG>color_content</STRONG> permits +       extraction of the red, green, and blue  components  of  an  initialized +       color.   <STRONG>pair_content</STRONG>  permits  discovery  of  a  color  pair's current +       definition. -</PRE><H3><a name="h3-Color-Rendering">Color Rendering</a></H3><PRE> -       The <STRONG>curses</STRONG> library combines these inputs to produce  the  actual  fore- -       ground and background colors shown on the screen: +</PRE><H3><a name="h3-Rendering">Rendering</a></H3><PRE> +       <EM>curses</EM> combines the following data to render a character cell.  Any  of +       them can include color information. -       <STRONG>o</STRONG>   per-character video attributes (e.g., via <STRONG>waddch</STRONG>), +       <STRONG>o</STRONG>   <EM>curses</EM> character attributes, as from <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> or <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> -       <STRONG>o</STRONG>   the window attribute (e.g., by <STRONG>wattrset</STRONG>), and +       <STRONG>o</STRONG>   window attributes, as from <STRONG><A HREF="curs_attr.3x.html">wattrset(3x)</A></STRONG> or <STRONG><A HREF="curs_attr.3x.html">wattr_set(3x)</A></STRONG> -       <STRONG>o</STRONG>   the background character (e.g., <STRONG>wbkgdset</STRONG>). +       <STRONG>o</STRONG>   window  background  character  attributes,  as from <STRONG><A HREF="curs_bkgd.3x.html">wbkgdset(3x)</A></STRONG> or +           <STRONG><A HREF="curs_bkgrnd.3x.html">wbkgrndset(3x)</A></STRONG> -       Per-character and window attributes are usually set by a parameter con- -       taining video attributes including a color pair value.  Some  functions -       such as <STRONG>wattr_set</STRONG> use a separate parameter which is the color pair num- -       ber. +       Per-character and window attributes are usually set through a  function +       parameter  containing  attributes  including  a color pair value.  Some +       functions,  such  as  <STRONG>wattr_set</STRONG>,  use  a  separate  color  pair  number +       parameter. -       The background character is a special case:  it  includes  a  character -       value, just as if it were passed to <STRONG>waddch</STRONG>. +       The  background  character  is  a special case: it includes a character +       code, just as if it were passed to <STRONG>waddch</STRONG>. -       The  <STRONG>curses</STRONG> library does the actual work of combining these color pairs +       The <EM>curses</EM> library does the actual work of combining these color  pairs         in an internal function called from <STRONG>waddch</STRONG>:         <STRONG>o</STRONG>   If the parameter passed to <STRONG>waddch</STRONG> is <EM>blank</EM>, and it uses the special             color pair 0, -           <STRONG>o</STRONG>   <STRONG>curses</STRONG> next checks the window attribute. +           <STRONG>o</STRONG>   <EM>curses</EM> next checks the window attribute. -           <STRONG>o</STRONG>   If  the window attribute does not use color pair 0, <STRONG>curses</STRONG> uses +           <STRONG>o</STRONG>   If the window attribute does not use color pair 0, <EM>curses</EM>  uses                 the color pair from the window attribute. -           <STRONG>o</STRONG>   Otherwise, <STRONG>curses</STRONG> uses the background character. +           <STRONG>o</STRONG>   Otherwise, <EM>curses</EM> uses the background character. -       <STRONG>o</STRONG>   If the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not  use -           the  special  color  pair 0, <STRONG>curses</STRONG> prefers the color pair from the -           parameter, if it is nonzero.  Otherwise, it tries the window attri- -           bute next, and finally the background character. +       <STRONG>o</STRONG>   If  the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not use +           the special color pair 0, <EM>curses</EM> prefers the color  pair  from  the +           parameter,  if  it  is  nonzero.   Otherwise,  it  tries the window +           attribute next, and finally the background character. -       Some  <STRONG>curses</STRONG>  functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>.  Those do not com- -       bine its parameter with a color pair.  Consequently those calls use on- -       ly the window attribute or the background character. +       Some <EM>curses</EM> functions such  as  <STRONG>wprintw</STRONG>  call  <STRONG>waddch</STRONG>.   Those  do  not +       combine  its parameter with a color pair.  Consequently those calls use +       only the window attribute or the background character.  </PRE><H2><a name="h2-CONSTANTS">CONSTANTS</a></H2><PRE>         In <STRONG><curses.h></STRONG> the following macros are defined.  These are the standard -       colors (ISO-6429).  <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG> is the default +       colors (ISO-6429).  <EM>curses</EM> also assumes that <STRONG>COLOR_BLACK</STRONG> is the default         background color for all terminals.               <STRONG>COLOR_BLACK</STRONG> @@ -157,32 +162,39 @@               <STRONG>COLOR_CYAN</STRONG>               <STRONG>COLOR_WHITE</STRONG> -       Some  terminals  support  more than the eight (8) "ANSI" colors.  There +       Some terminals support more than the eight (8)  "ANSI"  colors.   There         are no standard names for those additional colors.  </PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE>  </PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE> -       is initialized by <STRONG>start_color</STRONG> to the maximum number of colors the  ter- -       minal can support. +       is  initialized  by  <STRONG>start_color</STRONG>  to  the  maximum number of colors the +       terminal can support.  </PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE> -       is  initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs the -       terminal can support. +       is initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs  the +       terminal can support.  Often, its value is the product <STRONG>COLORS</STRONG> x <STRONG>COLORS</STRONG>, +       but this is not always true. + +       <STRONG>o</STRONG>   A few terminals use the HLS color space  (see  <STRONG>start_color</STRONG>  below), +           ignoring this rule; and + +       <STRONG>o</STRONG>   terminals  supporting  a  large number of colors are limited to the +           number of color pairs that a <EM>signed</EM> <EM>short</EM> value can represent.  </PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>  </PRE><H3><a name="h3-start_color">start_color</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 manipu- -       lation routine is called.  It is good practice  to  call  this  routine -       right after <STRONG>initscr</STRONG>.  <STRONG>start_color</STRONG> does this: +       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> does this: -       <STRONG>o</STRONG>   It  initializes  two  global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> (re- -           spectively defining the maximum number of  colors  and  color-pairs +       <STRONG>o</STRONG>   It   initializes  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).         <STRONG>o</STRONG>   It  initializes  the special color pair <STRONG>0</STRONG> to the default foreground @@ -209,77 +221,77 @@             initial eight colors.             <STRONG>start_color</STRONG> does not attempt to set the terminal's color palette to -           match its built-in table.  An application may use <STRONG>init_color</STRONG> to al- -           ter the internal table along with the terminal's color. +           match  its  built-in  table.   An application 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.   Values  outside -       these limits are not legal, and may result in a runtime error: +       these limits are not valid, and may result in a runtime error: -       <STRONG>o</STRONG>   <STRONG>COLORS</STRONG>  corresponds to the terminal database's <STRONG>max_colors</STRONG> capabili- -           ty, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>). +       <STRONG>o</STRONG>   <STRONG>COLORS</STRONG>   corresponds   to   the   terminal   database's  <STRONG>max_colors</STRONG> +           capability, (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>COLORS-1</STRONG>,  inclu- -           sive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>). +       <STRONG>o</STRONG>   color values are expected  to  be  in  the  range  <STRONG>0</STRONG>  to  <STRONG>COLORS-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><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>). -       <STRONG>o</STRONG>   <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's <STRONG>max_pairs</STRONG>  capa- -           bility, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>). +       <STRONG>o</STRONG>   <STRONG>COLOR_PAIRS</STRONG>  corresponds  to  the  terminal  database's   <STRONG>max_pairs</STRONG> +           capability, (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>COLOR_PAIRS-1</STRONG>, inclu- -           sive. +       <STRONG>o</STRONG>   valid  color  pair  values  are  in  the  range <STRONG>1</STRONG> to <STRONG>COLOR_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 what- -           ever  the terminal implements before color is initialized.  It can- -           not be modified by the application. +           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 application.  </PRE><H3><a name="h3-has_colors">has_colors</a></H3><PRE>         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 rou- -       tine facilitates writing terminal-independent programs.  For example, a -       programmer  can  use  it  to  decide whether to use color or some other -       video attribute. +       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.  </PRE><H3><a name="h3-can_change_color">can_change_color</a></H3><PRE>         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-indepen- -       dent programs. +       it  returns  <STRONG>FALSE</STRONG>.   This  routine   facilitates   writing   terminal- +       independent programs.  </PRE><H3><a name="h3-init_pair">init_pair</a></H3><PRE> -       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  fore- -       ground color number, and the background color number.  For portable ap- -       plications: +       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: -       <STRONG>o</STRONG>   The first argument must be a legal color pair  value.   If  default -           colors are used (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>) the upper limit is ad- -           justed to allow for extra pairs which use a default color in  fore- -           ground and/or background. +       <STRONG>o</STRONG>   The first argument must be a valid color pair  value.   If  default +           colors  are  used  (see  <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>) the upper limit is +           adjusted to allow for extra pairs which  use  a  default  color  in +           foreground and/or background. -       <STRONG>o</STRONG>   The second and third arguments must be legal color values. +       <STRONG>o</STRONG>   The second and third arguments must be valid 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  defini- -       tion. +       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 <STRONG>0</STRONG> via the <STRONG>as-</STRONG> -       <STRONG><A HREF="assume_default_colors.3x.html">sume_default_colors(3x)</A></STRONG> routine, or to specify the use of default  col- -       ors  (color  number  <STRONG>-1</STRONG>) if you first invoke the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> +       As  an  extension,  <EM>ncurses</EM>  allows  you  to  set  color pair <STRONG>0</STRONG> via the +       <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG> routine, or to specify  the  use  of  default +       colors (color number <STRONG>-1</STRONG>) if you first invoke the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>         routine.  </PRE><H3><a name="h3-init_extended_pair">init_extended_pair</a></H3><PRE>         Because <STRONG>init_pair</STRONG> uses signed <STRONG>short</STRONG>s for its  parameters,  that  limits -       color-pairs  and  color-values to 32767 on modern hardware.  The exten- -       sion <STRONG>init_extended_pair</STRONG> uses <STRONG>int</STRONG>s for the color-pair  and  color-value, -       allowing a larger number of colors to be supported. +       color  pairs  and  color-values  to  32767  on  modern  hardware.   The +       extension <STRONG>init_extended_pair</STRONG> uses <STRONG>int</STRONG>s for the color  pair  and  color- +       value, allowing a larger number of colors to be supported.  </PRE><H3><a name="h3-init_color">init_color</a></H3><PRE> @@ -287,7 +299,7 @@         four arguments: the number of the color to be changed followed by three         RGB values (for the amounts of red, green, and blue components). -       <STRONG>o</STRONG>   The  first argument must be a legal color value; default colors are +       <STRONG>o</STRONG>   The  first argument must be a valid color value; default colors are             not allowed here.  (See the section <STRONG>Colors</STRONG> for  the  default  color             index.) @@ -300,20 +312,20 @@  </PRE><H3><a name="h3-init_extended_color">init_extended_color</a></H3><PRE>         Because  <STRONG>init_color</STRONG>  uses signed <STRONG>short</STRONG>s for its parameters, that limits -       color-values and their red, green, and blue components to 32767 on mod- -       ern hardware.  The extension <STRONG>init_extended_color</STRONG> uses <STRONG>int</STRONG>s for the col- -       or value and for setting the red, green, and blue components,  allowing -       a larger number of colors to be supported. +       color-values and their red, green, and  blue  components  to  32767  on +       modern  hardware.   The extension <STRONG>init_extended_color</STRONG> uses <STRONG>int</STRONG>s for the +       color value and for  setting  the  red,  green,  and  blue  components, +       allowing a larger number of colors to be supported.  </PRE><H3><a name="h3-color_content">color_content</a></H3><PRE>         The <STRONG>color_content</STRONG> routine gives programmers a way to find the intensity         of the red, green, and blue (RGB) components 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  com- -       ponents in the given color. +       storing the information about the  amounts  of  red,  green,  and  blue +       components in the given color. -       <STRONG>o</STRONG>   The  first  argument  must  be a legal color value, i.e., <STRONG>0</STRONG> through +       <STRONG>o</STRONG>   The  first  argument  must  be a valid color value, i.e., <STRONG>0</STRONG> through             <STRONG>COLORS-1</STRONG>, inclusive.         <STRONG>o</STRONG>   The values that are stored at the addresses pointed to by the  last @@ -322,68 +334,70 @@  </PRE><H3><a name="h3-extended_color_content">extended_color_content</a></H3><PRE> -       Because <STRONG>color_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that  lim- -       its  color-values and their red, green, and blue components to 32767 on -       modern hardware.  The extension <STRONG>extended_color_content</STRONG>  uses  <STRONG>int</STRONG>s  for +       Because <STRONG>color_content</STRONG> uses  signed  <STRONG>short</STRONG>s  for  its  parameters,  that +       limits  color-values and their red, green, and blue components to 32767 +       on modern hardware.  The extension <STRONG>extended_color_content</STRONG> uses <STRONG>int</STRONG>s for         the  color value and for returning the red, green, and blue components,         allowing a larger number of colors to be supported.  </PRE><H3><a name="h3-pair_content">pair_content</a></H3><PRE>         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- +       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. -       <STRONG>o</STRONG>   The  first argument must be a legal color value, i.e., in the range +       <STRONG>o</STRONG>   The  first argument must be a valid color value, i.e., in the range             <STRONG>1</STRONG> through <STRONG>COLOR_PAIRS-1</STRONG>, inclusive. -       <STRONG>o</STRONG>   The values that are stored at the addresses pointed to by the  sec- -           ond  and  third arguments are in the range <STRONG>0</STRONG> through <STRONG>COLORS</STRONG>, inclu- -           sive. +       <STRONG>o</STRONG>   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.  </PRE><H3><a name="h3-extended_pair_content">extended_pair_content</a></H3><PRE>         Because <STRONG>pair_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits -       color-pair and color-values to 32767 on modern hardware.  The extension +       color pair and color-values to 32767 on modern hardware.  The extension         <STRONG>extended_pair_content</STRONG> uses <STRONG>int</STRONG>s for the color pair  and  for  returning -       the  foreground and background colors, allowing a larger number of col- -       ors to be supported. +       the  foreground  and  background  colors,  allowing  a larger number of +       colors to be supported.  </PRE><H3><a name="h3-reset_color_pairs">reset_color_pairs</a></H3><PRE> -       The extension <STRONG>reset_color_pairs</STRONG> tells ncurses to  discard  all  of  the -       color-pair  information  which was set with <STRONG>init_pair</STRONG>.  It also touches +       The extension <STRONG>reset_color_pairs</STRONG> tells <EM>ncurses</EM> to  discard  all  of  the +       color  pair  information which was set with <STRONG>init_pair</STRONG>.  It also touches         the current- and standard-screens, allowing an  application  to  switch         color palettes rapidly. -</PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE> -       <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM>)  extracts  the  color value from its <EM>attrs</EM> parameter -       and returns it as a color pair number. +</PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE> +       <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute.  Attributes +       can hold color pairs in the range 0 to 255.  If you need a  color  pair +       larger  than  that, you must use functions such as <STRONG>attr_set</STRONG> (which pass +       the color  pair  as  a  separate  parameter)  rather  than  the  legacy +       functions such as <STRONG>attrset</STRONG>. -</PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE> -       Its inverse <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute. -       Attributes  can  hold color pairs in the range 0 to 255.  If you need a -       color pair larger than that, you must use functions  such  as  <STRONG>attr_set</STRONG> -       (which  pass  the  color  pair as a separate parameter) rather than the -       legacy functions such as <STRONG>attrset</STRONG>. +</PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE> +       <STRONG>PAIR_NUMBER(</STRONG><EM>attr</EM>)   extracts   the  color  information  from  its  <EM>attr</EM> +       parameter and returns it as a color pair  number;  it  is  the  inverse +       operation of <STRONG>COLOR_PAIR</STRONG>.  </PRE><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 <STRONG>ERR</STRONG>") upon successful com- -       pletion. +       All  other routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4 +       specifies only "an integer  value  other  than  <STRONG>ERR</STRONG>")  upon  successful +       completion. -       X/Open defines no error conditions.  SVr4 does document some error con- -       ditions which apply in general: +       X/Open  defines  no  error  conditions.   SVr4 does document some error +       conditions which apply in general:         <STRONG>o</STRONG>   This implementation will return <STRONG>ERR</STRONG> on attempts to use color values -           outside the range <STRONG>0</STRONG> to <STRONG>COLORS</STRONG>-1 (except for the default colors  ex- -           tension), or use color pairs outside the range <STRONG>0</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>. +           outside  the  range  <STRONG>0</STRONG>  to  <STRONG>COLORS</STRONG>-1 (except for the default colors +           extension),  or  use  color  pairs   outside   the   range   <STRONG>0</STRONG>   to +           <STRONG>COLOR_PAIRS-1</STRONG>.             Color values used in <STRONG>init_color</STRONG> must be in the range <STRONG>0</STRONG> to <STRONG>1000</STRONG>. @@ -393,9 +407,9 @@             An error is returned from secondary functions such as <STRONG>init_pair</STRONG>  if             <STRONG>start_color</STRONG> was not called. -       <STRONG>o</STRONG>   SVr4  does much the same, except that it returns <STRONG>ERR</STRONG> from <STRONG>pair_con-</STRONG> -           <STRONG>tent</STRONG> if the pair was not initialized using <STRONG>init_pairs</STRONG>  and  it  re- -           turns  <STRONG>ERR</STRONG>  from  <STRONG>color_content</STRONG>  if  the  terminal does not support +       <STRONG>o</STRONG>   SVr4   does  much  the  same,  except  that  it  returns  <STRONG>ERR</STRONG>  from +           <STRONG>pair_content</STRONG> if the pair was not initialized using  <STRONG>init_pairs</STRONG>  and +           it  returns <STRONG>ERR</STRONG> from <STRONG>color_content</STRONG> if the terminal does not support             changing colors.             This implementation does not return <STRONG>ERR</STRONG> for either case. @@ -412,12 +426,12 @@  </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> -       In the <STRONG>ncurses</STRONG> implementation, there is  a  separate  color  activation -       flag,  color palette, color pairs table, and associated <STRONG>COLORS</STRONG> and <STRONG>COL-</STRONG> -       <STRONG>OR_PAIRS</STRONG> 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  shared -       color palette. +       In the <EM>ncurses</EM> implementation, there is  a  separate  color  activation +       flag,  color  palette,  color  pairs  table,  and associated <STRONG>COLORS</STRONG> and +       <STRONG>COLOR_PAIRS</STRONG> 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 shared color palette.         Setting  an  implicit  background  color  via a color pair affects only         character cells that a character write  operation  explicitly  touches. @@ -439,40 +453,93 @@         <STRONG>o</STRONG>   Color RGB values are not settable. +</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE> +       The functions marked as extensions were designed for  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>,  and +       are  not  found  in  SVr4  <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous +       curses implementation. + +  </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE> -       This implementation satisfies XSI Curses's minimum maximums for  <STRONG>COLORS</STRONG> -       and <STRONG>COLOR_PAIRS</STRONG>. +       Applications employing <EM>ncurses</EM> extensions should condition their use on +       the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro. + +       This  implementation  satisfies  X/Open  Curses's  minimum maximums for +       <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>. -       The  <STRONG>init_pair</STRONG>  routine accepts negative values of foreground and back- -       ground color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but  only -       if that routine has been first invoked. +       The  <STRONG>init_pair</STRONG>  routine  accepts  negative  values  of  foreground  and +       background  color  to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></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><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG>  exten- -       sion. +       terminals   can   be   modified   using  the  <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></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 pa- -       rameters when null. +       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. -       X/Open  Curses  does  not  specify a limit for the number of colors and +       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 <STRONG>short</STRONG> -       for  the  parameters,  it carries over SVr4's implementation detail for +       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 -       <STRONG>short</STRONG> parameters, allowing applications to use larger color- and  pair- +       implementation provides extended versions of those functions which  use +       <STRONG>short</STRONG>  parameters, allowing applications to use larger color- and pair-         numbers. -       The <STRONG>reset_color_pairs</STRONG> function is an extension of ncurses. +       The <STRONG>reset_color_pairs</STRONG> function is an extension of <EM>ncurses</EM>. + + +</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +       SVr3.2 introduced color support to curses in 1987. + +       SVr4 made internal changes, e.g., moving  the  storage  for  the  color +       state  from  <STRONG>SP</STRONG>  (the  <EM>SCREEN</EM>  structure)  to  <STRONG>cur_term</STRONG>  (the  <EM>TERMINAL</EM> +       structure), but provided the same set of library functions. + +       SVr4 curses limits the number of color pairs  to  64,  reserving  color +       pair  zero  (0)  as the terminal's initial uncolored state.  This limit +       arises because the color pair information is a bitfield in  the  <STRONG>chtype</STRONG> +       data type (denoted by <STRONG>A_COLOR</STRONG>). + +       Other implementations of curses had different limits: + +       <STRONG>o</STRONG>   PCCurses (1987-1990) provided for only eight (8) colors. + +       <STRONG>o</STRONG>   PDCurses  (1992-present)  inherited  the  8-color  limitation  from +           PCCurses, but changed this to 256 in version 2.5 (2001), along with +           changing <STRONG>chtype</STRONG> from 16-bits to 32-bits. + +       <STRONG>o</STRONG>   X/Open Curses (1992-present) added a new structure <STRONG>cchar_t</STRONG> to store +           the character, attributes and color pair values, allowing increased +           range  of  color  pairs.   Both color pairs and color-values used a +           signed <STRONG>short</STRONG>, limiting values to 15 bits. + +       <STRONG>o</STRONG>   <EM>ncurses</EM> (1992-present)  uses  eight  bits  for  <STRONG>A_COLOR</STRONG>  in  <STRONG>chtype</STRONG> +           values. + +           Version  5.3  provided  a wide-character interface (2002), but left +           color pairs as part of the attributes-field. + +           Since version 6 (2015), ncurses uses a separate <STRONG>int</STRONG> for color pairs +           in the <STRONG>cchar_t</STRONG> values.  When those color pair values fit in 8 bits, +           ncurses allows color pairs to  be  manipulated  via  the  functions +           using <STRONG>chtype</STRONG> values. + +       <STRONG>o</STRONG>   NetBSD  curses  used  6  bits  from  2000  (when  colors were first +           supported) until 2004.  At that point, NetBSD  changed  to  use  10 +           bits.   As  of  2021,  that size is unchanged.  Like <EM>ncurses</EM> before +           version 6, the NetBSD color  pair  information  is  stored  in  the +           attributes  field of <STRONG>cchar_t</STRONG>, limiting the number of color pairs by +           the size of the bitfield.  </PRE><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><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>de-</STRONG> -       <STRONG><A HREF="default_colors.3x.html">fault_colors(3x)</A></STRONG> +       <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><A HREF="curs_variables.3x.html">curs_variables(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> +ncurses 6.5                       2024-04-20                    <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>  </PRE>  <div class="nav">  <ul> @@ -481,7 +548,7 @@  <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>  <ul>  <li><a href="#h3-Overview">Overview</a></li> -<li><a href="#h3-Color-Rendering">Color Rendering</a></li> +<li><a href="#h3-Rendering">Rendering</a></li>  </ul>  </li>  <li><a href="#h2-CONSTANTS">CONSTANTS</a></li> @@ -505,13 +572,15 @@  <li><a href="#h3-pair_content">pair_content</a></li>  <li><a href="#h3-extended_pair_content">extended_pair_content</a></li>  <li><a href="#h3-reset_color_pairs">reset_color_pairs</a></li> -<li><a href="#h3-PAIR_NUMBER">PAIR_NUMBER</a></li>  <li><a href="#h3-COLOR_PAIR">COLOR_PAIR</a></li> +<li><a href="#h3-PAIR_NUMBER">PAIR_NUMBER</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-EXTENSIONS">EXTENSIONS</a></li>  <li><a href="#h2-PORTABILITY">PORTABILITY</a></li> +<li><a href="#h2-HISTORY">HISTORY</a></li>  <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>  </ul>  </div> | 
