curs_window - ライブラリコールの説明 - Linux コマンド集 一覧表
名前
newwin , delwin , mvwin , subwin , derwin , mvderwin , dupwin , wsyncup , syncok , wcursyncup , wsyncdown - curses ウィンドウを生成。
書式
#include <curses.h>
WINDOW *newwin(int nlines, int ncols, int begin_y,
int begin_x);
int delwin(WINDOW *win);
int mvwin(WINDOW *win, int y, int x);
WINDOW *subwin(WINDOW *orig, int nlines, int ncols,
int begin_y, int
begin_x);
WINDOW *derwin(WINDOW *orig, int nlines, int ncols,
int begin_y, int
begin_x);
int mvderwin(WINDOW *win, int par_y, int par_x);
WINDOW *dupwin(WINDOW *win);
void wsyncup(WINDOW *win);
int syncok(WINDOW *win, bool bf);
void wcursyncup(WINDOW *win);
void wsyncdown(WINDOW *win);
説明
newwin
関数を呼ぶと、与えられた列数と行数を持つ新規ウィンドウを生成し、
そのポインタを返す。
ウィンドウの左上の行が begin
_y
, 列が begin
_x
である。
もし、nlines
又は ncols
のどちらかがゼロならば、
デフォルトとして LINES -
begin
_y
及び COLS -begin
_x
が設定される。
新規のフルスクリーンウィンドウはnewwin(0,0,0,0)
を呼ぶことで生成される。
delwin
関数は既存のウィンドウを削除し、関連づけられているすべてのメモリを開放する。
メインウィンドウの削除前にサブウィンドウが削除されねばならない。
mvwin
関数はウィンドウを動かし、その結果左上が (x
, y
)となる。
もしウィンドウを動かすことでスクリーンからはみだしてしまうならばエラーとなり、
ウィンドウは動かされない。
サブウィンドウを動かす事は許されてはいるが、避けるべきである。
subwin
関数は与えられた行数 nlines
、列数 ncols
の新規ウィンドウを生成し、そのポインタを返す。
ウィンドウはスクリーン上(begin
_y
, begin
_x
)にある。
(この位置はスクリーンに対して相対的なもので、 orig
ウィンドウに対してではない。)
サブウィンドウは orig
ウィンドウの中心で生成され、一方のウィンドウへの変更は
双方のウィンドウに対して影響を及ぼす。
サブウィンドウは orig
ウィンドウとメモリを共有する。
この関数を使用する際には、サブウィンドウ上で wrefresh
を呼ぶ前に
orig
上で touchwin
又は touchline
を呼ぶ必要がある。
derwin
関数は subwin
を呼ぶのと同様であり、begin
_y
と
begin
_x
がスクリーンではなく orig
ウィンドウに相対的である点を除いては、サブウィンドウとの違いはない。
mvderwin
関数は親ウィンドウ内部で得られるウィンドウ(あるいはサブウィンドウ)を動かす。
スクリーンに対して相対的であるウィンドウの引数は変更されない。
この関数はスクリーン上で物理的に同じ位置にある親ウィンドウとの差異点を描画する
のに使用される。
dupwin
関数は win
ウィンドウの正確な複製を生成する。
wsyncup
関数は win
で変更がなされた win
の祖先のあらゆる位置情報
を更新する。
もし syncok
が第二引数として TRUE
とともに呼び出されたらならば、
ウィンドウに変更があるときはいつでも wsyncup
が自動的に呼ばれる。
wsyncdown
関数は祖先のウィンドウの変更点を win
へと反映する。
この関数は wrefresh
により呼び出され、手動で呼び出す必要はないはずだ。
wcursyncup
関数はウィンドウのカーソル位置を反映するために、
全ての祖先のウィンドウのカーソル位置を更新する。
返り値
整数を返す関数は整数値 ERR
を失敗時点で返し、OK
(SVr4 では
"ERR
以外の整数値"と明記。)を成功時に返す。
注意
ウィンドウへ多くの些細な変更がなされた場合、wsyncup
オプションはパフォーマンスの低下をもたらす。
syncok
がマクロかも知れないことに注意。
バグ
サブウィンドウ関数(subwin
, derwin
, mvderwin
,
wsyncup
, wsyncdown
, wcursyncup
, syncok
)は
不完全な実装であり、充分にテストがなされていない。
System V curses 文書は wsyncup
及び wsyncdown
の実際の振る舞いについて非常に不明瞭である。
これらは単に祖先の変更により影響を受ける行を更新することになっているようである。
ここでの言語、および curses
の実装の振る舞いは XPG4 curses 標準に準拠している。
XPG4 仕様は遅々としながらも更新されるかもしれない。
移植性
XSI Curses 準拠、第4章でこれらの関数について既述がある。
関連項目
curses
(3X), curs_refresh
(3X), curs_touch
(3X)