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)