curs_outopts 3x

curs_outopts(3x)                                       curs_outopts(3x)




名前

       clearok, idlok, idcok, immedok, leaveok, setscrreg,
       wsetscrreg, scrollok, nl, nonl - curses 出力オプション


書式

       #include <curses.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);


説明

        これらのルーチンは、 curses での出力方法を変更する
       オプションを設定します。
        特記がない限り、すべてのオプションの初期値は FALSE です。
        endwin を呼び出す前にこれらのオプションをオフにする必要は
       ありません。


clearok

        clearok を引数 TRUE とともに呼び出すと、このウインドウに
       対する次の wrefresh 呼び出しは画面を完全に消去し、全画面を
       初めから描き直します。
        これは画面の内容が不確定なときや、ある場合にはより望ましい
       視覚効果のために有用です。
        clearok の引数 win が広域 (グローバル) 変数 curscr の場合は、
       どのウインドウに対する次の wrefresh 呼び出しも画面を消去し、
       初めから描き直します。


idlok

        idlok を第 2 引数 TRUE とともに呼び出すと、 curses は端末に
       備わっているハードウェアによる行の挿入/削除機能を使うことを
       想定します。
        idlok を第 2 引数 FALSE とともに呼び出すと、
       行の挿入/削除機能の使用を無効にします。
        このオプションは、例えばスクリーン・エディタのように
       アプリケーションが行の挿入/削除を必要とする場合のみ
       有効にしてください。
        本当に必要としないアプリケーションで行の挿入/削除を使うと
       見苦しくなりがちなので、デフォルトでは無効になっています。
        行の挿入/削除が使えない場合、 curses はすべての行の
       変更された部分を描画し直します。


idcok

        idcok を第 2 引数 FALSE とともに呼び出すと、 curses は
       端末に備わっているハードウェアによる文字挿入/削除機能を
       使うことを考慮しなくなります。
        文字挿入/削除機能の使用はデフォルトでは有効になっています。
        idcok を第 2 引数 TRUE とともに呼び出すと、
       文字挿入/削除機能の使用が再び有効になります。


immedok

        immedok を引数 TRUE とともに呼び出すと、例えば waddch, 
       wclrtobot, wscrl などによるどのようなウインドウ画像の変化も
       自動的に wrefresh 呼び出しを引き起こします。
        しかし、これは wrefresh 呼び出しを繰り返すため、
       相当に性能が低下します。
        デフォルトでは無効になっています。


leaveok

        通常、ハードウェアのカーソルはウインドウのカーソルが
       更新された位置に置かれます。
        leaveok オプションは、カーソルをどこに置こうとする
       更新が起こっても、カーソル位置をそのままにします。
        カーソルを動かす必要が減少するので、これはカーソルを
       使わないアプリケーションに有用です。


setscrreg

        setscrregwsetscrreg ルーチンはウインドウ内に
       ソフトウェア・スクロール領域を設定できるようにします。
        引数 topbot はスクロール領域の上マージンと下マージン
       の行番号です。 (行 0 がウインドウの一番上の行です。)
        このオプションと scrollok が有効ならば、下マージン行から
       出ようとする動きは、スクロール領域内のすべての行が
       最初の行に向かう方向に 1 行のスクロールを引き起こします。
        ウインドウのテキストのみがスクロールされます。
        ( VT100 にあるような、端末の物理スクロール領域機能を
       使うこととは関係がないことに注意してください。
        idlok が有効で、端末がスクロール領域機能か
       行の挿入/削除機能を持っているならば、これらはたぶん
       出力ルーチンで使われるでしょう。)


scrollok

        scrollok オプションは、最下行での改行動作または最終行での
       最終文字の入力により、ウインドウのカーソルがウインドウまたは
       スクロール領域の端から出たときに起こる動作を制御します。
        無効 (bfFALSE) ならば、カーソルは最下行に残ります。
        有効 (bfTRUE) ならば、ウインドウは 1 行上へスクロール
       します。
       (端末で物理スクロール効果を得るためには、 idlok も
       呼び出さなければならないことに注意してください。)


nl, nonl

        nlnonl ルーチンは、基盤となる表示装置がリターンキーを
       入力時に改行に変換するかどうか、そして改行を出力時に
       リターンと行送りに変換するかどうかを制御します。
       (どちらの場合も、 addch('\n') の呼び出しは仮想画面上での
       リターンおよび行送りと同等な動作です。)
        初期状態では、これらの変換が起こります。
        nonl を使って無効にすると、 curses は line-feed (行送り) 
       機能をより良く使えるようになり、結果としてカーソルの動きが
       速くなります。
        そしてまた、 curses はリターンキーを検出できるように
       なります。


戻り値

        setscrregwsetscrreg 関数は正常終了の場合に OK を、
       失敗の場合に ERR を返します。
        整数を返す他のすべてのルーチンは、常に OK を返します。

        X/Open Curses はエラーの条件を何も定義していません。

        この実装では、ウインドウ・ポインタを持つそれらの関数は、
       ウインドウ・ポインタがヌルの場合にエラーを返します。

              wclrtoeol
                   カーソル位置が折り返ししようとしているところ
                   だった場合にエラーを返します。
                   (訳注: このページで説明している関数ではありません)

              wsetscrreg
                   スクロール領域の限界がウインドウの外に
                   広がっている場合にエラーを返します。

       (訳注: 以下の説明は重複しています)
        X/Open はエラーの条件を何も定義していません。
        この実装は、ウインドウ・ポインタがヌルの場合にエラーを
       返します。
       (訳注: ここまで)


移植性

        これらの関数は XSI Curses standard, Issue 4 に
       記載されています。

        XSI Curses standard は、 raw() が nl() と nonl() の制御する
       (リターンと行送りへの) CRLF 変換を無効にするべきかどうか
       という問題に対してあいまいです。
        BSD curses はこれらの変換を止めます。
       AT&T curses (少なくとも SVr1 まで) は止めません。
        ncurses は、 raw 入力を求めるならば、オペレーティング・
       システム (OS) が変更しないクリーンな (理想的には 8 ビット
       クリーンな) 接続を求めるであろうという理論に基づいて、
       止めることにしました。

        curses の歴史的ないくつかの実装では、明文化されていない
       機能として、 touchwin(stdscr) または clear(stdscr) とする
       ことで clearok(..., 1) と同等な処理ができました。
        これは ncurses では動作しません。

        初期の System V curses の実装では、 scrollok が有効なとき、
       スクロールを引き起こすどのようなウインドウの変更も
       物理的な更新 (リフレッシュ) を強制すると明示していました。
        XSI Curses はこれを要求しません。
       ncurseswrefresh のときに垂直な動きの最適化をよりよく
       行うため、これを行うことを避けています。

        XSI Curses standard は leaveok の副作用として、カーソルを
       不可視にすることに言及していません。
        SVr4 curses の説明文書ではこれを行いますが、コードは
       これを行いません。
        カーソルを不可視にするには curs_set を使ってください。


注意

        clearok, leaveok, scrollok, idcok, nl, nonl, setscrreg は
       マクロであるかもしれないことに注意してください。

        immedok ルーチンは端末エミュレータとして使うウインドウに
       有用です。


関連項目

       curses(3x), curs_addch(3x), curs_clear(3x),
       curs_initscr(3x), curs_scroll(3x), curs_refresh(3x),
       curs_variables(3x).



                                                       curs_outopts(3x)