| <!-- |
| **************************************************************************** |
| * Copyright 2018-2019,2020 Thomas E. Dickey * |
| * Copyright 2000-2011,2016 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 * |
| * "Software"), to deal in the Software without restriction, including * |
| * without limitation the rights to use, copy, modify, merge, publish, * |
| * distribute, distribute with modifications, sublicense, and/or sell * |
| * copies of the Software, and to permit persons to whom the Software is * |
| * furnished to do so, subject to the following conditions: * |
| * * |
| * The above copyright notice and this permission notice shall be included * |
| * in all copies or substantial portions of the Software. * |
| * * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| * * |
| * Except as contained in this notice, the name(s) of the above copyright * |
| * holders shall not be used in advertising or otherwise to promote the * |
| * sale, use or other dealings in this Software without prior written * |
| * authorization. * |
| **************************************************************************** |
| * Author: Thomas E. Dickey 1997,1999,2000,2005 |
| * @Id: default_colors.3x,v 1.31 2020/12/19 21:38:37 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>default_colors 3x</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">default_colors 3x</H1> |
| <PRE> |
| <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> |
| |
| |
| |
| |
| </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE> |
| <STRONG>use_default_colors</STRONG>, <STRONG>assume_default_colors</STRONG> - use terminal's default |
| colors |
| |
| |
| </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE> |
| <STRONG>#include</STRONG> <STRONG><curses.h></STRONG> |
| |
| <STRONG>int</STRONG> <STRONG>use_default_colors(void);</STRONG> |
| <STRONG>int</STRONG> <STRONG>assume_default_colors(int</STRONG> <EM>fg</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>bg</EM><STRONG>);</STRONG> |
| |
| |
| </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE> |
| The <STRONG>use_default_colors</STRONG> and <STRONG>assume_default_colors</STRONG> functions are |
| extensions to the curses library. They are used with terminals that |
| support ISO 6429 color, or equivalent. These terminals allow the |
| application to reset color to an unspecified default value (e.g., with |
| SGR 39 or SGR 49). |
| |
| Applications that paint a colored background over the whole screen do |
| not take advantage of SGR 39 and SGR 49. Some applications are |
| designed to work with the default background, using colors only for |
| text. For example, there are several implementations of the <STRONG>ls</STRONG> program |
| which use colors to denote different file types or permissions. These |
| "color ls" programs do not necessarily modify the background color, |
| typically using only the <STRONG>setaf</STRONG> terminfo capability to set the |
| foreground color. Full-screen applications that use default colors can |
| achieve similar visual effects. |
| |
| The first function, <STRONG>use_default_colors</STRONG> tells the curses library to |
| assign terminal default foreground/background colors to color number |
| -1. So init_pair(x,COLOR_RED,-1) will initialize pair x as red on |
| default background and init_pair(x,-1,COLOR_BLUE) will initialize pair |
| x as default foreground on blue. |
| |
| The other, <STRONG>assume_default_colors</STRONG> is a refinement which tells which |
| colors to paint for color pair 0. This function recognizes a special |
| color number -1, which denotes the default terminal color. |
| |
| The following are equivalent: |
| <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors();</EM> |
| <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors(-1,-1);</EM> |
| |
| These are ncurses extensions. For other curses implementations, color |
| number -1 does not mean anything, just as for ncurses before a |
| successful call of <STRONG>use_default_colors</STRONG> or <STRONG>assume_default_colors</STRONG>. |
| |
| Other curses implementations do not allow an application to modify |
| color pair 0. They assume that the background is COLOR_BLACK, but do |
| not ensure that the color pair 0 is painted to match the assumption. |
| If your application does not use either <STRONG>use_default_colors</STRONG> or |
| <STRONG>assume_default_colors</STRONG> ncurses will paint a white foreground (text) with |
| black background for color pair 0. |
| |
| |
| </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> |
| These functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success. |
| They will fail if either the terminal does not support the <STRONG>orig_pair</STRONG> or |
| <STRONG>orig_colors</STRONG> capability. If the <STRONG>initialize_pair</STRONG> capability is not |
| found, this causes an error as well. |
| |
| |
| </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> |
| Associated with this extension, the <STRONG>init_pair</STRONG> function accepts negative |
| arguments to specify default foreground or background colors. |
| |
| The <STRONG>use_default_colors</STRONG> function was added to support <EM>ded</EM>. This is a |
| full-screen application which uses curses to manage only part of the |
| screen. The bottom portion of the screen, which is of adjustable size, |
| is left uncolored to display the results from shell commands. The top |
| portion of the screen colors filenames using a scheme like the "color |
| ls" programs. Attempting to manage the background color of the screen |
| for this application would give unsatisfactory results for a variety of |
| reasons. This extension was devised after noting that color xterm (and |
| similar programs) provides a background color which does not |
| necessarily correspond to any of the ANSI colors. While a special |
| terminfo entry could be constructed using nine colors, there was no |
| mechanism provided within curses to account for the related <STRONG>orig_pair</STRONG> |
| and <STRONG>back_color_erase</STRONG> capabilities. |
| |
| The <STRONG>assume_default_colors</STRONG> function was added to solve a different |
| problem: support for applications which would use environment variables |
| and other configuration to bypass curses' notion of the terminal's |
| default colors, setting specific values. |
| |
| |
| </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE> |
| These routines are specific to ncurses. They were not supported on |
| Version 7, BSD or System V implementations. It is recommended that any |
| code depending on them be conditioned using NCURSES_VERSION. |
| |
| |
| </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE> |
| <STRONG>ded(1)</STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>. |
| |
| |
| </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> |
| Thomas Dickey (from an analysis of the requirements for color xterm for |
| XFree86 3.1.2C, February 1996). |
| |
| |
| |
| <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> |
| </PRE> |
| <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></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> |
| <li><a href="#h2-AUTHOR">AUTHOR</a></li> |
| </ul> |
| </div> |
| </BODY> |
| </HTML> |