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.
|