curs_overlay(3x) curs_overlay(3x)
overlay, overwrite, copywin - curses ウインドウの
重ね合わせと重なったウインドウの操作
#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);
overlay と overwrite ルーチンは srcwin を dstwin の上に
重ねます。
srcwin と dstwin は同じサイズである必要はありません。
2 つのウインドウが重なった部分のテキストのみがコピーされます。
違いは、 overlay は破壊的ではなく (空白はコピーしない) 、
overwrite は破壊的であるということです。
copywin ルーチンは overlay や overwrite ルーチンよりも細かな
操作を可能にします。
prefresh ルーチンのように、コピー元ウインドウの左上隅座標を
(sminrow, smincol) で指定し、コピー先ウインドウの長方形を
(dminrow, dmincol) と (dmaxrow, dmaxcol) で指定します。
引数 overlay が true ならば、コピーは overlay のように
非破壊的に行われます。
整数を返すルーチンは、失敗のとき ERR を、正常終了のとき
OK (SVr4 は「ERR 以外の整数値」としか指定していません) を
返します。
X/Open はエラーの条件を定義していません。
この実装では、 copywin, overlay, overwrite はウインドウ・
ポインタがヌルの場合、またはウインドウのどこかが画面から
はみ出す場合にエラーを返します。
overlay と overwrite はマクロであるかもしれないことに
注意してください。
これらの関数は (const 修飾子つきで) XSI Curses standard,
Issue 4 に記載されています。
それはさらに、(この実装ではまだサポートしていない)
マルチバイトの表示様式を持つ文字が存在する場合の関数の挙動を
明確にしています。
curses(3x), curs_pad(3x), curs_refresh(3x)
curs_overlay(3x)