ビデオ属性の操作
ユーザーのプログラムは多くのビデオ属性を操作することができます。
ビデオ属性、ビット・マスク、およびデフォルト・カラー
- A_ALTCHARSET
- 代替文字セット
- A_BLINK
- フラッシュ
- A_BOLD
- 高輝度または太字
- A_DIM
- 低輝度
- A_NORMAL
- 通常属性
- A_REVERSE
- 反転表示
- A_STANDOUT
- 端末の最高の高輝度表示モード
- A_UNDERLINE
- 下線
- COLOR_PAIR (Number)
- Number によって表されるカラー・ペアを表示します。 init_pair サブルーチンを使用して、カラー・ペアを初期化しておかなければなりません。
これらの属性は curses.h ファイルに定義されています。 属性を wattron、wattroff、および wattrset サブルーチンに渡すか、 または属性を、waddch サブルーチンに渡す文字と OR 演算を行うことができます。 C の論理 OR 演算子は | (縦線) です。 以下のビット・マスクも用意されています。
- A_ATTRIBUTES
- 属性を抽出します。
- A_CHARTEXT
- 文字を抽出します。
- A_COLOR
- カラー・ペア・フィールド情報を抽出します。
- A_NORMAL
- すべてのビデオ属性をオフにします。
カラー・ペアの処理のために、 COLOR_PAIR( Number) と PAIR_NUMBER( Attribute) というマクロが用意されています。 COLOR_PAIR( Number) マクロおよび A_COLOR マスクは、PAIR_NUMBER( Attribute) マクロによって使用され、Attribute パラメーターによって指定された属性内で検出されたカラー・ペア番号を抽出します。
プログラムがカラーを使用する場合、 curses.h ファイルが以下のデフォルト・カラーを識別するマクロの数を定義します。
カラー | 整数値 |
---|---|
COLOR_BLACK | 0 |
COLOR_BLUE | 1 |
COLOR_GREEN | 2 |
COLOR_CYAN | 3 |
COLOR_RED | 4 |
COLOR_MAGENTA | 5 |
COLOR_YELLOW | 6 |
COLOR_WHITE | 7 |
curses は、すべての端末のデフォルトの背景色が 0 (COLOR_BLACK) であると想定します。
ビデオ属性の設定
現在のウィンドウ属性は、addch サブルーチンを使用してウィンドウに書き出されるすべての文字に適用されます。 これらの属性は、文字の属性して残ります。 文字は端末操作中にこれらの属性を保持します。
- attroff または wattroff
- 属性をオフにします。
- attron または wattron
- 属性をオンにします。
- attrset または wattrset
- ウィンドウの現在の属性を設定します。
- standout、wstandout、standend、または wstandend
- ウィンドウを端末の最高の高輝度表示モードにするか、または 最高の高輝度表示モードを終了します。
- vidputs または vidattr
- 端末をビデオ属性モードにする文字列を出力します。
attrset サブルーチンは、デフォルト・スクリーンの現在の属性を設定します。 wattrset サブルーチンは、 ユーザー定義ウィンドウの現在の属性を設定します。
attron および attroff サブルーチンを使用すれば、stdscr 内で指定された属性を、 他の属性に影響を与えずに、オンまたはオフにすることができます。 wattron サブルーチンおよび wattroff サブルーチンは、ユーザー定義ウィンドウで同じアクションを実行します。
standout サブルーチンは、 A_STANDOUT 属性を指定した attron サブルーチンへのコールと同じです。 このサブルーチンは、stdscr を端末の最高の高輝度表示モードに変更します。 wstandout サブルーチンは、wattron(Window, A_STANDOUT) サブルーチンへのコールと同じです。 このサブルーチンは、ユーザー定義ウィンドウを端末の最高の高輝度表示モードに変更します。 standend サブルーチンは attrset(0) サブルーチンへのコールと同じです。 このサブルーチンは、stdscr のすべての属性をオフにします。 wstandend サブルーチンは、wattrset(Window, 0) サブルーチンへのコールと同じです。 このサブルーチンは、指定されたウィンドウのすべての属性をオフにします。
vidputs サブルーチンは、端末を指定された属性モードにする文字列を出力します。 文字は putc サブルーチンを介して出力されます。 vidattr サブルーチンは、文字が putchar サブルーチンを介して出力されることを除けば、vidputs サブルーチンと同じです。
カラー・ペアの処理
init_pair(1, COLOR_BLACK, COLOR_CYAN);
wattrset(win, COLOR_PAIR(1));
次に、文字列 Let's add Color を端末に書き出すと、この文字列はシアンの背景上の黒い文字として表示されます。
属性の抽出
win = newwin(10, 10, 0, 0);
init_pair(1, COLOR_RED, COLOR_YELLOW);
wattrset(win, COLOR_PAIR(1));
waddstr(win, "apple");
number = PAIR_NUMBER((mvwinch(win, 0, 0) & A_ATTRIBUTES));
wprintw(win, "%d¥n", number);
wrefresh(win);
光と音
curses ライブラリーには、 ユーザーにシグナルを送るための以下の警報サブルーチンがあります。
curses オプションの設定
- curs_set
- カーソルの可視性を、不可視、通常、または非常に可視に設定します。
- idlok
- curses が、端末の行挿入と行削除のハードウェア機能を使用できるかどうかを指定します。
- intrflush
- 割り込みキー (割り込み、終了、または中断) が tty ドライバーですべての出力をフラッシュするかどうかを指定します。 このオプションのデフォルトは tty ドライバーから受け継がれます。
- keypad
- curses が端末のキーパッドからの情報を取り出すかどうかを指定します。 使用可能にした場合、 ユーザーはファンクション・キー (矢印キーなど) を押すことができ、wgetch サブルーチンによって、 そのファンクション・キーを表す単一の値が戻されます。使用不可にした場合、 ファンクション・キーが curses によって特別に処理されないので、 ユーザーのプログラムがエスケープ・シーケンスを解釈する必要があります。 これらのファンクション・キーのリストについては、wgetch サブルーチンを参照してください。
- typeahead
- 代替ファイル・ディスクリプターでタイプを先に検査するように curses に指示します。
その他の curses オプションについては、wgetch サブルーチンおよび端末での curses の使用についてを参照してください。