本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > s

slk_attroff(3X)

ENHANCED CURSES
HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

slk_attroff, slk_attr_off, slk_attron, slk_attr_on, slk_attrset, slk_attr_set, slk_clear, slk_color, slk_init, slk_label, slk_noutrefresh, slk_refresh, slk_restore, slk_set, slk_touch, slk_wset ― ソフトラベル関数

構文

#include <curses.h>

int slk_attroff(const chtype attrs);

int slk_attr_off(const attr_t attrs, void *opts);

int slk_attron(const chtype attrs);

int slk_attr_on(const attr_t attrs, void *opts);

int slk_attrset(const chtype attrs);

int slk_attr_set(const attr_t attrs, short color_pair, void *opts);

int slk_clear(void);

int slk_color(short color_pair);

int slk_init(int fmt);

char *slk_label(int labnum);

int slk_noutrefresh(void);

int slk_refresh(void);

int slk_restore(void);

int slk_set(int labnum, const char *label, int justify);

int slk_touch(void);

int slk_wset(int labnum, const wchar_t *label, int justify);

説明

Curses インタフェースは、多くの端末上にあるソフト ファンクションキーのラベルの集合を操作します。 ソフトラベルのない端末の場合には、Curses が stdscr の一番下の行を使うので、 stdscr のサイズと LINES 外部変数の値が減少します。 8 個までの表示カラムのそれぞれに 8 個までのラベルを指定することができます。

ソフトラベルを使うには、 initscr()newterm() または ripoffline() を呼び出す前に、 slk_init() を呼び出さなければなりません。 initscr() が、結果的に stdscr からの 1 行を使ってソフトラベルをエミュレートする場合には、fmt が画面上にラベルをどのように並べるかを決定します。 fmt を 0 に設定すると、ラベルが 3-2-3 の形で並ぶことを示し、1 に設定すると、ラベルが 4-4 の形で並ぶことを示します。 fmt のそれ以外の値は明示されていません。

slk_init() 関数は、 ripoffline() を呼び出す効果があり、要求されたフォーマットを収容するために画面の 1 行を確保します。

slk_set() および slk_wset() 関数は、1〜8 のソフトラベル番号 labnum のテキストを指定します。 label 引き数は、ラベルに書き出される文字列です。 slk_set() および slk_wset() では、ラベルの幅は 8 カラム分に制限されます。 ヌル文字列またはヌルポインタは、空白ラベルを指定します。 justify 引き数に以下の値を指定すると、ラベルのために確保されたスペース内で label の位置をどのように調整するかを指示することができます。

0  

label の先頭をスペースの先頭に合わせます。

1  

label をスペースの中央に置きます。

2  

label の最後をスペースの最後に合わせます。

slk_refresh() および slk_noutrefresh() 関数は、 wrefresh() および wnoutrefresh() 関数に相当します。

slk_label() 関数は、ソフトラベル番号 labnum を求めます。

slk_clear() 関数は、ソフトラベルを画面からただちにクリアします。

slk_restore() 関数は、 slk_clear() を呼び出した後、ただちにソフトラベルを画面に復元します。

slk_touch() 関数は、 slk_noutrefresh() または slk_refresh() が次に呼び出されたときに、すべてのソフトラベルを強制出力します。

slk_attron()slk_attrset() および slk_attroff() の各関数は、 attron()attrset() および attroff() に相当します。 これらの関数は、ソフトラベルが画面の一番下の行にシミュレートされている場合にだけ、効果があります。

slk_attr_off()slk_attr_on()slk_attr_set()、 および slk_color() の各関数はそれぞれ、 attr_off()attr_on()attr_set() および color_set() に相当するので、WA_ 接頭辞の付いた属性定数およびカラーをサポートしています。

戻り値

正常に終了すると、 slk_label() は、要求されたラベルを先行の空白と後続の空白を取り去って返します。 そうでなければヌルポインタを返します。

他の関数は、正常に終了すると OK を返します。 そうでなければ ERR を返します。

エラー

エラーは定義されていません。

アプリケーション使用法

マルチバイト文字セットを使う場合には、アプリケーションで、 slk_set() を呼び出す前に mbstowcs() を呼び出して、その後 wcswidth() を呼び出すことによって、文字列の幅をチェックする必要があります。 ワイドキャラクタを使う場合には、アプリケーションで、 slk_set() を呼び出す前に wcswidth() を呼び出すことによって、文字列の幅をチェックする必要があります。

ワイドキャラクタの文字列が占有するカラム数はコードセットに特有のものなので、 slk_wset() を呼び出す前に、 wcwidth() および wcswidth() を呼び出して、文字列内のカラムの数を調べる必要があります。

ほとんどのアプリケーションでは、 wrefresh() がすぐ後に続くことが多いので、 slk_noutrefresh() を使います。

参照

attr_get(3X), attroff(3X), delscreen(3X), ripoffline(3X), mbstowcs() (『X/Open System Interfaces and Headers, Issue 4, Version 2』 specification), wcswidth() (『X/Open System Interfaces and Headers, Issue 4, Version 2』 specification), <curses.h>

変更履歴

X/Open Curses 第 4 版にて新規リリース

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.