curs_outopts(3)

名称
clearok, idlok, idcok immedok, leaveok, setscrreg, wsetscrreg, scrollok, nl, nonl - ncurses output options

書式
#include <ncurses.h> int clearok(WINDOW *win, bool bf);
int idlok(WINDOW *win, bool bf);
void idcok(WINDOW *win, bool bf);
void immedok(WINDOW *win, bool bf);
int leaveok(WINDOW *win, bool bf);
int setscrreg(int top, int bot);
int wsetscrreg(WINDOW *win, int top, int bot);
int scrollok(WINDOW *win, bool bf);
int nl(void);
int nonl(void);

解説
このルーチンでは、 ncurses の出力のスタイルを変更するオプションを 設定します。すべてのオプションは、特記しないかぎり、最初は FALSE になっています。このオプションをオフに切り替えてから endwin を呼び出す必要はありません。 clearok ルーチンを有効にすると (bf を TRUE にすると ) 、次にこの ウィンドウで wrefresh を呼び出した場合、画面は完全にクリアされ、画面全体が 最初から再描画されます。画面の内容が不確実であるか、より良い視覚効果を出す 場合に便利です。 clearok の引数 win がグローバル変数 curscr である場合、次に任意のウィンドウで wrefresh を呼び出すと、画面がクリアされて最初から再描画されます。 idlok ルーチンを有効にすると (bf を TRUE にすると ) 、 ncurses は、 端末の行挿入 / 削除機能を備わっているものとして使用します。無効にすると (bf を FALSE にすると ) 、 ncurses はこの機能をほとんど使用しません。 ( 文字の挿入 / 削除機能は常に考慮されます。 ) たとえば画面エディタなど、行の挿入 / 削除が 必要なアプリケーションのみで、このオプションを有効にしてください。行の挿入 / 削除が本当に必要でないアプリケーションでは、行の挿入 / 削除が見た目を害する 傾向にあるので、デフォルトでは無効になっています。行の挿入 / 削除機能が 使用できない場合、 ncurses は、すべての行の変更された部分を再描画します。 idcok ルーチンを有効にすると (bf を TRUE にすると ) 、 ncurses は、端末のキャラクタ挿入 / 削除機能を備わっているものとして使用します。デフォルト では有効になっています。 immedok ルーチンを有効にすると (bf を TRUE にすると ) 、 waddch 、 wclrtobot 、 wscrl などでウィンドウのイメージが変更された場合、 wrefresh が 自動的に呼び出されます。 wrefresh が繰り返し呼び出されるので、パフォーマンス は大幅に低下します。デフォルトでは無効になっています。 通常の場合、ハードウェアカーソルは、リフレッシュされた ウィンドウカーソルの場所に残ります。 leaveok オプションでは、更新したときの 場所にカーソルを残せます。カーソルの移動が必要なくなるため、カーソルを 使用しないアプリケーションで便利です。このオプションを有効にすると、可能な 場合はカーソルを非表示にできます。 setscrreg ルーチンと wsetscrreg ルーチンを使用すると、 アプリケーションプログラマは、ウィンドウでソフトウェアスクローリング領域を 設定できます。 top と bot は、スクローリング領域の上下マージンの行番号です。 ( ウィンドウの最初の行は 0 です。 ) このオプションと scrollok を有効にした 場合は、下マージンの行の先へ移動しようとすると、 スクローリング領域のすべての行は 1 行上にスクロールされます。スクロール されるのは、ウィンドウのテキストのみです。 (VT100 のような、端末の物理的な スクローリング領域機能の使用とは関係ないことに注意してください。 idlok を有効にすると、端末にスクローリング領域機能か行の挿入 / 削除機能がある場合は、 出力ルーチンでこれらの機能が使用されることがあります。 ) scrollok オプションは、最終行での改行アクション、または最終行での 最終キャラクタの入力により、ウィンドウのカーソルがウィンドウか スクローリング領域の端を越えた場合の対処法を制御します。無効にすると (bf を FALSE にすると ) 、カーソルは最終行に残ります。有効にすると (bf を TRUE にすると ) 、 wrefresh がウィンドウで呼び出され、物理的な端末とウィンドウは 1 行上にスクロールされます。 [ 端末で物理的なスクロール効果を出すには、 idlok も呼び出す必要があることに注意してください。 ] nl ルーチンと nonl ルーチンは、出力時に改行をキャリッジリターンと ラインフィードに変換するかどうか、および入力時にリターンを改行に 変換するかどうかを制御します。最初は変換が行なわれます。 nonl で変換を無効にすると、 ncurses はラインフィード機能をより良く使用できるようになり、 カーソルの動きが速くなります。

戻り値
setscrreg と wsetscrreg は、問題がないと OK を、問題があると ERR を戻します。整数を返す、その他すべてのルーチンは、常に OK を戻します。

バグ
エントリポイント idcok 、 immedok は、 ncurses 1.8.6 ではまだ 実装されていません。 idlok を設定すると、ウィンドウのスクロール時に予期せぬ結果となります。

注釈
clearok 、 leaveok 、 scrollok 、 idcok 、 nl 、 nonl 、 setscrreg は、マクロである場合があることに注意してください。 immedok ルーチンは、端末エミュレータとして使用するウィンドウで 便利です。

関連項目
ncurses(3), curs_addch(3), curs_clear(3), curs_initscr(3), curs_scroll(3), curs_refresh(3)