curs_kernel(3x) curs_kernel(3x)
def_prog_mode, def_shell_mode, reset_prog_mode, reset_shell_mode, resetty, savetty, getsyx, setsyx, ripoffline, curs_set, napms - low-level curses routines - 低レベル curses ルーチン
#include <curses.h> int def_prog_mode(void); int def_shell_mode(void); int reset_prog_mode(void); int reset_shell_mode(void); int resetty(void); int savetty(void); void getsyx(int y, int x); void setsyx(int y, int x); int ripoffline(int line, int (*init)(WINDOW *, int)); int curs_set(int visibility); int napms(int ms);
The following routines give low-level access to various curses capabilities. These routines typically are used inside library routines. これらのルーチンは curses の種々の機能への低レベルのアクセスを 提供します。 典型的にはライブラリ・ルーチンの内部で使われています。
The def_prog_mode and def_shell_mode routines save the current terminal modes as the "program" (in curses) or "shell" (not in curses) state for use by the re- set_prog_mode and reset_shell_mode routines. This is done automatically by initscr. There is one such save area for each screen context allocated by newterm(). def_prog_mode と def_shell_mode ルーチンは現在の端末モードを 「プログラム」状態 ( curses 内) として、または「シェル」状態 ( curses 外) として、 reset_prog_mode と reset_shell_mode ルーチンが使えるように保存します。 これは initscr によって自動的に行われます。 端末のコンテキストごとに newterm() が割り当てるこのような 保存領域が 1 つあります。
The reset_prog_mode and reset_shell_mode routines restore the terminal to "program" (in curses) or "shell" (out of curses) state. These are done automatically by endwin and, after an endwin, by doupdate, so they normally are not called. reset_prog_mode と reset_shell_mode ルーチンは端末を 「プログラム」状態 ( curses 内) として、または「シェル」状態 ( curses 外) として復元します。 これらは endwin と、 endwin 後の doupdate によって自動的に 行われるので、通常これらを呼び出すことはありません。
The resetty and savetty routines save and restore the state of the terminal modes. savetty saves the current state in a buffer and resetty restores the state to what it was at the last call to savetty. savetty と resetty ルーチンは端末モードの状態の 保存と復元をします。 savetty は現在の状態をバッファに保存し、 resetty は最後に savetty を呼び出した時点の状態に復元します。
The getsyx routine returns the current coordinates of the virtual screen cursor in y and x. If leaveok is currently TRUE, then -1,-1 is returned. If lines have been removed from the top of the screen, using ripoffline, y and x in- clude these lines; therefore, y and x should be used only as arguments for setsyx. getsyx ルーチンは現在の仮想画面のカーソルの座標を y と x の 中に返します。 leaveok が現在 TRUE ならば、 -1, -1 を返します。 ripoffline を使って画面の最上部から行が削除されたときは、 y と x はこれらの行を含みます。したがって、 y と x は setsyx の引数としてのみ使うべきです。
The setsyx routine sets the virtual screen cursor to y, x. If y and x are both -1, then leaveok is set. The two rou- tines getsyx and setsyx are designed to be used by a li- brary routine, which manipulates curses windows but does not want to change the current position of the program's cursor. The library routine would call getsyx at the be- ginning, do its manipulation of its own windows, do a wnoutrefresh on its windows, call setsyx, and then call doupdate. setsyx ルーチンは仮想画面のカーソルを y, x に設定します。 y も x も -1 ならば、 leaveok をセットします。 getsyx と setsyx の 2 つのルーチンは、 curses のウインドウを 操作するがプログラムのカーソルの現在位置を変更したくない ライブラリ・ルーチンが使うように設計されています。 (そのような) ライブラリ・ルーチンは、 はじめに getsyx を呼び出し、対象のウインドウを操作し、 対象のウインドウで wnoutrefresh を実行し、setsyx を呼び出し、 そして doupdate を呼び出します。
The ripoffline routine provides access to the same facili- ty that slk_init [see curs_slk(3x)] uses to reduce the size of the screen. ripoffline must be called before initscr or newterm is called, to prepare these initial ac- tions: ripoffline ルーチンは、 slk_init [ curs_slk(3x) 参照] が 画面の寸法を縮小するために使うものと同じ拡張機能の利用方法を 提供します。 以下の初期化動作を準備するために、ripoffline は initscr または newterm を呼び出す前に呼び出さなければ なりません。 o If line is positive, a line is removed from the top of stdscr. line が正ならば、 stdscr の最上部から 1 行を削除します。 o if line is negative, a line is removed from the bot- tom. line が負ならば、 最下部から 1 行を削除します。 When the resulting initialization is done inside initscr, the routine init (supplied by the user) is called with two arguments: initscr の内部で ripoffline のもたらす初期化が済むと、 (与えられた) init ルーチンを次の 2 つの引数とともに 呼び出します。 o a window pointer to the one-line window that has been allocated and 割り当てられた 1 行のウインドウへのウインドウ・ポインタ o an integer with the number of columns in the window. ウインドウ内の桁数を持つ整数 Inside this initialization routine, the integer variables LINES and COLS (defined in <curses.h>) are not guaranteed to be accurate and wrefresh or doupdate must not be called. It is allowable to call wnoutrefresh during the initialization routine. この初期化ルーチンの内部で、 ( <curses.h> で定義されている) 整数変数 LINES と COLS の正確性は保証されません。 また、 wrefresh も doupdate も呼び出してはいけません。 この初期化ルーチンの実行中、 wnoutrefresh を呼び出すことは 許されています。 ripoffline can be called up to five times before calling initscr or newterm. ripoffline は initscr または newterm を呼び出す前に 5 回まで 呼び出すことができます。
The curs_set routine sets the cursor state to invisible, normal, or very visible for visibility equal to 0, 1, or 2 respectively. If the terminal supports the visibility re- quested, the previous cursor state is returned; otherwise, ERR is returned. curs_set ルーチンは、 visibility を 0, 1, 2 にすることにより、 カーソルの表示方法をそれぞれ不可視、通常表示、高視認性に 設定します。 端末が visibility で要求された表示方法をサポートしている場合、 直前の表示方法を返します。そうでない場合は ERR を返します。
The napms routine is used to sleep for ms milliseconds. napms を使うと ms ミリ秒間スリープします。
Except for curs_set, these routines always return OK. curs_set を除き、これらのルーチンは常に OK を返します。 curs_set returns the previous cursor state, or ERR if the requested visibility is not supported. curs_set は直前のカーソルの表示方法を返しますが、 要求された表示方法をサポートしていない場合は ERR を返します。 X/Open defines no error conditions. In this implementa- tion X/Open はエラーの条件を何も定義していません。この実装では def_prog_mode, def_shell_mode, reset_prog_mode, reset_shell_mode return an error if the terminal was not initialized, or if the I/O call to obtain the terminal settings fails. 端末が初期化されていない場合、または端末設定を得るための I/O 呼び出しが失敗した場合にエラーを返します。 ripoffline returns an error if the maximum number of ripped-off lines exceeds the maximum (NRIPS = 5). 削除した行数の最大値が制限値 (NRIPS = 5) を超える場合に エラーを返します。
Note that getsyx is a macro, so & is not necessary before the variables y and x. getsyx はマクロなので、変数 y と x の前に & が必要ないことに 注意してください。 Older SVr4 man pages warn that the return value of curs_set "is currently incorrect". This implementation gets it right, but it may be unwise to count on the cor- rectness of the return value anywhere else. 古い SVr4 のマニュアル・ページは curs_set の戻り値は 「現在のところ正しくない」と警告しています。 この実装では正しくなっていますが、他の実装で戻り値が 正しいと期待するのは賢明ではないでしょう。 Both ncurses and SVr4 will call curs_set in endwin if curs_set has been called to make the cursor other than normal, i.e., either invisible or very visible. There is no way for ncurses to determine the initial cursor state to restore that. ncurses と SVr4 の双方は、カーソルを通常表示以外、つまり 不可視か高視認性にするために curs_set を呼び出した場合、 endwin で curs_set を呼び出します。 元に戻そうとしても ncurses にはカーソル表示方法の初期状態を 決定する方法がありません。
The functions setsyx and getsyx are not described in the XSI Curses standard, Issue 4. All other functions are as described in XSI Curses. setsyx と getsyx 関数は XSI Curses standard, Issue 4 に 記載されていません。 他のすべての関数は XSI Curses に記載されているとおりです。 The SVr4 documentation describes setsyx and getsyx as hav- ing return type int. This is misleading, as they are macros with no documented semantics for the return value. SVr4 説明書は setsyx と getsyx の戻り値の型を int と 記載しています。 これらは戻り値の意味を明文化していないマクロなので、 この文書は誤解を招くものです。
curses(3x), curs_initscr(3x), curs_outopts(3x), curs_refresh(3x), curs_scr_dump(3x), curs_slk(3x), curs_variables(3x). curs_kernel(3x)