resizeterm 3x

resizeterm(3x)                                           resizeterm(3x)




名前

       is_term_resized,  resize_term,  resizeterm 
        - curses 端末サイズの変更


書式

       #include <curses.h>

       bool is_term_resized(int lines, int columns);
       int resize_term(int lines, int columns);
       int resizeterm(int lines, int columns);


説明

        これは curses ライブラリの拡張です。
        主に X ウインドウ端末 (例えば xterm ) 上で実行される
       プログラム用に、ウインドウのサイズを変更するための 
       ncurses のデータへのフックを提供します。


resizeterm

        resizeterm 関数は、標準ウインドウと現在ウインドウを
       指定の寸法に変更し、 ncurses ライブラリが使う、例えば
       変数 LINESCOLS のようにウインドウの寸法を記録している
       他の保有データを調整します。


resize_term

        大部分の作業は内部関数 resize_term が行います。
        外側の関数 resizeterm は SIGWINCH ハンドラのための
       記録作業を追加します。
        ウインドウのサイズを変更するとき、 resize_term は
       拡張した領域を空白で埋めます。
        呼び出し側のアプリケーションはこれらの領域を適切なデータで
       満たしてください。
        resize_term 関数はすべてのウインドウのサイズを
       変更しようとします。
        しかし、パッドの呼出規約のため、アプリケーションとの追加的な
       相互作用なしにこれらのサイズを変更することはできません。


is_term_resized

        resize_term 関数がウインドウ構造(体)を変更するかどうかを
       調べるために、補助関数 is_term_resized が提供されます。
        ウインドウが変更されるなら TRUE を、そうでなければ 
       FALSE を返します。


戻り値

        特記がない限り、これらの関数は失敗のとき整数 ERR を、
       成功のとき OK を返します。
        これらの関数は、寸法がゼロまたはそれ未満のとき、または
       ウインドウのメモリを(再)割り当てする間にエラーが発生したときに
       失敗します。


注意

        これらの関数をシグナルハンドラのサポートに 
       (つまり SIGWINCH のために) 使おうとするときは、 
       malloc または realloc が割り込まれるかもしれない状況で
       呼ばないように注意を払う必要があります。
       それらの関数を使うからです。

        ncurses が自身の SIGWINCH ハンドラを提供するように
       構成されている場合には、

       o   SIGWINCH を受け取ると、ハンドラはフラグをセットし、

       o   フラグは wgetchdoupdate でテストされ、

       o   次に、 resizeterm 関数を呼び出し、

       o   それは KEY_RESIZEungetch し、次の wgetch 呼び出しで
           読み出されるようにします。

            KEY_RESIZE は画面サイズが変更され、パッドのように
           自動的に再描画されない特別な部分を描画し直さなくては
           ならないことをアプリケーションに警告します。

            シグナルハンドラから resizeterm または resize_term を
           直接呼び出すのは安全ではありません。
            安全に ncurses のデータ構造のサイズを変更する方法を
           与えるために、この間接的な方法が使われます。

        環境変数 LINES または COLUMNS が設定されている場合、
       ライブラリがオペレーティング・システムから得たウインドウの
       サイズを使わないようにします。
        したがって、 SIGWINCH を受け取っても、画面サイズの変更は
       記録されないことがあります。


移植性

        SVr4 curses では次の方法で画面サイズの変更ができます。

       o   endwin(3x) で curses を終了し

       o   refresh(3x) を使って再開します。

        これは画面をクリアし、壊れたように見えます。

        この ncurses 拡張機能は 1995年の中頃に導入されました。
        NetBSD curses (2001年) と PDCurses (2003年) にも
       採用されました。


関連項目

       curs_getch(3x), curs_variables(3x), wresize(3x).


作者

        Thomas Dickey (1988年に BSD curses 用に書かれた
       同等の関数から)


                                                         resizeterm(3x)