.\" $FreeBSD$ .\" .TH curs_color 3 "" .SH 名称 \fBstart_color\fR, \fBinit_pair\fR, \fBinit_color\fR, \fBhas_colors\fR, \fBcan_change_color\fR, \fBcolor_content\fR, \fBpair_content\fR - \fBncurses\fR カラー操作ルーチン .SH 書式 \fB# include \fR .br \fBint start_color(void);\fR .br \fBint init_pair(short pair, short f, short b);\fR .br \fBint init_color(short color, short r, short g, short b);\fR .br \fBbool has_colors(void);\fR .br \fBbool can_change_color(void);\fR .br \fBint color_content(short color, short *r, short *g, short *b);\fR .br \fBint pair_content(short pair, short *f, short *b);\fR .br .SH 解説 \fBncurses\fR は、機能のある端末でカラー属性をサポートします。 これらのルーチンを使用するには、通常、\fBinitscr\fR の直後で \fBstart_color\fR を呼び出す必要があります。 色は必ずペアで使用されます (色のペアと呼ばれます)。 色のペアは、(文字用の) 前景色と (文字が表示されるブランクのフィルタ用の) 背景色で構成されます。 プログラマは、ルーチン \fBinit_pair\fR で色のペアを初期化します。 初期化が済んだ後は、\fB\fR 内で定義されているマクロである \fBCOLOR_PAIR\fR(\fIn\fR) を、新しいビデオ属性として使用できます。 端末が色を再定義できる場合は、プログラマは、 ルーチン \fBinit_color\fR を使用して、色の定義を変更できます。 ルーチン \fBhas_colors\fR とルーチン \fBcan_change_color\fR は、 端末に色の機能があるかどうか、 プログラマが色を変更できるかどうかに従って、 \fBTRUE\fR または \fBFALSE\fR を返します。 ルーチン \fBcolor_content\fR によって、 プログラマは初期化された色の赤、緑、青のコンポーネントを取り出せます。 ルーチン \fBpair_content\fR によって、プログラマは、 指定の色のペアが現時点でどのように定義されているかを見つけられます。 .SS ルーチンの解説 \fBstart_color\fR ルーチンには引数は必要ありません。 プログラマが色を使用する場合は、 他の色操作ルーチンが呼び出す前にこれを呼び出す必要があります。 \fBinitscr\fR のすぐ後でこのルーチンを呼び出すのは賢明な方法です。 \fBstart_color\fR は 8 つの基本色 (黒、赤、緑、黄色、青、赤紫、水色、白) と 2 つのグローバル変数 \fBCOLORS\fR と \fBCOLOR_PAIRS\fR を初期化します (それぞれ端末がサポートできる色および色のペアの最大数を定義します)。 また、端末をオンに切り替えたときの色に、端末上の色を復元します。 \fBinit_pair\fR ルーチンは、色のペアの定義を変更します。 次の 3 つの引数を取ります。 変更する色のペアの番号、前景色の番号、および背景色の番号です。 最初の引数の値は \fB1\fR と \fBCOLOR_PAIRS-1\fR の間である必要があります。 2 番めの引数の値と 3 番めの引数の値は 0 と \fBCOLORS\fR の間にある必要があります (0 色のペアは黒の上の白に結びつけられているので、変更できません)。 色のペアが以前に初期化されている場合、画面はリフレッシュされ、 その色のペアが発生したところはすべて新しい定義に変更されます。 \fBinit_color\fR ルーチンは色の定義を変更します。 次の 4 つの引数を取ります。 変更する色の番号の後に 3 つの RGB 値が続いたものです (赤、緑、青の各コンポーネントの量についてです)。 最初の引数の値は、\fB0\fR と \fBCOLORS\fR の間である必要があります (デフォルトのカラーインデックスについては、 \fBColors\fR のセクションを参照してください)。 最後の 3 つの引数はそれぞれ 0 と 1000 の値の間にある必要があります。 \fBinit_color\fR を使用するとき、 画面上にその色が発生したところはすべてただちに新しい定義に変化します。 \fBhas_colors\fR ルーチンには引数は必要ありません。 端末が色を操作できる場合は \fBTRUE\fR を返します。 そうでない場合は、\fBFALSE\fR を返します。 このルーチンは、端末に独立なプログラムを作成するのを簡単にします。 たとえば、プログラマは、これを使用して、 色または他のビデオ属性を使用するかどうか決定できます。 \fBcan_change_color\fR ルーチンには引数は必要ありません。 端末が色をサポートし、色の定義を変更できる場合は \fBTRUE\fR を返します。 そうでない場合、\fBFALSE\fR を返します。 このルーチンは端末に独立なプログラムを作成するのを簡単にします。 \fBcolor_content\fR ルーチンは、色の中に赤、緑、青 (RGB) コンポーネントの強度を見つける方法をプログラマに与えます。 次の 4 つの引数が必要です。 色の番号、および指定の色の中の赤、緑、青のコンポーネントに 関する情報を保存する \fBshort\fR の 3 つのアドレスです。 最初の引数の値は 0 と \fBCOLORS\fR の間です。 最後の 3 つの引数が指すアドレスに保存される値は 0 (コンポーネントなし) と 1000 (コンポーネントの最大量) の間です。 \fBpair_content\fR ルーチンによって、プログラマは、 指定の色のペアが何の色で構成されるかを見つけることができます。 次の 3 つの引数が必要です。 色のペアの番号、前景色の番号と背景色の番号を保存するための \fBshort\fR の 2 つのアドレスです。 最初の引数の値は 1 と \fBCOLOR_PAIRS-1\fR の間にある必要があります。 2 番めの引数と 3 番めの引数が指すアドレスに保存される値は 0 と \fBCOLORS\fR の間にあります。 .SS 色 \fB\fR では、次のマクロが定義されています。 これらはデフォルトの色です。 また、\fBncurses\fR は、\fBCOLOR_BLACK\fR が すべての端末についてデフォルトの背景色であると想定します。 .nf \fBCOLOR_BLACK\fR \fBCOLOR_RED\fR \fBCOLOR_GREEN\fR \fBCOLOR_YELLOW\fR \fBCOLOR_BLUE\fR \fBCOLOR_MAGENTA\fR \fBCOLOR_CYAN\fR \fBCOLOR_WHITE\fR .fi .SH 戻り値 すべてのルーチンが処理失敗したときに整数 \fBERR\fR を返し、 処理が正常に完了したときは \fBOK\fR を返します。 .SH 注釈 いくつかの警告が VGA 互換のグラフィックスがある 386 マシンと 486 マシンに適用されます。 COLOR_YELLOW は実際には茶色です。 黄色にするためには、A_BOLD 属性とCOLOR_YELLOW を組み合わせて使用します。 A_BLINK 属性は、理論的には背景を明るくするはずです。 これは動作に失敗することが多く、 最も多く動作しているカード (たとえば、Paradise およびこれと互換性のあるもの) でも、 明るい "黄色の" 背景を設定しようとするときに 間違った動作をすることがあります (代わりに前景が黄色でまたたきます)。 色の RGB 値は設定できません。 .SH 機能 \fBsetf\fR, \fBsetb\fR, \fBsetaf\fR, \fBsetab\fR. curses ライブラリは 2 番めのペアを選んで使用してから、最初のペアに依存します。 .SH 関連項目 \fBncurses\fR(3), \fBcurs_initscr\fR(3), \fBcurs_attr\fR(3)