EN JA
default_colors(3X)
default_colors(3X) default_colors(3X)

名称

use_default_colors, assume_default_colors -端末のデフォルト色を使用する

書式

#include <curses.h>
 
int use_default_colors(void);
 
int assume_default_colors(int fg, int bg);

解説

use_default_colors() および assume_default_colors() 関数は curses ライブラリに対する拡張です。それらは、ISO 6429 色をサポートする端末または同等物で使用されます。これらの端末は、アプリケーションが無指定のデフォルト値 (例えば SGR 39 あるいは SGR 49 で) の色をリセットすることを可能にします。

全体の画面に関する色付きの背景を描くアプリケーションは SGR 39 および SGR 49 を利用しません。いくつかのアプリケーションテキストのためにのみ色を使用してデフォルト背景で働くように設計されています。例えば、異なるファイルタイプあるいは許可を表示するために色を使用する ls プログラムのいくつかの実装があります。これらの "色 ls"プログラムは、典型的には前景色を設定する setaf terminfo ケーパビリティだけを使用して、必ずしも背景色を修正しません。デフォルト色を使用する全画面 (フルスクリーン) のアプリケーションは同様の視覚効果を達成できます。

最初の関数 use_default_colors() は、端末のデフォルト前景/背景色を色番号 -1 に割り当てるように curses ライブラリに命じます。したがって、 init_pair(x,COLOR_RED,-1) はデフォルト背景を赤のペア x に初期化し、 init_pair(x,-1,COLOR_BLUE) は青のデフォルト前景としてペア x を初期化します。

他方、 assume_default_colors() は色ペア 0 のために描くどの色かを伝える改良版です。この関数は、デフォルト端末色を表示する特別の色番号 -1 を認識します。

下記は等価です。

 
use_default_colors();
 
assume_default_colors(-1,-1);

これらは ncurses 拡張です。ちょうど use_default_colors() または assume_default_colors() の成功した呼び出しの前の ncurses のためだけで、他の curses の実装では色番号 -1 は何も意味しません。

他の curses 実装は、アプリケーションが色ペア 0 を修正することを可能にしません。それらは、背景が COLOR_BLACK であると仮定するが、仮定と一致するために色ペア 0 が描かれることを保証しません。利用者のアプリケーションが use_default_colors() あるいは assume_default_colors() のいずれかを使用しない場合、 ncurses は色ペア 0 のための黒い背景で白い前景 (テキスト) を塗るでしょう。

戻り値

これらの関数は、失敗すれば整数 ERR を返し、成功すれば OK を返します。端末がどちらも orig_pairorig_colors ケーパビリティをサポートしない場合、それらは失敗するでしょう。 initialize_pair ケーパビリティが見つかる場合、これは同様にエラーを引き起こします。

この拡張に関連して、 init_pair 関数は、デフォルト前景か背景色を指定するために負の引数を受け付けます。

use_default_colors() 関数は、 ded をサポートするために追加されました。これは、画面の一部だけを管理するために curses を使用する全画面 (フルスクリーン) のアプリケーションです。調整可能なサイズの画面の下端の部分は、シェルコマンドからの結果を表示するために色なしのまま残されます。画面の上端の部分は、"color ls"プログラムのようなスキーマを使用してファイル名を色づけします。このアプリケーションのための画面のバックグラウンドの色を管理を試みることは、さまざまな理由で満足できない結果を与えます。この拡張は、カラー xterm (と、同様のプログラム) が ANSI 色のいずれにも対応する必要がないバックグラウンドの色を提供することに関する注記の後に、考え出されました。特別な terminfo エントリが、9 つの色を使用して組み立てることができますが、関連する orig_pairback_color_erase ケーパビリティの説明をする curses の中で提供されたメカニズムがありませんでした。

assume_default_colors() 関数は、異なった問題を解決するために追加されました: 端末のデフォルトの色の curses の概念を迂回させるために環境変数と他の設定を使用するアプリケーションのサポート、特定の値の設定です。

移植性

これらのルーチンは ncurses 特有です。それらは Version 7、BSD あるいは System V 実装ではサポートされませんでした。それらに依存するどんなコードも NCURSES_VERSION を使用して条件付けられることが推奨されます。

関連項目

curs_color(3X), ded(1)

作者

Thomas Dickey (XFree86 3.1.2C のための色 xterm のための必要条件の分析から、 1996年2月)