X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Fcurs_bkgd.3x;h=25ba1f9f72c8b2e5c99257a5090be8341af6f7f6;hb=00dd248b527ad47f0fc3b0776a0889da0ac926d0;hp=2c3d3d4fee93d8663cfa031a4c06927e3d14107e;hpb=16fbf3f4f7d96b6ee6bf9159b22f26e05962aa3d;p=ncurses.git diff --git a/man/curs_bkgd.3x b/man/curs_bkgd.3x index 2c3d3d4f..25ba1f9f 100644 --- a/man/curs_bkgd.3x +++ b/man/curs_bkgd.3x @@ -1,5 +1,5 @@ .\"*************************************************************************** -.\" Copyright 2018-2021,2022 Thomas E. Dickey * +.\" Copyright 2018-2023,2024 Thomas E. Dickey * .\" Copyright 1998-2015,2017 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * @@ -27,135 +27,200 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_bkgd.3x,v 1.34 2022/02/12 20:06:41 tom Exp $ +.\" $Id: curs_bkgd.3x,v 1.61 2024/04/20 18:54:36 tom Exp $ +.TH curs_bkgd 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" +.ie \n(.g \{\ +.ds `` \(lq +.ds '' \(rq +.\} +.el \{\ +.ie t .ds `` `` +.el .ds `` "" +.ie t .ds '' '' +.el .ds '' "" +.\} +. .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. -.TH curs_bkgd 3X "" .SH NAME -\fBbkgdset\fP, \fBwbkgdset\fP, -\fBbkgd\fP, \fBwbkgd\fP, -\fBgetbkgd\fP \- \fBcurses\fP window background manipulation routines +\fB\%bkgdset\fP, +\fB\%wbkgdset\fP, +\fB\%bkgd\fP, +\fB\%wbkgd\fP, +\fB\%getbkgd\fP \- +manipulate background of a \fIcurses\fR window of characters .SH SYNOPSIS -\fB#include \fP -.PP -\fBvoid bkgdset(chtype \fIch\fB);\fR -.br -\fBvoid wbkgdset(WINDOW *\fIwin, chtype \fIch\fB);\fR -.sp -\fBint bkgd(chtype \fIch\fB);\fR -.br -\fBint wbkgd(WINDOW *\fIwin\fB, chtype \fIch\fB);\fR -.sp -\fBchtype getbkgd(WINDOW *\fIwin\fB);\fR -.br -.SH DESCRIPTION -.SS bkgdset -The \fBbkgdset\fP and \fBwbkgdset\fP routines manipulate the -background of the named window. -The window background is a \fBchtype\fP 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\fP. -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\fP and \fBwbkgd\fP 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: +.nf +\fB#include +.PP +\fBint bkgd(chtype \fIch\fP); +\fBint wbkgd(WINDOW *\fIwin\fP, chtype \fIch\fP); +.PP +\fBvoid bkgdset(chtype \fIch\fP); +\fBvoid wbkgdset(WINDOW *\fIwin\fP, chtype \fIch\fP); .PP +\fBchtype getbkgd(WINDOW *\fIwin\fP); +.fi +.SH DESCRIPTION +The +.I background +of a +.I curses +window +(in the library's non-\*(``wide\*('' configuration) +is a +.I \%chtype +combining a set of attributes +(see \fB\%curs_attr\fP(3X)) +with a character called the +.I "blank character." +.PP +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 \fB\%waddch\fP(3X) and \fB\%winsch\fP(3X) families of +functions. +.PP +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. +.PP +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. +.SS "bkgd, wbkgd" +\fB\%bkgd\fP and \fB\%wbkgd\fP set the background property of +\fB\%stdscr\fP or the specified window and then apply this setting to +every character cell in that window. .bP -The rendition of every character on the screen is changed to -the new background rendition. +The rendition of every character in the window changes 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: +Wherever the former background character appears, +it changes to the new background character. +.PP +.I \%ncurses +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. .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. +.I \%ncurses +first compares the cell's character to the previously specified blank +character; +if they match, +.I \%ncurses +writes the new blank character to the cell. .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. +.I \%ncurses +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. .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. +and its background color matches that of the current window background, +.I \%ncurses +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. .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 its background color does not match that of the current window +background, +.I \%ncurses +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. .PP -If the background's character value is zero, a space is assumed. +.I \%ncurses +treats a background character value of zero (0) as a blank character. .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. +or if color has not been initialized with \fB\%start_color\fP(3X), +.I \%ncurses +ignores the new background character's color attribute. +.SS "bkgdset, wbkgdset" +\fB\%bkgdset\fP and \fB\%wbkgdset\fP manipulate the background of +the applicable window, +without updating the character cells as \fB\%bkgd\fP and +\fB\%wbkgd\fP do; +only future writes reflect the updated background. .SS getbkgd -.PP -The \fBgetbkgd\fP function returns the given window's current background -character/attribute pair. +\fB\%getbkgd\fP obtains the given window's background character and +attribute combination. .SH RETURN VALUE +Functions returning an \fIint\fP return \fBOK\fP on success. +\fB\%bkgd\fP returns \fBERR\fP if the library has not been initialized. +\fB\%wbkgd\fP and \fB\%getbkgd\fP return \fBERR\fP if a \fI\%WINDOW\fP +pointer argument is null. .PP -These functions are described in the XSI Curses standard, Issue 4. -It specifies that \fBbkgd\fP and \fBwbkgd\fP return \fBERR\fP on failure, -but gives no failure conditions. +\fB\%bkgdset\fP and \fBwbkgdset\fP do not return a value. .PP -The routines \fBbkgd\fP and \fBwbkgd\fP return the integer \fBOK\fP, -unless the library has not been initialized. -.PP -In contrast, -the SVr4.0 manual says \fBbkgd\fP and \fBwbkgd\fP may return \fBOK\fP -"or a non-negative integer if \fBimmedok\fP 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. +\fB\%getbkgd\fP returns a window's background character and attribute +combination. .SH NOTES +Unusually, +there is no \fB\%wgetbkgd\fP function; +\fB\%getbkgd\fP behaves as one would expect \fB\%wgetbkgd\fP to, +accepting a \fI\%WINDOW\fP pointer argument. .PP -Note that \fBbkgdset\fP and \fBbkgd\fP may be macros. +\fB\%bkgd\fP and +\fB\%bkgdset\fP +may be implemented as 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, +\fI\%ncurses\fP, +like SVr4 \fIcurses\fP, +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). +X/Open Curses, +Issue 4 describes these functions. +It specifies that +\fB\%bkgd\fP, +\fB\%wbkgd\fP, +and +\fB\%getbkgd\fP +return \fBERR\fP on failure +(in the case of the last, +this value is cast to +.IR \%chtype ), +but describes no failure conditions. +.PP +The SVr4.0 manual says that \fB\%bkgd\fP and \fB\%wbkgd\fP may return +\fBOK\fP +\*(``or a non-negative integer if \fB\%immedok\fP is set\*('', +which refers to the return value from \fB\%wrefresh\fP(3X), +used to implement the immediate repainting. +SVr4 \fIcurses\fP's \fB\%wrefresh\fP returns the number of characters +written to the screen during the refresh. +\fI\%ncurses\fP does not do that. +.PP +Neither X/Open Curses nor the SVr4 manual pages detail how the rendition +of characters on the screen updates when \fB\%bkgd\fP or \fB\%wbkgd\fP +changes the background character. +.IR \%ncurses , +like SVr4 +.IR curses , +does not +(in its non-\*(``wide\*('' configuration) +store the background and window attribute contributions to each +character cell separately. .SH SEE ALSO -.na +\fB\%curs_bkgrnd\fP(3X) describes the corresponding functions in the +\*(``wide\*('' configuration of +.IR \%ncurses . .PP -\fBcurses\fP(3X), -\fBcurs_addch\fP(3X), -\fBcurs_attr\fP(3X), -\fBcurs_outopts\fP(3X) +\fB\%curses\fP(3X), +\fB\%curs_addch\fP(3X), +\fB\%curs_attr\fP(3X)