EN JA
curs_touch(3X)
curs_touch(3X) curs_touch(3X)

名称

touchwin, touchline, untouchwin, wtouchln, is_linetouched, is_wintouched - curses リフレッシュ制御ルーチン

書式

#include <curses.h>
 
int touchwin(WINDOW *win);
 
int touchline(WINDOW *win, int start, int count);
 
int untouchwin(WINDOW *win);
 
int wtouchln(WINDOW *win, int y, int n, int changed);
 
bool is_linetouched(WINDOW *win, int line);
 
bool is_wintouched(WINDOW *win);
 

解説

touchwintouchline ルーチンは、ウィンドウ全体が描画されているかのように見せかけることで、ウィンドウのどの部分が変更されたかに関するすべての最適化情報を投げ捨てます。これは、1 つのウィンドウの変更が他のウィンドウに影響するので、オーバラップするウィンドウを使用するとき、ときどき必要ですが、他のウィンドウで変更されている行の記録は、変更を反映しません。ルーチン touchline は、行 start から始めて、 count 行が変化されたかのように単に見せかけます。

untouchwin ルーチンは、 wrefresh の最後の呼び出し以来、ウィンドウ内のすべての行が変更されていないとマークします。

wtouchln ルーチンは、行 y で始めて、ウィンドウ内で n 行を作成し、 wrefresh の最後の呼び出し以来、あたかもそれらに ( changed=1) があるか、または変更された ( changed=0) がないかのように見えます。

is_linetouchedis_wintouched ルーチンは、 wrefresh の最後の呼び出し以来、指定された行 / ウィンドウが修正されたなら、 TRUE を返します。そうでなければ、 FALSE を返します。さらに、 is_linetouched は、与えれらたウィンドウについて line が有効でないなら、 ERR を返します。

戻り値

すべてのルーチンは、失敗すると整数 ERR を返し、そうでなければ前のルーチンで説明されている注記を除いて、成功して終了すれば、 ERR 以外の整数値を返します。

X/Open は、エラー条件を何も定義していません。この実装では、

is_linetouched
は、ウィンドウのポインタが NULL であるか、または行番号がウィンドウの外側であるなら、エラーを返します。 ERR は、TRUE と、この関数の通常の返り値である、FALSE と異なっていることに注意してください。
wtouchln
は、ウィンドウのポインタが NULL であるか、または行番号がウィンドウの外側であるなら、エラーを返します。

移植性

XSI Curses standard, Issue 4 は、これらの関数を記述しています。

いくつかの歴史的な curses 実装は、文書化されていない機能として、 touchwin(stdscr) または clear(stdscr) によると、 clearok(..., 1) と等しいことを行う能力があります。これは、ncurses で動作しません。

wtouchln を除いて、すべてのルーチンは、マクロであるかもしれないことに注意してください。

関連項目

curses(3X), curs_refresh(3X)