]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/curs_bkgrnd.3x.html
ncurses 6.4 - patch 20240414
[ncurses.git] / doc / html / man / curs_bkgrnd.3x.html
index 7d952f0c2a2f1ecb064484872ee1f941d54348d5..97878f91c222be771b1f409d85f3a8e1cc9c45be 100644 (file)
@@ -1,6 +1,7 @@
-<!-- 
+<!--
   ****************************************************************************
-  * Copyright (c) 2002-2017,2018 Free Software Foundation, Inc.              *
+  * Copyright 2018-2023,2024 Thomas E. Dickey                                *
+  * Copyright 2002-2015,2017 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_bkgrnd.3x,v 1.10 2018/12/09 00:50:50 tom Exp @
+  * @Id: curs_bkgrnd.3x,v 1.40 2024/03/23 19:59:45 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_bkgrnd 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<TITLE>curs_bkgrnd 3x 2024-03-23 ncurses 6.4 Library calls</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_bkgrnd 3x</H1>
+<H1 class="no-header">curs_bkgrnd 3x 2024-03-23 ncurses 6.4 Library calls</H1>
 <PRE>
-<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>                                                <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>                  Library calls                 <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
 
 
 
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
-       <STRONG>bkgrnd</STRONG>,  <STRONG>wbkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>getbkgrnd</STRONG>, <STRONG>wgetbkgrnd</STRONG> - <STRONG>curses</STRONG>
-       window complex background manipulation routines
+       <STRONG>bkgrnd</STRONG>,   <STRONG>wbkgrnd</STRONG>,   <STRONG>bkgrndset</STRONG>,  <STRONG>wbkgrndset</STRONG>,  <STRONG>getbkgrnd</STRONG>,  <STRONG>wgetbkgrnd</STRONG>  -
+       manipulate background of a <EM>curses</EM> window of wide characters
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
-       <STRONG>int</STRONG> <STRONG>bkgrnd(</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
-       <STRONG>int</STRONG> <STRONG>wbkgrnd(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
-       <STRONG>void</STRONG> <STRONG>bkgrndset(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>bkgrnd(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wbkgrnd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+
+       <STRONG>void</STRONG> <STRONG>bkgrndset(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
        <STRONG>void</STRONG> <STRONG>wbkgrndset(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+
        <STRONG>int</STRONG> <STRONG>getbkgrnd(cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>wgetbkgrnd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+       The  <EM>background</EM>  of  a  <EM>curses</EM>  window   (in   the   library's   "wide"
+       configuration)  is  a  <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>  combining  a  set  of  attributes  (see
+       <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>) with a complex character called the <EM>blank</EM> <EM>character.</EM>
 
-</PRE><H3><a name="h3-bkgrndset">bkgrndset</a></H3><PRE>
-       The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines manipulate the background of  the
-       named  window.   The  window  background is a <STRONG>cchar_t</STRONG> consisting of any
-       combination of attributes (i.e., rendition) and  a  complex  character.
-       The  attribute part of the background is combined (OR'ed) with all non-
-       blank characters that are written into the window  with  <STRONG>waddch</STRONG>.   Both
-       the  character  and attribute parts of the background are combined with
-       the blank characters.  The background becomes a property of the charac-
-       ter   and   moves   with   the  character  through  any  scrolling  and
-       insert/delete line/character operations.
+       The blank character is a spacing character that  populates  a  window's
+       character  cells  when  their  contents are erased without replacement.
+       The background's attributes are combined with all non-blank  characters
+       written  to  the  window,  as  with  the  <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> and <STRONG><A HREF="curs_ins_wch.3x.html">wins_wch(3x)</A></STRONG>
+       families of functions.
 
-       To the extent possible on a particular terminal, the attribute part  of
-       the  background  is displayed as the graphic rendition of the character
-       put on the screen.
+       The blank character and  attributes  of  the  background  combine  with
+       characters  written  to  the window as described below.  The background
+       becomes a property of the character  and  moves  with  it  through  any
+       scrolling and insert/delete line/character operations.
 
+       To  the  extent possible on a given terminal, the attribute part of the
+       background is displayed as the graphic rendition of the  character  put
+       on the screen.
 
-</PRE><H3><a name="h3-bkgrnd">bkgrnd</a></H3><PRE>
-       The <STRONG>bkgrnd</STRONG> and <STRONG>wbkgrnd</STRONG> functions set the  background  property  of  the
-       current  or specified window and then apply this setting to every char-
-       acter position in that window:
 
-       <STRONG>o</STRONG>   The rendition of every character on the screen is  changed  to  the
-           new background rendition.
+</PRE><H3><a name="h3-bkgrnd_wbkgrnd">bkgrnd, wbkgrnd</a></H3><PRE>
+       <STRONG>bkgrnd</STRONG>  and  <STRONG>wbkgrnd</STRONG>  set  the  background  property  of  <STRONG>stdscr</STRONG> or the
+       specified window and then apply this setting to every character cell in
+       that window.
 
-       <STRONG>o</STRONG>   Wherever  the former background character appears, it is changed to
-           the new background character.
+       <STRONG>o</STRONG>   The  rendition  of every character in the window changes to the new
+           background rendition.
 
+       <STRONG>o</STRONG>   Wherever the former background character appears, it changes to the
+           new background character.
 
-</PRE><H3><a name="h3-getbkgrnd">getbkgrnd</a></H3><PRE>
-       The <STRONG>getbkgrnd</STRONG> function returns the given  window's  current  background
-       character/attribute  pair  via  the  <STRONG>wch</STRONG>  pointer.  If the given window
-       pointer is null, the character is not updated (but no error returned).
+       <EM>ncurses</EM>  updates  the rendition of each character cell by comparing the
+       character, non-color attributes, and colors.  The  library  applies  to
+       following  procedure  to  each cell in the window, whether or not it is
+       blank.
 
+       <STRONG>o</STRONG>   <EM>ncurses</EM> first compares  the  cell's  character  to  the  previously
+           specified  blank  character;  if they match, <EM>ncurses</EM> writes the new
+           blank character to the cell.
 
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       Note that <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, and <STRONG>getbkgrnd</STRONG> may be macros.
+       <STRONG>o</STRONG>   <EM>ncurses</EM> then checks if the cell uses color, that is, its color pair
+           value  is  nonzero.   If not, it simply replaces the attributes and
+           color  pair  in  the  cell  with  those  from  the  new  background
+           character.
+
+       <STRONG>o</STRONG>   If  the  cell  uses color, and its background color matches that of
+           the current window background, <EM>ncurses</EM> removes attributes that  may
+           have  come  from the current background and adds those from the new
+           background.  It finishes by setting the cell's  background  to  use
+           the new window background color.
+
+       <STRONG>o</STRONG>   If  the  cell  uses  color, and its background color does not match
+           that of the current window background,  <EM>ncurses</EM>  updates  only  the
+           non-color  attributes, first removing those that may have come from
+           the current background, and then adding  attributes  from  the  new
+           background.
+
+       <EM>ncurses</EM>  treats  a  background  character  value of zero (0) as a blank
+       character.
+
+       If the terminal does not support  color,  or  if  color  has  not  been
+       initialized  with  <STRONG><A HREF="curs_color.3x.html">start_color(3x)</A></STRONG>,  <EM>ncurses</EM> ignores the new background
+       character's color attribute.
+
+
+</PRE><H3><a name="h3-bkgrndset_wbkgrndset">bkgrndset, wbkgrndset</a></H3><PRE>
+       <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> manipulate the background  of  the  applicable
+       window,  without updating the character cells as <STRONG>bkgrnd</STRONG> and <STRONG>wbkgrnd</STRONG> do;
+       only future writes reflect the updated background.
 
-       X/Open Curses does not provide details on how the rendition is changed.
-       This  implementation follows the approach used in SVr4 curses, which is
-       explained in the manual page for <STRONG>wbkgd</STRONG>.
+
+</PRE><H3><a name="h3-getbkgrnd_wgetbkgrnd">getbkgrnd, wgetbkgrnd</a></H3><PRE>
+       The <STRONG>getbkgrnd</STRONG> and <STRONG>wgetbkgrnd</STRONG> functions obtain the background  character
+       and  attribute  pair of <STRONG>stdscr</STRONG> or the specified window and store it via
+       the <EM>wch</EM> pointer.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines do not return a value.
+       <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> do not return a value.
+
+       The other functions return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>  upon  success.   In
+       <EM>ncurses</EM>, failure occurs if
+
+       <STRONG>o</STRONG>   a <EM>WINDOW</EM> pointer <EM>win</EM> is null, or
 
-       Upon successful completion, the other functions return <STRONG>OK</STRONG>.   Otherwise,
-       they return <STRONG>ERR</STRONG>:
+       <STRONG>o</STRONG>   a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> pointer <EM>wch</EM> is null.
 
-       <STRONG>o</STRONG>   A null window pointer is treated as an error.
 
-       <STRONG>o</STRONG>   A null character pointer is treated as an error.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+       <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, and <STRONG>getbkgrnd</STRONG> may be implemented as macros.
+
+       Unlike  their  counterparts in the non-"wide" configuration of <EM>ncurses</EM>,
+       <STRONG>getbkgrnd</STRONG> and <STRONG>wgetbkgrnd</STRONG> supply the background character and  attribute
+       in a modifiable <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> parameter, not as the return value.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       These  functions  are  described  in  the  XSI Curses standard, Issue 4
-       (X/Open Curses).
+       X/Open  Curses,  Issue  4,  describes these functions.  It specifies no
+       error conditions for them.
+
+       X/Open Curses does not provide details of how the rendition is updated.
+       This implementation follows the approach used in SVr4 <EM>curses</EM>.
 
 
 </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_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+       <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>  describes  the corresponding functions in the non-"wide"
+       configuration of <EM>ncurses</EM>.
+
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 
 
 
-                                                               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+ncurses 6.4                       2024-03-23                   <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
 <ul>
-<li><a href="#h3-bkgrndset">bkgrndset</a></li>
-<li><a href="#h3-bkgrnd">bkgrnd</a></li>
-<li><a href="#h3-getbkgrnd">getbkgrnd</a></li>
+<li><a href="#h3-bkgrnd_wbkgrnd">bkgrnd, wbkgrnd</a></li>
+<li><a href="#h3-bkgrndset_wbkgrndset">bkgrndset, wbkgrndset</a></li>
+<li><a href="#h3-getbkgrnd_wgetbkgrnd">getbkgrnd, wgetbkgrnd</a></li>
 </ul>
 </li>
-<li><a href="#h2-NOTES">NOTES</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>
 </ul>