名称
overlay, overwrite ― オーバーラップしたウィンドウのコピー
構文
#include <curses.h>
int overlay(const WINDOW *srcwin, WINDOW *dstwin);
int overwrite(const WINDOW *srcwin, WINDOW *dstwin);
説明
overlay() および overwrite() の両関数は、dstwin の上に srcwin をオーバーレイします。scrwin と dstwin の両引き数は、同じサイズである必要はありません。2 つのウィンドウがオーバーラップする部分にあるテキストだけがコピーされます。
overwrite() 関数は、文字をコピーします。その効果は、あて先ウィンドウの属性について win_wch() と wadd_wch() を順に使用した後に、バックグラウンド属性をクリアした場合と同様です。
overlay() 関数も同様の効果を有しています。ただし、コピーする文字がソースウィンドウのバックグラウンド文字であるときは常に、 overlay() は、文字をコピーしないで単にあて先カーソルをバッググラウンド文字の幅だけ移動します。
オーバーレイするウィンドウ境界が一部でも、マルチカラム文字の最初のカラムでないときは、すべてのカラム位置を背景文字と修飾情報で置換した後、オーバーレイします。
このとき、デフォルトのバックグラウンド文字がマルチカラム文字であると、これらの関数は正常に動作しません。
戻り値
正常に終了すると、これらの関数は OK を返します。 そうでなければ
ERR を返します。
変更履歴
X/Open Curses 第 2 版にて新規リリース
X/Open
Curses 第 4 版
分かりやすくするために、エントリー内容が変更されました。 引き数 srcwin() のタイプが WINDOW
* から WINDOW *CONST に変更されました
。