]> ncurses.scripts.mit.edu Git - ncurses.git/blob - man/curs_scroll.3x
ncurses 6.4 - patch 20240420
[ncurses.git] / man / curs_scroll.3x
1 .\"***************************************************************************
2 .\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
3 .\" Copyright 1998-2006,2010 Free Software Foundation, Inc.                  *
4 .\"                                                                          *
5 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
6 .\" copy of this software and associated documentation files (the            *
7 .\" "Software"), to deal in the Software without restriction, including      *
8 .\" without limitation the rights to use, copy, modify, merge, publish,      *
9 .\" distribute, distribute with modifications, sublicense, and/or sell       *
10 .\" copies of the Software, and to permit persons to whom the Software is    *
11 .\" furnished to do so, subject to the following conditions:                 *
12 .\"                                                                          *
13 .\" The above copyright notice and this permission notice shall be included  *
14 .\" in all copies or substantial portions of the Software.                   *
15 .\"                                                                          *
16 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
17 .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
18 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
19 .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
20 .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
21 .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
22 .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23 .\"                                                                          *
24 .\" Except as contained in this notice, the name(s) of the above copyright   *
25 .\" holders shall not be used in advertising or otherwise to promote the     *
26 .\" sale, use or other dealings in this Software without prior written       *
27 .\" authorization.                                                           *
28 .\"***************************************************************************
29 .\"
30 .\" $Id: curs_scroll.3x,v 1.43 2024/04/20 18:54:36 tom Exp $
31 .TH curs_scroll 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
32 .ie \n(.g \{\
33 .ds `` \(lq
34 .ds '' \(rq
35 .\}
36 .el \{\
37 .ie t .ds `` ``
38 .el   .ds `` ""
39 .ie t .ds '' ''
40 .el   .ds '' ""
41 .\}
42 .
43 .de bP
44 .ie n  .IP \(bu 4
45 .el    .IP \(bu 2
46 ..
47 .SH NAME
48 \fB\%scroll\fP,
49 \fB\%scrl\fP,
50 \fB\%wscrl\fP \-
51 scroll a \fIcurses\fR window
52 .SH SYNOPSIS
53 .nf
54 \fB#include <curses.h>
55 .PP
56 \fBint scroll(WINDOW *\fIwin\fP);
57 .PP
58 \fBint scrl(int \fIn\fP);
59 \fBint wscrl(WINDOW *\fIwin\fP, int \fIn\fP);
60 .fi
61 .SH DESCRIPTION
62 \fBscroll\fP scrolls the given window up one line.
63 That is,
64 every visible line we might number
65 .I i
66 becomes line
67 .IR i "\-1."
68 The text of the top line in the window disappears and the bottom line
69 is populated with blank characters;
70 see \fB\%bkgd\fP(3X) or \fB\%bkgrnd\fP(3X).
71 As an optimization,
72 if the scrolling region of the window is the entire screen,
73 the physical screen may be scrolled at the same time;
74 see \fB\%curscr\fP(3X).
75 .PP
76 \fB\%scrl\fP and \fB\%wscrl\fP scroll
77 .B \%stdscr
78 or the specified window up or down depending on the sign of
79 .IR n .
80 .bP
81 For positive
82 .IR n ,
83 line \fIi\fP+\fIn\fP becomes \fIi\fP (scrolling up);
84 .bP
85 for negative
86 .IR n ,
87 line \fIi\fP-\fIn\fP becomes \fIi\fP (scrolling down).
88 .PP
89 The cursor does not move.
90 These functions perform no operation unless scrolling is enabled for the
91 window via \fB\%scrollok\fP(3X).
92 .SH "RETURN VALUE"
93 These functions return
94 .B ERR
95 upon failure and
96 .B OK
97 upon success.
98 .PP
99 .I \%ncurses
100 returns \fBERR\fP if scrolling is not enabled in the window,
101 for example with \fB\%scrollok\fP(3X),
102 or if the
103 .I \%WINDOW
104 pointer is null.
105 .SH NOTES
106 Unusually,
107 there is no \fB\%wscroll\fP function;
108 \fBscroll\fP behaves as one would expect \fB\%wscroll\fP to,
109 accepting a \fI\%WINDOW\fP pointer argument.
110 .PP
111 \fB\%scrl\fP and \fB\%scroll\fP may be implemented as macros.
112 .SH PORTABILITY
113 X/Open Curses,
114 Issue 4 describes these functions.
115 It defines no error conditions.
116 .PP
117 SVr4 specifies only
118 \*(``an integer value other than \fBERR\fP\*('' as a successful return
119 value.
120 .PP
121 SVr4 indicates that the optimization of physically scrolling immediately
122 if the scroll region is the entire screen \*(``is\*('' performed,
123 not \*(``may be\*('' performed.
124 .I \%ncurses
125 deliberately does not guarantee that this will occur,
126 to leave open the possibility of smarter optimization of multiple scroll
127 actions on the next update.
128 .PP
129 Neither SVr4
130 .I curses
131 nor X/Open Curses specify whether the current attribute or current color
132 pair of blanks generated by the scroll function are zeroed.
133 .I \%ncurses
134 does so.
135 .SH SEE ALSO
136 \fB\%curses\fP(3X),
137 \fB\%curs_outopts\fP(3X)