summaryrefslogtreecommitdiffstats
path: root/upstream/opensuse-tumbleweed/man3/pad.3ncurses
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/opensuse-tumbleweed/man3/pad.3ncurses')
-rw-r--r--upstream/opensuse-tumbleweed/man3/pad.3ncurses252
1 files changed, 252 insertions, 0 deletions
diff --git a/upstream/opensuse-tumbleweed/man3/pad.3ncurses b/upstream/opensuse-tumbleweed/man3/pad.3ncurses
new file mode 100644
index 00000000..58ba43e2
--- /dev/null
+++ b/upstream/opensuse-tumbleweed/man3/pad.3ncurses
@@ -0,0 +1,252 @@
+.\"***************************************************************************
+.\" 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 *
+.\" 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_pad.3x,v 1.53 2024/01/05 21:46:58 tom Exp $
+.TH pad 3NCURSES 2024-01-05 "ncurses 6.4" "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
+..
+.SH NAME
+\fB\%newpad\fP,
+\fB\%subpad\fP,
+\fB\%prefresh\fP,
+\fB\%pnoutrefresh\fP,
+\fB\%pechochar\fP,
+\fB\%pecho_wchar\fP \-
+create and display \fIcurses\fR pads
+.SH SYNOPSIS
+.nf
+\fB#include <ncursesw/curses.h>
+.PP
+\fBWINDOW *newpad(int \fInlines\fP, int \fIncols\fP);
+\fBWINDOW *subpad(WINDOW *\fIorig\fP, int \fInlines\fP, int \fIncols\fP,
+ \fBint \fIbegin_y\fB, int \fIbegin_x\fB);\fR
+\fBint prefresh(WINDOW *\fIpad\fB, int \fIpminrow\fB, int \fIpmincol\fB,\fR
+ \fBint \fIsminrow\fB, int \fIsmincol\fB, int \fIsmaxrow\fB, int \fIsmaxcol\fB);\fR
+\fBint pnoutrefresh(WINDOW *\fIpad\fB, int \fIpminrow\fB, int \fIpmincol\fB,\fR
+ \fBint \fIsminrow\fB, int \fIsmincol\fB, int \fIsmaxrow\fB, int \fIsmaxcol\fB);\fR
+\fBint pechochar(WINDOW *\fIpad\fB, chtype \fIch\fB);\fR
+\fBint pecho_wchar(WINDOW *\fIpad\fB, const cchar_t *\fIwch\fB);\fR
+.fi
+.SH DESCRIPTION
+.SS newpad
+\fB\%newpad\fP creates and returns a pointer to a new pad data structure
+with the given number of lines,
+\fInlines\fP,
+and columns,
+\fIncols\fP.
+A pad is like a window,
+except that it is not restricted by the screen size,
+and is not necessarily associated with a particular part of the screen.
+Pads can be used when a large window is needed,
+and only a part of the window will be on the screen at one time.
+Automatic refreshes of pads
+(as from scrolling or echoing of input)
+do not occur.
+.PP
+It is not valid to call \fB\%wrefresh\fP with a \fIpad\fP argument;
+call \fB\%prefresh\fP or \fB\%pnoutrefresh\fP instead.
+They require additional parameters to specify the part of the pad to be
+displayed and the location on the screen to be used for the display.
+.SS subpad
+The \fB\%subpad\fP routine creates and returns a pointer to a subwindow within a
+pad with the given number of lines, \fInlines\fP, and columns, \fIncols\fP.
+Unlike \fB\%subwin\fP, which uses screen coordinates, the window is at position
+(\fIbegin\fR_\fIx\fB,\fR \fIbegin\fR_\fIy\fR) on the pad.
+The window is
+made in the middle of the window \fIorig\fP, so that changes made to one window
+affect both windows.
+During the use of this routine, it will often be
+necessary to call \fB\%touchwin\fP or \fB\%touchline\fP on \fIorig\fP before
+calling \fB\%prefresh\fP.
+.SS "prefresh, pnoutrefresh"
+The \fB\%prefresh\fP and \fB\%pnoutrefresh\fP routines are analogous to
+\fB\%wrefresh\fP and \fB\%wnoutrefresh\fP except that they relate to pads instead
+of windows.
+The additional parameters are needed to indicate what part of the
+pad and screen are involved.
+.bP
+The \fIpminrow\fP and \fIpmincol\fP parameters specify the upper
+left-hand corner of the rectangle to be displayed in the pad.
+.bP
+The \fIsminrow\fP,
+\fIsmincol\fP, \fIsmaxrow\fP, and \fIsmaxcol\fP
+parameters specify the edges of the
+rectangle to be displayed on the screen.
+.PP
+The lower right-hand corner of the
+rectangle to be displayed in the pad is calculated from the screen coordinates,
+since the rectangles must be the same size.
+Both rectangles must be entirely
+contained within their respective structures.
+Negative values of
+\fIpminrow\fP, \fIpmincol\fP, \fIsminrow\fP, or \fIsmincol\fP are treated as if
+they were zero.
+.SS pechochar
+The \fB\%pechochar\fP routine is functionally equivalent
+to a call to \fB\%addch\fP
+followed by a call to \fB\%refresh\fP(3NCURSES),
+a call to \fB\%waddch\fP followed by a call
+to \fB\%wrefresh\fP, or a call to \fB\%waddch\fP followed by a call to
+\fB\%prefresh\fP.
+The knowledge that only a single character is being output is
+taken into consideration and, for non-control characters, a considerable
+performance gain might be seen by using these routines instead of their
+equivalents.
+In the case of \fB\%pechochar\fP, the last location of the pad on
+the screen is reused for the arguments to \fB\%prefresh\fP.
+.SS pecho_wchar
+The \fB\%pecho_wchar\fP function is the analogous wide-character
+form of \fB\%pechochar\fP.
+It outputs one character to a pad and immediately refreshes the pad.
+It does this by a call to \fB\%wadd_wch\fP followed by a call
+to \fB\%prefresh\fP.
+.SH RETURN VALUE
+Functions that return an integer return \fBERR\fP upon failure and
+\fBOK\fP
+(SVr4 specifies only
+\*(``an integer value other than \fBERR\fP\*('')
+upon successful completion.
+.PP
+Functions that return pointers return \fBNULL\fP on error,
+and set \fB\%errno\fP to \fB\%ENOMEM\fP.
+.PP
+X/Open Curses does not define any error conditions.
+In this implementation
+.RS 3
+.TP 5
+\fB\%prefresh\fP and \fB\%pnoutrefresh\fP
+return an error
+if the window pointer is null, or
+if the window is not really a pad or
+if the area to refresh extends off-screen or
+if the minimum coordinates are greater than the maximum.
+.TP 5
+\fBpechochar\fP
+returns an error
+if the window is not really a pad, and the associated call
+to \fB\%wechochar\fP returns an error.
+.TP 5
+\fBpecho_wchar\fP
+returns an error
+if the window is not really a pad, and the associated call
+to \fB\%wecho_wchar\fP returns an error.
+.RE
+.SH NOTES
+\fB\%pechochar\fP may be a macro.
+.SH PORTABILITY
+BSD \fIcurses\fP has no \fIpad\fP feature.
+.PP
+SVr2 \fIcurses\fP (1986) provided the \fB\%newpad\fP and related functions,
+documenting them in a single line each.
+SVr3 (1987) provided more extensive documentation.
+.PP
+The documentation does not explain the term \fIpad\fP.
+However, the Apollo \fIAegis\fP workstation operating system
+supported a graphical \fIpad\fP feature:
+.bP
+These graphical pads could be much larger than the computer's display.
+.bP
+The read-only output from a command could be scrolled back to inspect,
+and select text from the pad.
+.PP
+The two uses may be related.
+.PP
+The XSI Curses standard, Issue 4 describes these functions,
+without significant change from the SVr3 documentation.
+It describes no error conditions.
+The behavior of \fB\%subpad\fP if the parent window is not
+a pad is undocumented,
+and is not checked by the vendor Unix implementations:
+.bP
+SVr4 \fIcurses\fP sets a flag in the \fI\%WINDOW\fP structure in
+\fB\%newpad\fP which tells if the window is a \fIpad\fP.
+.IP
+However, it uses this information only in
+\fB\%waddch\fP (to decide if it should call \fB\%wrefresh\fP) and
+\fB\%wscrl\fP (to avoid scrolling a pad),
+and does not check in \fB\%wrefresh\fP to ensure that the pad
+is refreshed properly.
+.bP
+Solaris \fI\%xcurses\fP checks whether a window is a pad in
+\fB\%wnoutrefresh\fP,
+returning \fBERR\fP in that case.
+.IP
+However,
+it only sets the flag for subwindows if the parent window is a pad.
+Its \fB\%newpad\fP function does not set this information.
+Consequently, the check will never fail.
+.IP
+It makes no comparable check in \fB\%pnoutrefresh\fP,
+though interestingly enough, a comment in the source code
+states that the lack of a check was an MKS extension.
+.bP
+NetBSD 7 \fIcurses\fP
+sets a flag in the \fI\%WINDOW\fP structure
+for \fB\%newpad\fP and \fB\%subpad\fP,
+using this to help with the distinction between \fB\%wnoutrefresh\fP
+and \fB\%pnoutrefresh\fP.
+.IP
+It does not check for the case where a subwindow is created in
+a pad using \fB\%subwin\fP or \fB\%derwin\fP.
+.IP
+The \fB\%dupwin\fP function returns a regular window when duplicating a pad.
+Likewise, \fB\%getwin\fP always returns a window, even if the saved
+data was from a pad.
+.PP
+This implementation
+.bP
+sets a flag in the \fI\%WINDOW\fP structure
+for \fB\%newpad\fP and \fB\%subpad\fP,
+.bP
+allows a \fB\%subwin\fP or \fB\%derwin\fP call to succeed having a pad parent by
+forcing the subwindow to be a pad,
+.bP
+checks in both \fB\%wnoutrefresh\fP and \fB\%pnoutrefresh\fP to ensure
+that pads and windows are handled distinctly, and
+.bP
+ensures that \fB\%dupwin\fP and \fB\%getwin\fP treat
+pads versus windows consistently.
+.SH SEE ALSO
+\fB\%ncurses\fP(3NCURSES),
+\fB\%addch\fP(3NCURSES),
+\fB\%refresh\fP(3NCURSES),
+\fB\%touch\fP(3NCURSES)