curs_attr(3x) curs_attr(3x)
attroff, wattroff, attron, wattron, attrset, wattrset, color_set, wcolor_set, standend, wstandend, standout, wstandout, attr_get, wattr_get, attr_off, wattr_off, attr_on, wattr_on, attr_set, wattr_set, chgat, wchgat, mvchgat, mvwchgat, PAIR_NUMBER - curses 文字とウインドウの属性操作ルーチン
#include <curses.h> int attroff(int attrs); int wattroff(WINDOW *win, int attrs); int attron(int attrs); int wattron(WINDOW *win, int attrs); int attrset(int attrs); int wattrset(WINDOW *win, int attrs); int color_set(short color_pair_number, void* opts); int wcolor_set(WINDOW *win, short color_pair_number, void* opts); int standend(void); int wstandend(WINDOW *win); int standout(void); int wstandout(WINDOW *win); int attr_get(attr_t *attrs, short *pair, void *opts); int wattr_get(WINDOW *win, attr_t *attrs, short *pair, void *opts); int attr_off(attr_t attrs, void *opts); int wattr_off(WINDOW *win, attr_t attrs, void *opts); int attr_on(attr_t attrs, void *opts); int wattr_on(WINDOW *win, attr_t attrs, void *opts); int attr_set(attr_t attrs, short pair, void *opts); int wattr_set(WINDOW *win, attr_t attrs, short pair, void *opts); int chgat(int n, attr_t attr, short color, const void *opts); int wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts); int mvchgat(int y, int x, int n, attr_t attr, short color, const void *opts); int mvwchgat(WINDOW *win, int y, int x, int n, attr_t attr, short color, const void *opts); PAIR_NUMBER(attrs);
これらのルーチンは指定のウインドウの現在の属性値を 操作します。 ウインドウの現在の属性値は waddch, waddstr, wprintw で 書き込まれるすべての文字に適用されます。 属性は文字のプロパティで、スクロールや行/文字の挿入/削除 操作を通じて文字とともに移動します。 属性は可能な範囲で、画面上の文字の表示様式の 適切な修飾として表示されます。
attrset ルーチンは指定のウインドウの現在の属性値を attrs に セットします。 attroff ルーチンは、他の属性をオン/オフすることなく、 指定の属性をオフにします。 attron ルーチンは、他の属性に影響を与えることなく、 指定の属性をオンにします。 standout ルーチンは attron(A_STANDOUT) と同じです。 standend ルーチンは attrset(A_NORMAL) または attrset(0) と 同じで、すべての属性をオフにします。 attrset やこれに関連するルーチンは、ウインドウ内の一部を 消去するときに使う属性には影響を与えません。 消去とクリアに用いる属性を変更する関数については curs_bkgd(3x) を参照してください。
attrset ルーチンは実際には SVr4 curses に先行する 古い機能ですが、 X/Open Curses では SVr4 curses と同じ理由、 すなわち互換性のために残されています。 attr_set ルーチンは色のペアを引数として渡すために 用意されています。 その他の attr_* 関数は int 型の代わりに attr_t 型の引数を 取ることを除き、対応する attr* 関数と全く同じように動作します。
color_set ルーチンは、与えられたウインドウの現在色を color_pair_number で指定した前景色/背景色の組に設定します。 引数 opts は将来のために予約されており、ヌルポインタを 与えなくてはなりません。
wattr_get ルーチンは指定のウインドウにおける 現在の属性と色のペアを返します。 attr_get ルーチンは stdscr における 現在の属性と色のペアを返します。 X/Open Curses のように attrget に対応する関数はありませんが、 ncurses は getattrs を用意しています。 (curs_legacy(3x) を参照してください。)
chgat ルーチンは stdscr の現在のカーソル位置から始まる 与えられた文字数分の属性値を変更します。 chgat ルーチンはカーソル位置を変更せず、文字列の折返しも 行いません。 文字数が -1 またはウインドウ幅の残りよりも大きな文字数は、 現在行の終わりまですっかり属性値を変更することを意味します。 wchgat 関数は、これを任意のウインドウに対して一般化します。 mvwchgat 関数は、動作の前にカーソル位置を移動させます。 これらの関数で、引数 color は色のペアの番号です。 ( init_pair の第 1 引数と同様に。 curs_color(3x) を 参照してください。) 引数 opts は現在使われていませんが、将来のために予約されて います。( NULL としてください。)
<curses.h> で定義されている下記の表示属性を attron, attroff, attrset ルーチンに渡すことができます。 文字と論理和( OR )を取った値を addch に渡すことができます。 ( curs_addch(3x) を参照してください。) 名前 説明 ------------------------------------------------------------ A_NORMAL 通常表示(強調なし) A_STANDOUT 端末で最高の強調モード A_UNDERLINE 下線つき A_REVERSE 反転 A_BLINK 点滅 A_DIM 半暗 A_BOLD 高輝度または太字 A_PROTECT プロテクトモード A_INVIS 不可視または空白モード A_ALTCHARSET 代替文字セット A_ITALIC イタリック(X/Open 拡張外) A_CHARTEXT 文字を取り出すためのビットマスク COLOR_PAIR(n) 色のペアの番号 n 下記の表示属性は、 attr_on とこれに関連する関数が サポートします。( attron 他が認識する属性もサポートします。) 名前 説明 ----------------------------------------- WA_HORIZONTAL 水平強調 WA_LEFT 左強調 WA_LOW 下強調 WA_RIGHT 右強調 WA_TOP 上強調 WA_VERTICAL 垂直強調 一貫性のために 次のマクロは COLOR_PAIR(n) の逆です。 PAIR_NUMBER(attrs) COLOR_PAIR(n) 属性に関係づけられた 色のペアの番号を返します。 大半のルーチンの戻り値は無意味です。(これらは マクロ拡張された代入文として実装されており、単純に引数の値を 返します。) (訳注: この記述は古いかもしれません。 戻り値の節も参照してください。) SVr4 のマニュアル・ページには(誤って)これらのルーチンは 常に 1 を返すと書かれています。
attroff, wattroff, attron, wattron, attrset, wattrset, standend, standout はマクロであるかもしれないことに 注意してください。 COLOR_PAIR の値は色のペアの数(番号??)が 256 未満のときのみ、 属性値と論理和( OR )を取ることができます。 color_set のような代替関数には、色のペアの値を直接渡すことが できます。 しかし、 ncurses ABI 4 と 5 は代替関数の内部で単にこの値を OR しているだけです。 256 を超える色のペアをサポートするには、 ncurses ABI 6 を 使う必要があります。
これらの関数は XSI Curses standard, Issue 4 で サポートされています。 XSI Curses standard では強調表示専用の型 attr_t を 定義していますが、 SVr4 curses では定義していません。 attr_t 型の引数を取る関数は、 SVr4 curses では サポートされません。 XSI Curses standard は、従来からの attron/attroff/attrset 関数が A_BLINK, A_BOLD, A_DIM, A_REVERSE, A_STANDOUT, A_UNDERLINE 以外の属性を取り扱えるかどうかは「未指定」 としています。 この実装では SVr4 curses と同様、これらの関数は他の強調表示 (具体的には A_ALTCHARSET, A_PROTECT, A_INVIS )もすべて正しく 取り扱います。 この実装は enter_italics_mode (sitm) と exit_italics_mode (ritm) 機能項目を持つ端末のために、 A_ITALIC 属性を用意しています。 イタリック体は X/Open Curses には記載されていません。 他の表示属性と違って、 I_ITALIC は set_attributes 機能項目に 関係づけられていません。 この実装は exit_attribute_mode はイタリック体もリセット するものと仮定しています。 XSI Curses は新しいルーチン attr_get, attr_on, attr_off, attr_set, wattr_on, wattr_off, wattr_get, wattr_set を 追加しています。 これらは WA_ で始まる一連の新しい強調表示用マクロとともに 動作するよう意図されています。 従来のマクロに対応するものが、下記の新しいマクロの中に 含まれます。 名前 説明 ------------------------------------------------------------ WA_NORMAL 通常表示(強調なし) WA_STANDOUT 端末で最高の強調モード WA_UNDERLINE 下線つき WA_REVERSE 反転 WA_BLINK 点滅 WA_DIM 半暗 WA_BOLD 高輝度または太字 WA_ALTCHARSET 代替文字セット このライブラリのとても古いバージョンは、属性が変化した時に 画面の更新を強制しません。更新した属性を強制的に 画面に反映するには、 touchwin を使ってください。 XSI curses standard は、 A_ と WA_ を使う対応する関数の ペアは、現在の強調表示に関する同じ情報を操作するように 指定しています。 XSI standard extended conformance level は新しい強調表示属性 A_HORIZONTAL, A_LEFT, A_LOW, A_RIGHT, A_TOP, A_VERTICAL を 追加しています(そしてそれぞれに対応する WA_ マクロも)。 2013年 8月現在、( sgr1 機能項目を通じて) これらの強調表示属性を与える端末は知られていません。
すべてのルーチンは、正常終了すると整数 OK を、失敗すると ERR を返します。 X/Open はエラーの条件を何も定義していません。 この実装では、ウインドウ・ポインタがヌルのときにエラーを 返します。 wcolor_set 関数は色のペアの引数が 0 〜 COLOR_PAIRS-1 の 範囲外のときにエラーを返します。 この実装は古いバージョンの curses との互換性のために getattrs を用意しています。 mv で始まる関数は、まず wmove を使ってカーソルを移動させ、 カーソルの位置がウインドウの外になった場合と ウインドウ・ポインタがヌルの場合にエラーを返します。
curses(3x), curs_addch(3x), curs_addstr(3x), curs_bkgd(3x), curs_printw(3x), curs_variables(3x) curs_attr(3x)