xref: /illumos-gate/usr/src/man/man3xcurses/newpad.3xcurses (revision 8682d1ef2a0960ed5a9f05b9448eaa3e68ac931f)
te
Copyright (c) 1990, 1995 by Mortice Kern Systems Inc. All Rights Reserved Portions Copyright (c) 1996, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
newpad 3XCURSES "5 Jun 2002" "SunOS 5.11" "X/Open Curses Library Functions"
NAME
newpad, pnoutrefresh, prefresh, subpad - create or refresh a pad or subpad
SYNOPSIS

cc [ flag... ] file... -I /usr/xpg4/include  -L  /usr/xpg4/lib \e
 -R  /usr/xpg4/lib  -lcurses  [ library... ]

c89 [ flag... ] file... -lcurses [ library... ]

#include <curses.h>

WINDOW *newpad(int nlines, int ncols);

int pnoutrefresh(WINDOW *pad, int pminrow, int pmincol, int sminrow, 
 int smincol,int smaxrow, int smaxcol);

int prefresh(WINDOW *pad, int pminrow, int pmincol, int sminrow,
 int smincol,int smaxrow, int smaxcol);

WINDOW *subpad(WINDOW *orig, int nlines, int ncols);
PARAMETERS

nlines

Is the number of lines in the pad to be created.

ncols

Is the number of columns in the pad to be created.

pad

Is a pointer to the pad to refresh.

pminrow

Is the row coordinate of the upper left corner of the pad rectangle to be copied

pmincol

Is the column coordinate of the upper left corner of the pad rectangle to be copied.

sminrow

Is the row coordinate of the upper left corner of the rectangle on the physical screen where pad is to be positioned.

smincol

Is the column coordinate of the upper left corner of the rectangle on the physical screen where pad is to be positioned.

smaxrow

Is the row coordinate of the lower right corner of the rectangle on the physical screen where the pad is to be positioned.

smaxcol

Is the column coordinate of the lower right corner of the rectangle on the physical screen where the pad is to be positioned.

orig

Is a pointer to the parent pad within which a sub-pad is created.

DESCRIPTION

The newpad() function creates a new pad with the specified number of lines and columns. A pointer to the new pad structure is returned. A pad differs from a window in that it is not restricted to the size of the physical screen. It is useful when only part of a large window will be displayed at any one time.

Automatic refreshes by scrolling or echoing of input do not take place when pads are used. Pads have their own refresh commands, prefresh() and pnoutrefresh().

The prefresh() function copies the specified portion of the logical pad to the terminal screen. The parameters pmincol and pminrow specify the upper left corner of the rectangular area of the pad to be displayed. The lower right coordinate of the rectangular area of the pad that is to be displayed is calculated from the screen parameters (sminrow, smincol, smaxrow, smaxcol).

This function calls the pnoutrefresh() function to copy the specified portion of pad to the terminal screen and the doupdate(3XCURSES) function to do the actual update. The logical cursor is copied to the same location in the physical window unless leaveok(3XCURSES) is enabled (in which case, the cursor is placed in a position that the program finds convenient).

When outputting several pads at once, it is often more efficient to call the pnoutrefresh() and doupdate() functions directly. A call to pnoutrefresh() for each pad first, followed by only one call to doupdate() to update the screen, results in one burst of output, fewer characters sent, and less CPU time used.

The subpad() function creates a sub-pad within the pad orig with the specified number of lines and columns. A pointer to the new pad structure is returned. The sub-pad is positioned in the middle of orig. Any changes made to one pad affect the other. touchwin(3XCURSES) or touchline(3XCURSES) will likely have to be called on pad orig to correctly update the window.

RETURN VALUES

On success, the newpad() and subpad() functions returns a pointer to the new pad data structure. Otherwise, they return a null pointer.

On success, the pnoutrefresh() and prefresh() functions return OK. Otherwise, they return ERR.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
Interface StabilityStandard
MT-LevelUnsafe
SEE ALSO

clearok(3XCURSES), doupdate(3XCURSES), is_linetouched(3XCURSES), libcurses(3XCURSES), pechochar(3XCURSES), attributes(5), standards(5)