curs_overlay(3x) curs_overlay(3x)
overlay, overwrite, copywin - overlay and manipulate overlapped curses windows
#include <curses.h> int overlay(const WINDOW *srcwin, WINDOW *dstwin); int overwrite(const WINDOW *srcwin, WINDOW *dstwin); int copywin(const WINDOW *srcwin, WINDOW *dstwin, int sminrow, int smincol, int dminrow, int dmincol, int dmaxrow, int dmaxcol, int overlay);
The overlay and overwrite routines overlay srcwin on top of dstwin. scrwin and dstwin are not required to be the same size; only text where the two windows overlap is copied. The difference is that overlay is non-destructive (blanks are not copied) whereas overwrite is destructive.
The copywin routine provides a finer granularity of con- trol over the overlay and overwrite routines. As in the prefresh routine, a rectangle is specified in the destina- tion window, (dminrow, dmincol) and (dmaxrow, dmaxcol), and the upper-left-corner coordinates of the source win- dow, (sminrow, smincol). If the argument overlay is true, then copying is non-destructive, as in overlay.
Routines that return an integer return ERR upon failure, and OK (SVr4 only specifies "an integer value other than ERR") upon successful completion. X/Open defines no error conditions. In this implementa- tion, copywin, overlay and overwrite return an error if either of the window pointers are null, or if some part of the window would be placed off-screen.
Note that overlay and overwrite may be macros.
The XSI Curses standard, Issue 4 describes these functions (adding the const qualifiers). It further specifies their behavior in the presence of characters with multibyte ren- ditions (not yet supported in this implementation).
curses(3x), curs_pad(3x), curs_refresh(3x) curs_overlay(3x)