スポンサーリンク

curs_outopts

名称
書式
解説
戻り値
バグ
注釈
関連項目

名称

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 ルーチンを有効にすると (bfTRUE にすると ) 、次にこのウィン ドウで wrefresh を呼び出した場合、画面は完全にクリアされ、画面全体が 最 初 から再描画されます。画面の内容が不確実であるか、より良い視覚効果を出 す場合に便利です。 clearok の引数 win がグローバル変数 curscr である 場 合、 次に任意のウィンドウで wrefresh を呼び出すと、画面がクリアされて最 初から再描画されます。

idlok ルーチンを有効にすると (bfTRUE にすると ) 、 ncurses は、端末 の行挿入 / 削除機能を備わっているものとして使用します。無効にすると (bfFALSE にすると ) 、 ncurses はこの機能をほとんど使用しません。 ( 文 字 の挿入 / 削除機能は常に考慮されます。 ) たとえば画面エディタなど、行 の挿入 / 削除が必要なアプリケーションのみで、このオプションを有効にして ください。行の挿入 / 削除が本当に必要でないアプリケーションでは、行の挿 入 / 削除が見た目を害する傾向にあるので、デフォルトでは無効になっていま す。 行の挿入 / 削除機能が使用できない場合、 ncurses は、すべての行の変 更された部分を再描画します。

idcok ルーチンを有効にすると (bfTRUE にすると ) 、 ncurses は、端末 のキャラクタ挿入 / 削除機能を備わっているものとして使用します。デフォル トでは有効になっています。

immedok ルーチンを有効にすると (bfTRUE にする と ) 、 waddch wclrtobot wscrl な ど で ウィ ンドウのイメージが変更された場合、 wrefresh が自動的に呼び出されます。 wrefresh が繰り返し呼び出され る の で、 パ フォー マンスは大幅に低下します。デフォルトでは無効になっていま す。

通常の場合、ハードウェアカーソルは、リフレッシュされたウィンドウカー ソ ルの場所に残ります。 leaveok オプションでは、更新したときの場所にカーソ ルを残せます。カーソルの移動が必要なくなるため、カーソルを使用しない ア プ リ ケー ションで便利です。このオプションを有効にすると、可能な場合は カーソルを非表示にできます。

setscrreg ルーチンと wsetscrreg ルーチンを使用すると、アプリケーショ ン プ ロ グ ラマは、ウィンドウでソフトウェアスクローリング領域を設定できま す。 topbot は、スクローリング領域の上下マージンの行番号 で す。 ( ウィ ンドウの最初の行は 0 です。 ) このオプションと scrollok を有効にし た場合は、下マージンの行の先へ移動しようとすると、スクローリング領域 の すべての行は 1 行上にスクロールされます。スクロールされるのは、ウィンド ウのテキストのみです。 (VT100 のような、端末の物理的なスクローリング 領 域機能の使用とは関係ないことに注意してください。 idlok を有効にすると、 端末にスクローリング領域機能か行の挿入 / 削除機能がある場合は、出力ルー チンでこれらの機能が使用されることがあります。 )

scrollok オプションは、最終行での改行アクション、または最終行での最終 キャラクタの入力により、ウィンドウのカーソルがウィンドウかスクローリ ン グ 領 域の端を越えた場合の対処法を制御します。無効にすると (bfFALSE にすると ) 、カーソルは最終行に残ります。有効にすると (bfTRUE に す ると ) 、 wrefresh がウィンドウで呼び出され、物理的な端末とウィンドウは 1 行上にスクロールされます。 [ 端末で物理的なスクロール効果を出すには、 idlok も呼び出す必要があることに注意してください。 ]

nl ルーチンと nonl ルーチンは、出力時に改行をキャリッジリターンとライン フィードに変換するかどうか、および入力時にリターンを改行に変換するか ど う か を 制御します。最初は変換が行なわれます。 nonl で変換を無効にする と、 ncurses はラインフィード機能をより良く使用できるようになり、カーソ ルの動きが速くなります。

戻り値

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

バグ

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

注釈

clearokleaveokscrollokidcoknlnonlsetscrreg は、 マクロである場合があることに注意してください。

immedok ルー チンは、端末エミュレータとして使用するウィンドウで便利で す。

関連項目

ncurses(3), curs_addch(3), curs_clear(3), curs_initscr(3), curs_scroll(3), curs_refresh(3)

スポンサーリンク