curs_slk 3x

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 ソフトウェア・ファンクションキー・ラベル・ルーチン


書式

       #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);


説明

        slk* 関数群は、多くの端末に存在するソフトウェア・
       ファンクションキー・ラベル (以下ソフトラベル) を操作します。
        ソフトラベルを持たない端末のために、cursesstdscr と
       変数 LINES のサイズを縮小し、stdscr の最下行を専用とします。
        curses は各 8 文字以内の 8 個のラベルを標準化しています。
        これに加え、ncurses の実装は各 5 文字以内の 12 個のラベルを
       シミュレートするモードをサポートしています。
        これは今日の PC のような利用者機器に便利です。
        ncurses はハードウェアのサポートを全く使おうとすることなく、
       画面の最下部 2 行以内を使ってこのモードをシミュレートします。

        slk_init ルーチンは initscr または newterm を呼び出す前に
       呼び出さなければなりません。
        最終的に initscrstdscr から 1 行を使ってソフトラベルを
       エミュレートするとき、fmt は画面上にラベルをどう配置するかを
       決定します。

              0  3-2-3 配置でラベルを表示します

              1  4-4 配置でラベルを表示します

              2  PC のような 4-4-4 配置でラベルを表示します

              3  これもPC のような 4-4-4 配置ですが、
                 それに加えて見出し行を作成し、
                 利用者がキー番号を識別しやすくします

        slk_set ルーチン (とワイド文字用ライブラリの slk_wset 
       ルーチン) は、次の 3 つの引数を取ります。

              labnum
                   1 から 8 (slk_initfmt2 または 3 の場合は 
                   12) までのラベル番号

              label
                   ラベルとして表示される、8 (slk_initfmt2 または 3 の場合は 5) 文字までの長さの文字列。
                   ヌル文字列またはヌルポインタの場合は
                   空白のラベルを設定します

              fmt  
                   0, 1, 2 のいずれかであり、それぞれラベル内で
                   左寄せ、中央揃え、右寄せにして表示します

        slk_refreshslk_noutrefresh ルーチンは 
       wrefreshwnoutrefresh ルーチンに対応しています。

        slk_label ルーチンは、ラベル番号 labnum の現在のラベルを
       返します。先行または後続する空白は取り除かれます。

        slk_clear ルーチンは画面からソフトラベルをクリアします。

        slk_restore ルーチンは slk_clear が実行された後、
       ソフトラベルを画面上に復元します。

        slk_touch ルーチンは、次に slk_noutrefresh が実行された時に
       すべてのソフトラベルを出力するように強制します。

        slk_attron, slk_attrset, slk_attroff, slk_attr ルーチンは
       attron, attrset, attroff, attr_get に対応しています。
        これらは画面の最下行でソフトラベルがシミュレートされている
       場合のみ有効です。
        ソフトラベルのデフォルトの強調表示は A_STANDOUT です
       (これを文書化していない System V curses と同様に)。

        slk_color ルーチンは color_set に対応しています。
        これは画面の最下行でソフトラベルがシミュレートされている
       場合のみ有効です。


戻り値

        これらのルーチンは失敗のとき ERR を、正常終了のとき OK 
       (SVr4 は「ERR 以外の整数値」としか指定していません) を
       返します。

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

              slk_attr
                   ソフトラベルで使われている属性値を返します

              slk_attroff, slk_attron, slk_clear,
              slk_noutrefresh, slk_refresh, slk_touch
                   端末またはソフトラベルが初期化されていない場合に
                   エラーを返します

              slk_attrset
                   端末またはソフトラベルが初期化されていない場合に
                   エラーを返します

              slk_attr_set
                   端末またはソフトラベルが初期化されていない場合、
                   または色のペアが 0COLOR_PAIRS-1 の範囲外の
                   場合、または opts がヌルでない場合に
                   エラーを返します

              slk_color
                   端末またはソフトラベルが初期化されていない場合、
                   または色のペアが 0COLOR_PAIRS-1 の範囲外の
                   場合にエラーを返します

              slk_init
                   書式引数 fmt03 の範囲外の場合に
                   エラーを返します

              slk_label
                   エラーの場合 NULL を返します

              slk_set
                   端末またはソフトラベルが初期化されていない場合、
                   または引数 labnum がラベル数の範囲外の場合、
                   または書式引数 fmt02 の範囲外の場合、
                   またはラベル用のメモリが確保できない場合に
                   エラーを返します


注意

        すぐ後に wrefresh が続くでしょうから、ほとんどの
       アプリケーションは slk_noutrefresh を使うでしょう。


移植性

        これらの関数は XSI Curses standard, Issue 4 に記載されて
       います。
        同書は属性操作関数 slk_attron, slk_attroff, slk_attrset の
       引数を attr_t 型とし、const 修飾子を追加しています。
        slk_init() 関数の書式コード 23、および slk_attr 関数は
       ncurses に固有です。


関連項目

       curses(3x),   curs_attr(3x),   curs_initscr(3x),  
       curs_refresh(3x),   curs_variables(3x).



                                                           curs_slk(3x)