EN JA
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 Window 端末 (例えば xterm) で走るプログラムによって使用するために、ウィンドウのサイズ変更する ncurses データへのホックを呼び出し側に提供します。関数 resizeterm は、指定された面積に標準および現在のウィンドウのサイズに変更し、ウィンドウの面積を記録する、 ncurses ライブラリによって使用される他のブックキーピングデータを調節します。

仕事の大部分は内部の関数 resize_term によって行なわれます。外部関数 resizeterm は、SIGWINCH ハンドラのためにブックキーピング (簿記) を追加します。ウィンドウをサイズ変更するとき、 resize_term は拡張された領域を空白で満たします。呼び出したアプリケーションは、適切なデータでこれらの領域を満たすべきです。 resize_term 関数は、すべてのウィンドウのサイズ変更することを試みます。しかしながら、詰め物の呼び出し仕様により、アプリケーションで追加された相互作用なしでこれらのサイズ変更することはできません。

サポート関数 is_term_resized はアプリケーションが、 resize_term 関数がウィンドウ構造体を変更するかどうかチェックすることができるように提供します。ウィンドウが変更されているなら、TRUE を、そうでないなら、FALSE を返します。

戻り値

注を除いて、これらの関数は失敗すると整数 ERR を返し、成功すれば OK を返します。面積のいずれかが 0 以下であるか、ウィンドウのためにメモリを(再)割り付けている間にエラーが発生するなら、失敗します。

これらの関数がシグナルハンドラ (つまり SIGWINCH のための) をサポートするために使用されるように意図されている一方、それらの関数を使用するので、 malloc または realloc が中断されるかもしれない状況でそれらを呼び出すことを回避するために注意するべきです。

ncurses がそれ自身の SIGWINCH ハンドラを供給するために設定される場合、 resizeterm 関数は、 getch の次の呼び出しで読み込まれる KEY_RESIZE を ungetch します。これは画面サイズが変更されたアプリケーションに警報を出すために使用されます。そして、自動的にできない詰め物のような特徴を再描画すべきです。

環境変数 LINES または COLUMNS が設定されているなら、これは、オペレーティングシステムから得られたウィンドウサイズのライブラリの使用を上書きします。したがって、SIGWINCH が受信されても、画面サイズの変更は、記録されません。その場合には、 KEY_RESIZE は、 getch への次の呼び出しのためにキューに入れられます。代わりに ERR が返されます。

関連項目

wresize(3X)

作者

Thomas Dickey (BSD curses のために 1988 年に書かれた等価な関数から)。