162 lines
6.8 KiB
Plaintext
162 lines
6.8 KiB
Plaintext
.\"***************************************************************************
|
|
.\" Copyright 2018-2019,2020 Thomas E. Dickey *
|
|
.\" Copyright 1998-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 *
|
|
.\" "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. *
|
|
.\"***************************************************************************
|
|
.\"
|
|
.\" $Id: curs_bkgd.3x,v 1.31 2020/10/17 23:12:52 tom Exp $
|
|
.de bP
|
|
.ie n .IP \(bu 4
|
|
.el .IP \(bu 2
|
|
..
|
|
.TH curs_bkgd 3X ""
|
|
.SH NAME
|
|
\fBbkgdset\fR, \fBwbkgdset\fR,
|
|
\fBbkgd\fR, \fBwbkgd\fR,
|
|
\fBgetbkgd\fR \- \fBcurses\fR window background manipulation routines
|
|
.SH SYNOPSIS
|
|
\fB#include <curses.h>\fR
|
|
.PP
|
|
\fBvoid bkgdset(chtype \fP\fIch\fP\fB);\fR
|
|
.br
|
|
\fBvoid wbkgdset(WINDOW *\fP\fIwin, chtype \fP\fIch\fP\fB);\fR
|
|
.sp
|
|
\fBint bkgd(chtype \fP\fIch\fP\fB);\fR
|
|
.br
|
|
\fBint wbkgd(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB);\fR
|
|
.sp
|
|
\fBchtype getbkgd(WINDOW *\fP\fIwin\fP\fB);\fR
|
|
.br
|
|
.SH DESCRIPTION
|
|
.SS bkgdset
|
|
The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the
|
|
background of the named window.
|
|
The window background is a \fBchtype\fR consisting of
|
|
any combination of attributes (i.e., rendition) and a character.
|
|
The attribute part of the background is combined (OR'ed) with all non-blank
|
|
characters that are written into the window with \fBwaddch\fR.
|
|
Both the character and attribute parts of the background are combined with
|
|
the blank characters.
|
|
The background becomes a property of the
|
|
character and moves with the character through any scrolling and
|
|
insert/delete line/character operations.
|
|
.PP
|
|
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.
|
|
.SS bkgd
|
|
.PP
|
|
The \fBbkgd\fR and \fBwbkgd\fR functions
|
|
set the background property of the current or specified window
|
|
and then apply this setting to every character position in that window.
|
|
According to X/Open Curses, it should do this:
|
|
.PP
|
|
.bP
|
|
The rendition of every character on the screen is changed to
|
|
the new background rendition.
|
|
.bP
|
|
Wherever the former background character
|
|
appears, it is changed to the new background character.
|
|
.PP
|
|
Neither X/Open Curses nor the SVr4 manual pages give details about
|
|
the way the rendition of characters on the screen is updated when
|
|
\fBbkgd\fP or \fBwbkgd\fP is used to change the background character.
|
|
.PP
|
|
This implementation, like SVr4 curses, does not store the background
|
|
and window attribute contributions to each cell separately.
|
|
It updates the rendition by comparing the character, non-color attributes and
|
|
colors contained in the background.
|
|
For each cell in the window, whether or not it is blank:
|
|
.bP
|
|
The library first compares the \fIcharacter\fP,
|
|
and if it matches the current character part of the background,
|
|
it replaces that with the new background character.
|
|
.bP
|
|
The library then checks if the cell uses color,
|
|
i.e., 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.
|
|
.bP
|
|
If the cell uses color,
|
|
and that matches the color in the current background,
|
|
the library removes attributes
|
|
which may have come from the current background
|
|
and adds attributes from the new background.
|
|
It finishes by setting the cell
|
|
to use the color from the new background.
|
|
.bP
|
|
If the cell uses color,
|
|
and that does not match the color in the current background,
|
|
the library updates only the non-color attributes,
|
|
first removing those which may have come from the current background,
|
|
and then adding attributes from the new background.
|
|
.PP
|
|
If the background's character value is zero, a space is assumed.
|
|
.PP
|
|
If the terminal does not support color,
|
|
or if color has not been started with \fBstart_color\fP,
|
|
the new background character's color attribute will be ignored.
|
|
.SS getbkgd
|
|
.PP
|
|
The \fBgetbkgd\fR function returns the given window's current background
|
|
character/attribute pair.
|
|
.SH RETURN VALUE
|
|
.PP
|
|
These functions are described in the XSI Curses standard, Issue 4.
|
|
It specifies that \fBbkgd\fR and \fBwbkgd\fR return \fBERR\fR on failure,
|
|
but gives no failure conditions.
|
|
.PP
|
|
The routines \fBbkgd\fR and \fBwbkgd\fR return the integer \fBOK\fR,
|
|
unless the library has not been initialized.
|
|
.PP
|
|
In contrast,
|
|
the SVr4.0 manual says \fBbkgd\fR and \fBwbkgd\fR may return \fBOK\fP
|
|
"or a non-negative integer if \fBimmedok\fR is set",
|
|
which refers to the return value from \fBwrefresh\fP
|
|
(used to implement the immediate repainting).
|
|
The SVr4 curses \fBwrefresh\fP returns the number of characters
|
|
written to the screen during the refresh.
|
|
This implementation does not do that.
|
|
.SH NOTES
|
|
.PP
|
|
Note that \fBbkgdset\fR and \fBbkgd\fR may be macros.
|
|
.PP
|
|
X/Open Curses mentions that the character part of the background must
|
|
be a single-byte value.
|
|
This implementation, like SVr4, checks to ensure that,
|
|
and will reuse the old background character if the check fails.
|
|
.SH PORTABILITY
|
|
.PP
|
|
These functions are described in the XSI Curses standard, Issue 4
|
|
(X/Open Curses).
|
|
.SH SEE ALSO
|
|
.na
|
|
.PP
|
|
\fBcurses\fR(3X),
|
|
\fBcurs_addch\fR(3X),
|
|
\fBcurs_attr\fR(3X),
|
|
\fBcurs_outopts\fR(3X)
|