curs_scroll(3x) curs_scroll(3x)
scroll, scrl, wscrl
- curses ウインドウのスクロール
#include <curses.h>
int scroll(WINDOW *win);
int scrl(int n);
int wscrl(WINDOW *win, int n);
scroll ルーチンはウインドウを上へ 1 行スクロールします。
これはウインドウ・データ構造内の各行の移動を伴います。
最適化の一つとして、ウインドウのスクロール領域が画面全体の
場合、同時に物理的な画面もスクロールすることがあります。
n の正の値に対して、scrl と wscrl ルーチンはウインドウを
上へ n 行スクロールします (行 i+n が行 i になります)。
そうでなければ、ウインドウは下へ n (訳注: n の絶対値) 行
スクロールします。
これはウインドウ文字イメージ構造内の各行の移動を伴います。
カーソルの現在位置は変化しません。
これらの関数が動作するためには、scrollok を使ってスクロールが
有効化されていなければなりません。
これらのルーチンは失敗のとき ERR を、正常終了のとき OK
(SVr4 は「ERR 以外の整数値」としか指定していません) を
返します。
X/Open はエラーの条件を何も定義していません。
この実装では、ウインドウ・ポインタがヌルのとき、または
scrollok でウインドウのスクロールが有効化されていないとき
エラーを返します。
scrl と scroll はマクロであるかもしれないことに
注意してください。
SVr4 説明書には、スクロール領域が画面全体のとき、ただちに
物理的なスクロールの最適化を「行う」と書かれており、
「行うかもしれない」とは書かれていません。
この実装は、次の画面更新で複数のスクロール動作をより良く
最適化する余地を残すため、物理的なスクロールが起こるとは
あえて保証していません。
SVr4 も XSI も、スクロール機能で発生した空白の
現在の表示属性と現在の色のペアがゼロになるかどうかを説明書に
明記していません。
この実装ではゼロになります。
これらの関数は XSI Curses standard, Issue 4 に
記載されています。
curses(3x), curs_outopts(3x)
curs_scroll(3x)