curs_slk(3x) curs_slk(3x)
slk_init, slk_set, slk_wset, slk_refresh, slk_noutrefresh, slk_label, slk_clear, slk_restore, slk_touch, slk_attron, slk_attrset, slk_attroff, slk_attr_on, slk_attr_set, slk_attr_off, slk_attr, slk_color - curses soft label routines - curses ソフトウェア・ファンクションキー・ラベル・ルーチン
#include <curses.h> int slk_init(int fmt); int slk_set(int labnum, const char *label, int fmt); int slk_refresh(void); int slk_noutrefresh(void); char *slk_label(int labnum); int slk_clear(void); int slk_restore(void); int slk_touch(void); int slk_attron(const chtype attrs); int slk_attroff(const chtype attrs); int slk_attrset(const chtype attrs); int slk_attr_on(attr_t attrs, void* opts); int slk_attr_off(const attr_t attrs, void * opts); int slk_attr_set(const attr_t attrs, short color_pair, void* opts); attr_t slk_attr(void); int slk_color(short color_pair); int slk_wset(int labnum, const wchar_t *label, int fmt);
The slk* functions manipulate the set of soft function-key labels that exist on many terminals. For those terminals that do not have soft labels, curses takes over the bottom line of stdscr, reducing the size of stdscr and the vari- able LINES. curses standardizes on eight labels of up to eight characters each. In addition to this, the ncurses implementation supports a mode where it simulates 12 la- bels of up to five characters each. This is useful for today's PC-like enduser devices. ncurses simulates this mode by taking over up to two lines at the bottom of the screen; it does not try to use any hardware support for this mode. slk* 関数群は、多くの端末に存在するソフトウェア・ ファンクションキー・ラベル (以下ソフトラベル) を操作します。 ソフトラベルを持たない端末のために、curses は stdscr と 変数 LINES のサイズを縮小し、stdscr の最下行を専用とします。 curses は各 8 文字以内の 8 個のラベルを標準化しています。 これに加え、ncurses の実装は各 5 文字以内の 12 個のラベルを シミュレートするモードをサポートしています。 これは今日の PC のような利用者機器に便利です。 ncurses はハードウェアのサポートを全く使おうとすることなく、 画面の最下部 2 行以内を使ってこのモードをシミュレートします。 The slk_init routine must be called before initscr or newterm is called. If initscr eventually uses a line from stdscr to emulate the soft labels, then fmt determines how the labels are arranged on the screen: slk_init ルーチンは initscr または newterm を呼び出す前に 呼び出さなければなりません。 最終的に initscr が stdscr から 1 行を使ってソフトラベルを エミュレートするとき、fmt は画面上にラベルをどう配置するかを 決定します。 0 indicates a 3-2-3 arrangement of the labels. 0 3-2-3 配置でラベルを表示します 1 indicates a 4-4 arrangement 1 4-4 配置でラベルを表示します 2 indicates the PC-like 4-4-4 mode. 2 PC のような 4-4-4 配置でラベルを表示します 3 is again the PC-like 4-4-4 mode, but in addition an index line is generated, helping the user to identify the key numbers easily. 3 これもPC のような 4-4-4 配置ですが、 それに加えて見出し行を作成し、 利用者がキー番号を識別しやすくします The slk_set routine (and the slk_wset routine for the wide-character library) has three parameters: slk_set ルーチン (とワイド文字用ライブラリの slk_wset ルーチン) は、次の 3 つの引数を取ります。 labnum is the label number, from 1 to 8 (12 for fmt in slk_init is 2 or 3); 1 から 8 (slk_init で fmt が 2 または 3 の場合は 12) までのラベル番号 label is be the string to put on the label, up to eight (five for fmt in slk_init is 2 or 3) characters in length. A null string or a null pointer sets up a blank label. ラベルとして表示される、8 (slk_init で fmt が 2 または 3 の場合は 5) 文字までの長さの文字列。 ヌル文字列またはヌルポインタの場合は 空白のラベルを設定します fmt is either 0, 1, or 2, indicating whether the label is to be left-justified, centered, or right-justified, respectively, within the la- bel. 0, 1, 2 のいずれかであり、それぞれラベル内で 左寄せ、中央揃え、右寄せにして表示します The slk_refresh and slk_noutrefresh routines correspond to the wrefresh and wnoutrefresh routines. slk_refresh と slk_noutrefresh ルーチンは wrefresh と wnoutrefresh ルーチンに対応しています。 The slk_label routine returns the current label for label number labnum, with leading and trailing blanks stripped. slk_label ルーチンは、ラベル番号 labnum の現在のラベルを 返します。先行または後続する空白は取り除かれます。 The slk_clear routine clears the soft labels from the screen. slk_clear ルーチンは画面からソフトラベルをクリアします。 The slk_restore routine restores the soft labels to the screen after a slk_clear has been performed. slk_restore ルーチンは slk_clear が実行された後、 ソフトラベルを画面上に復元します。 The slk_touch routine forces all the soft labels to be output the next time a slk_noutrefresh is performed. slk_touch ルーチンは、次に slk_noutrefresh が実行された時に すべてのソフトラベルを出力するように強制します。 The slk_attron, slk_attrset, slk_attroff and slk_attr rou- tines correspond to attron, attrset, attroff and attr_get. They have an effect only if soft labels are simulated on the bottom line of the screen. The default highlight for soft keys is A_STANDOUT (as in System V curses, which does not document this fact). slk_attron, slk_attrset, slk_attroff, slk_attr ルーチンは attron, attrset, attroff, attr_get に対応しています。 これらは画面の最下行でソフトラベルがシミュレートされている 場合のみ有効です。 ソフトラベルのデフォルトの強調表示は A_STANDOUT です (これを文書化していない System V curses と同様に)。 The slk_color routine corresponds to color_set. It has an effect only if soft labels are simulated on the bottom line of the screen. slk_color ルーチンは color_set に対応しています。 これは画面の最下行でソフトラベルがシミュレートされている 場合のみ有効です。
These routines return ERR upon failure and OK (SVr4 speci- fies only "an integer value other than ERR") upon success- ful completion. これらのルーチンは失敗のとき ERR を、正常終了のとき OK (SVr4 は「ERR 以外の整数値」としか指定していません) を 返します。 X/Open defines no error conditions. In this implementa- tion X/Open はエラーの条件を何も定義していません。この実装では slk_attr returns the attribute used for the soft keys. ソフトラベルで使われている属性値を返します slk_attroff, slk_attron, slk_clear, slk_noutrefresh, slk_refresh, slk_touch return an error if the terminal or the soft- keys were not initialized. 端末またはソフトラベルが初期化されていない場合に エラーを返します slk_attrset returns an error if the terminal or the soft- keys were not initialized. 端末またはソフトラベルが初期化されていない場合に エラーを返します slk_attr_set returns an error if the terminal or the soft- keys were not initialized, or the color pair is outside the range 0..COLOR_PAIRS-1, or opts is not null. 端末またはソフトラベルが初期化されていない場合、 または色のペアが 0 〜 COLOR_PAIRS-1 の範囲外の 場合、または opts がヌルでない場合に エラーを返します slk_color returns an error if the terminal or the soft- keys were not initialized, or the color pair is outside the range 0..COLOR_PAIRS-1. 端末またはソフトラベルが初期化されていない場合、 または色のペアが 0 〜 COLOR_PAIRS-1 の範囲外の 場合にエラーを返します slk_init returns an error if the format parameter is outside the range 0..3. 書式引数 fmt が 0 〜 3 の範囲外の場合に エラーを返します slk_label returns NULL on error. エラーの場合 NULL を返します slk_set returns an error if the terminal or the soft- keys were not initialized, or the labnum pa- rameter is outside the range of label counts, or if the format parameter is outside the range 0..2, or if memory for the labels cannot be allocated. 端末またはソフトラベルが初期化されていない場合、 または引数 labnum がラベル数の範囲外の場合、 または書式引数 fmt が 0 〜 2 の範囲外の場合、 またはラベル用のメモリが確保できない場合に エラーを返します
Most applications would use slk_noutrefresh because a wre- fresh is likely to follow soon. すぐ後に wrefresh が続くでしょうから、ほとんどの アプリケーションは slk_noutrefresh を使うでしょう。
The XSI Curses standard, Issue 4, describes these func- tions. It changes the argument type of the attribute-ma- nipulation functions slk_attron, slk_attroff, slk_attrset to be attr_t, and adds const qualifiers. The format codes 2 and 3 for slk_init() and the function slk_attr are spe- cific to ncurses. これらの関数は XSI Curses standard, Issue 4 に記載されて います。 同書は属性操作関数 slk_attron, slk_attroff, slk_attrset の 引数を attr_t 型とし、const 修飾子を追加しています。 slk_init() 関数の書式コード 2 と 3、および slk_attr 関数は ncurses に固有です。
curses(3x), curs_attr(3x), curs_initscr(3x), curs_refresh(3x), curs_variables(3x). curs_slk(3x)