The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group


newpad, pnoutrefresh, prefresh, subpad - pad management functions


#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, int begin_y,
               int begin_x);


The newpad() function creates a specialised WINDOW data structure representing a pad with nlines lines and ncols columns. A pad is like a window, except that it is not necessarily associated with a viewable part of the screen. Automatic refreshes of pads do not occur.

The subpad() function creates a subwindow within a pad with nlines lines and ncols columns. Unlike subwin(), which uses screen coordinates, the window is at position (begin_y, begin_x) on the pad. The window is made in the middle of the window orig, so that changes made to one window affect both windows.

The prefresh() and pnoutrefresh() functions are analogous to wrefresh() and wnoutrefresh() except that they relate to pads instead of windows. The additional arguments indicate what part of the pad and screen are involved. The pminrow and pmincol arguments specify the origin of the rectangle to be displayed in the pad. The sminrow, smincol, smaxrow and smaxcol arguments specify the edges of the rectangle to be displayed on the screen. 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 pminrow, pmincol, sminrow or smincol are treated as if they were zero.


Upon successful completion, the newpad()  and subpad()  functions return a pointer to the pad data structure. Otherwise, they return a null pointer.

Upon successful completion, pnoutrefresh() and prefresh() return OK. Otherwise, they return ERR.


No errors are defined.


To refresh a pad, call prefresh() or pnoutrefresh(), not wrefresh(). When porting code to use pads from WINDOWS, remember that these functions require additional arguments to specify the part of the pad to be displayed and the location on the screen to be used for the display.

Although a subwindow and its parent pad may share memory representing characters in the pad, they need not share status information about what has changed in the pad. Therefore, after modifying a subwindow within a pad, it may be necessary to call touchwin() or touchline() on the pad before calling prefresh().


derwin(), doupdate(), is_linetouched(), <curses.h>.

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]