curs_color 3x

curs_color(3x)                                           curs_color(3x)




NAME 名前

       start_color, init_pair, init_color, has_colors,
       can_change_color, color_content, pair_content, COLOR_PAIR
       - curses color manipulation routines
       - curses 色を操作するルーチン


SYNOPSIS 書式

       # include <curses.h>

       int start_color(void);
       int init_pair(short pair, short f, short b);
       int init_color(short color, short r, short g, short b);
       bool has_colors(void);
       bool can_change_color(void);
       int  color_content(short  color, short *r, short *g, short
       *b);
       int pair_content(short pair, short *f, short *b);
       int COLOR_PAIR(int n);


DESCRIPTION 説明


Overview 概要

       curses supports color attributes on  terminals  with  that
       capability.   To  use  these  routines start_color must be
       called, usually right after initscr.   Colors  are  always
       used  in pairs (referred to as color-pairs).  A color-pair
       consists of a foreground  color  (for  characters)  and  a
       background color (for the blank field on which the charac-
       ters are displayed).  A programmer  initializes  a  color-
       pair  with  the routine init_pair.  After it has been ini-
       tialized, COLOR_PAIR(n), a macro  defined  in  <curses.h>,
       can be used as a new video attribute.
        curses はその機能項目を持つ端末で色の属性をサポートします。
        これらのルーチンを使うには、通常 initscr の直後に 
       start_color を呼び出す必要があります。
        色は常にペアで使用します。(色のペアといいます。)
        色のペアは前景色(文字の色)と背景色(地の色で、文字はその上に
       表示される)で構成されます。
        色のペアは init_pair ルーチンで初期化します。
        初期化した後は、新しい表示属性として 
       <curses.h> で定義されるマクロ COLOR_PAIR(n) が使えます。

       If  a  terminal  is capable of redefining colors, the pro-
       grammer can use the routine init_color to change the defi-
       nition   of   a   color.    The  routines  has_colors  and
       can_change_color  return  TRUE  or  FALSE,  depending   on
       whether  the  terminal  has color capabilities and whether
       the programmer can change the colors.   The  routine  col-
       or_content  allows  a programmer to extract the amounts of
       red, green, and blue components in an  initialized  color.
       The  routine  pair_content allows a programmer to find out
       how a given color-pair is currently defined.
        端末で色の変更が可能な場合は、色の定義の変更に 
       init_color ルーチンを使うことができます。
        has_colorscan_change_color ルーチンは、端末がカラー機能を
       持つかどうか、ユーザーが色を変更できるかどうかにより、それぞれ 
       TRUEFALSE を返します。
        初期化された色から color_content ルーチンで赤・緑・青の成分を
       取り出すことができます。
        pair_content ルーチンを使うと与えられた色のペアが
       現在どのように定義されているかを探ることができます。


Color Rendering 色の表示

       The curses library combines these inputs  to  produce  the
       actual  foreground  and  background  colors  shown  on the
       screen:
        curses ライブラリは下記の入力を組み合わせて、実際に画面に
       表示する前景色と背景色を作ります。

       o   per-character video attributes (e.g., via waddch),
       o   文字ごとの表示属性 (例えば waddch 経由)

       o   the window attribute (e.g., by wattrset), and
       o   ウインドウの属性 (例えば wattrset による)

       o   the background character (e.g., wbkgdset).
       o   背景文字 (例えば wbkgdset)。

       Per-character and window attributes are usually set  by  a
       parameter  containing  video  attributes  including a COL-
       OR_PAIR value.  Some functions such  as  wattr_set  use  a
       separate parameter which is the color pair number.
        文字ごとの表示属性とウインドウの属性は通常 
       COLOR_PAIR の値を含む表示属性を含む 1 つのパラメータによって
       設定されます。
        wattr_set のようないくつかの関数は、色のペアの番号である
       別々の引数を使います。

       The  background character is a special case: it includes a
       character value, just as if it were passed to waddch.
        背景文字は特別な場合です。
        これはちょうど waddch に渡されたかのような文字値を含みます。

       The curses library does the actual work of combining these
       color pairs in an internal function called from waddch:
        curses ライプラリは、これらの色のペアを組み合わせる
       実際の処理を、 waddch から呼び出される内部関数で処理します。

       o   If the parameter passed to waddch is blank, and it us-
           es the special color pair 0,
       o   waddch に渡される引数が空白だった場合、
           特別な色のペア 0 を使います。

           o   curses next checks the window attribute.
           o   curses は次にウインドウの属性を調べます。

           o   If the window attribute does not use color pair 0,
               curses  uses  the  color  pair from the window at-
               tribute.
                ウインドウの属性が色のペア 0 でなければ、 
               curses はウインドウの属性から色のペアを使います。

           o   Otherwise, curses uses the background character.
           o   それ以外の場合 curses は背景文字を使います。

       o   If the parameter passed to waddch is not blank, or  it
           does  not use the special color pair 0, curses prefers
           the color pair from the parameter, if it  is  nonzero.
           Otherwise, it tries the window attribute next, and fi-
           nally the background character.
            waddch に渡された引数が空白でないか、
           特別な色のペア 0 を使わない場合、引数が 0 でなければ、 
           curses は引数から色のペアを選びます。
            その他の場合、次にウインドウの属性を試し、
           最後は背景文字を使います。

       Some curses functions such as wprintw call waddch.   Those
       do  not  combine  its parameter with a color pair.  Conse-
       quently those calls use only the window attribute  or  the
       background character.
        wprintw のようないくつかの curses 関数は waddch を使います。
        これらは色のペアと引数を組み合わせません。
        その結果、これらの呼び出しはウインドウ属性か背景文字しか
       使いません。


Routine Descriptions ルーチンの説明

       The start_color routine requires no arguments.  It must be
       called if the programmer wants to use colors,  and  before
       any  other  color  manipulation  routine is called.  It is
       good practice to call this routine  right  after  initscr.
       start_color does this:
        start_color ルーチンに引数はありません。
        色を使う場合には、他の色操作ルーチンを呼び出す前に 
       start_color を呼び出す必要があります。
        initscr の直後にこのルーチンを呼び出すのは良い習慣です。
        start_color は以下の処理をします。

       o   It  initializes  two global variables, COLORS and COL-
           OR_PAIRS (respectively defining the maximum number  of
           colors and color-pairs the terminal can support).
             2 つの広域(グローバル)変数 COLORSCOLOR_PAIRS を
           初期化します。(それぞれ、端末がサポートする色と色のペアの
           最大数を定義します。)

       o   It initializes the special color pair 0 to the default
           foreground and  background  colors.   No  other  color
           pairs are initialized.
            特別な色のペア 0 をデフォルトの前景色と背景色として
           初期化します。他の色のペアは初期化しません。

       o   It  restores  the colors on the terminal to the values
           they had when the terminal was just turned on.
            端末の色を、端末が起動した時の値に戻します。

       o   If the terminal supports the initc  (initialize_color)
           capability, start_color initializes its internal table
           representing the red, green and blue components of the
           color palette.
            端末が initc (initialize_color) 機能項目を
           サポートしている場合、 start_color はカラーパレットの
           赤・緑・青成分を表す内部テーブルを初期化します。

           The components depend on whether the terminal uses CGA
           (aka "ANSI") or HLS (i.e., the hls (hue_lightness_sat-
           uration) capability is set).  The table is initialized
           first for eight basic colors (black, red, green,  yel-
           low,  blue,  magenta, cyan, and white), and after that
           (if the terminal supports more than eight colors)  the
           components are initialized to 1000.
            色成分は、端末が CGA (aka "ANSI") を用いるか、 
           HLS (つまり hls (hue_lightness_saturation) 機能項目が
           設定されている) を用いるかによって異なります。
            まず基本色 8 色(黒、赤、緑、黃、青、マゼンタ、シアン、
           白)でテーブルを初期化し、その後(端末が 8 色より多くを
           サポートしていれば)色成分を 1000 まで初期化します。

           start_color  does  not  attempt  to set the terminal's
           color palette to match its built-in table.  An  appli-
           cation  may use init_color to alter the internal table
           along with the terminal's color.
            start_color は内蔵のテーブルに合わせて
           端末のカラーパレットを設定しようとはしません。
            端末の色に合わせて内蔵テーブルを変更するには 
           init_color を使います。

       These limits apply to color values and color pairs.   Val-
       ues  outside these limits are not legal, and may result in
       a runtime error:
        以下の制限が色の値と色のペアに適用されます。
        これらの制限からはずれた値は不正であり、実行中エラーとなる
       でしょう。

       o   COLORS corresponds to the terminal database's max_col-
           ors capability, which is typically a signed 16-bit in-
           teger (see terminfo(5)).
            COLORS は端末データベースの max_colors 機能項目に
           対応します。典型的には符号付き 16 ビット整数値です。
           ( terminfo(5) を参照してください。)

       o   color values are expected to be in the range 0 to COL-
           ORS-1, inclusive (including 0 and COLORS-1).
            色の値は 0以上 COLORS-1 以下の範囲を想定しています。
           (両端も含む、つまり 0COLORS-1 も含む)

       o   a  special  color value -1 is used in certain extended
           functions to denote the  default  color  (see  use_de-
           fault_colors).
            特別な色の値 -1 が特定の拡張機能関数でデフォルトの色を
           表すのに使われます。
           ( use_default_colors を参照してください。)

       o   COLOR_PAIRS  corresponds  to  the  terminal database's
           max_pairs capability,  which  is  typically  a  signed
           16-bit integer (see terminfo(5)).
            COLOR_PAIRS は端末データベースの max_pairs 機能項目に
           対応します。典型的には符号付き 16 ビット整数値です。
           ( terminfo(5) を参照してください。)

       o   legal  color  pair  values  are in the range 1 to COL-
           OR_PAIRS-1, inclusive.
            有効な色のペアの値は 1 以上 COLOR_PAIRS-1 以下です。

       o   color pair 0 is special; it denotes "no color".
       o   色のペア 0 は特別扱いで、「色がない」ことを表します。

           Color pair 0 is assumed to be white on black,  but  is
           actually whatever the terminal implements before color
           is initialized.  It cannot be modified by the applica-
           tion.
            色のペア 0 は黒地に白と仮定されています。しかし
           実際には、色を初期化する前に端末が実装している色です。
            アプリケーションから変更することはできません。

       The  init_pair  routine changes the definition of a color-
       pair.  It takes three arguments: the number of the  color-
       pair  to  be changed, the foreground color number, and the
       background color number.  For portable applications:
        init_pair ルーチンは色のペアの定義を変更します。
        変更する色のペアの番号、前景色の番号、背景色の番号の
        3 つの引数を取ります。
        ポータブル・アプリケーションでは、

       o   The first argument must be a legal color  pair  value.
           If  default  colors  are used (see use_default_colors)
           the upper limit is adjusted to allow for  extra  pairs
           which  use  a default color in foreground and/or back-
           ground.
             1 番目の引数は有効な色のペアの値でなければなりません。
            デフォルトの色を使うとき( use_default_colors 参照)、
           上限は前景色と背景色にデフォルトの色を使う拡張的な
           色のペアを受け入れるように調整されます。

       o   The second and third arguments  must  be  legal  color
           values.
             2 番目と 3 番目の引数は有効な色の値でなければなりません。

       If  the  color-pair was previously initialized, the screen
       is refreshed and all occurrences of  that  color-pair  are
       changed to the new definition.
        色のペアが以前に初期化されていた場合、画面を更新し、
       現れた色のペアはすべて新しい定義に変更されます。

       As  an  extension,  ncurses allows you to set color pair 0
       via the assume_default_colors routine, or to  specify  the
       use  of  default colors (color number -1) if you first in-
       voke the use_default_colors routine.
        拡張機能として、 ncurses では assume_default_colors 
       ルーチンで色のペア 0 を設定できます。または、初めに 
       use_default_colors ルーチンを呼び出すことでデフォルトの色
       (色番号 -1)を使うことを指定できます。

       The init_color routine changes the definition of a  color.
       It  takes  four  arguments:  the number of the color to be
       changed followed by three RGB values (for the  amounts  of
       red, green, and blue components).  The first argument must
       be a legal color value; default  colors  are  not  allowed
       here.   (See  the section Colors for the default color in-
       dex.)  Each of the last three arguments must be a value in
       the  range  0  through 1000.  When init_color is used, all
       occurrences of that color on the screen immediately change
       to the new definition.
        init_color ルーチンは色の定義を変更します。
        色の番号と、変更後の RGB の値(赤・緑・青の成分の輝度) 3 つの
       計 4 つの引数を取ります。
         1 番目の引数は有効な色の値でなければなりません。
       デフォルトの色はここでは使用できません。
       ( デフォルトの色の一覧は  の節を参照してください。)
        後ろ 3 つの引数は 0 から 1000 までの値でなければなりません。
        init_color を使うと、画面上のその色はすぐに新しい定義に
       変更されます。

       The  has_colors routine requires no arguments.  It returns
       TRUE if the terminal can manipulate colors; otherwise,  it
       returns FALSE.  This routine facilitates writing terminal-
       independent programs.  For example, a programmer  can  use
       it  to decide whether to use color or some other video at-
       tribute.
        has_colors ルーチンに引数はありません。
        端末が色を扱えれば TRUE を、そうでなければ FALSE を返します。
        このルーチンは端末に依存しないプログラムを作るとき便利です。
        例えば、色を使うか、他の表示属性を使うかを決めるために
       使うことができます。

       The can_change_color routine requires  no  arguments.   It
       returns  TRUE  if  the  terminal  supports  colors and can
       change their definitions; other, it returns  FALSE.   This
       routine facilitates writing terminal-independent programs.
        can_change_color ルーチンに引数はありません。
        端末が色をサポートし、その定義を変更できるなら TRUE を、
       そうでなければ FALSE を返します。
        このルーチンは端末に依存しないプログラムを作るとき便利です。

       The  color_content routine gives programmers a way to find
       the intensity of the red, green, and blue (RGB) components
       in a color.  It requires four arguments: the color number,
       and three addresses of shorts for storing the  information
       about  the  amounts  of red, green, and blue components in
       the given color.  The first argument must be a legal color
       value,  i.e.,  0  through COLORS-1, inclusive.  The values
       that are stored at the addresses pointed to  by  the  last
       three  arguments are in the range 0 (no component) through
       1000 (maximum amount of component), inclusive.
        color_content ルーチンを使うと、ある色の RGB (赤・緑・青)
       成分の輝度を知ることができます。
        色の番号と、与えられた色の RGB 成分の値を格納する 
       short 値のアドレス 3 つ、計 4 つの引数を取ります。
         1 番目の引数は有効な色の値、すなわち 0 以上 COLORS-1 以下
       でなければなりません。
        後ろ 3 つの引数で示されるアドレスに格納される値は、 
       0 (全く成分がない) 以上 1000 (最大の成分値) 以下の範囲に
       なります。

       The pair_content routine allows programmers  to  find  out
       what  colors  a given color-pair consists of.  It requires
       three arguments: the color-pair number, and two  addresses
       of  shorts  for  storing the foreground and the background
       color numbers.  The first argument must be a  legal  color
       value,  i.e., in the range 1 through COLOR_PAIRS-1, inclu-
       sive.  The values that are stored at the addresses pointed
       to  by  the  second and third arguments are in the range 0
       through COLORS, inclusive.
        pair_content ルーチンを使うと、与えられた色のペアが
       どの色で構成されているかを知ることができます。
        色のペアの番号と、前景色と背景色の番号を格納する 
       short 値のアドレス 2 つ、計 3 つの引数を取ります。
         1 番目の引数は有効な色の(訳注: ペアの)値、すなわち 1 以上 
       COLOR_PAIRS-1 以下でなければなりません。
         2 番目と 3 番目の引数で示されるアドレスに格納される値は、 
       0 以上 COLORS (訳注: COLORS-1) 以下になります。
        

Colors 色

       In <curses.h> the following macros are defined.  These are
       the  standard colors (ISO-6429).  curses also assumes that
       COLOR_BLACK is the default background color for all termi-
       nals.
        <curses.h> は次のマクロを定義しています。
        これらは標準の色です(ISO-6429)。
        curses はまた、すべての端末において COLOR_BLACK を
       デフォルトの背景色と仮定します。

             COLOR_BLACK
             COLOR_RED
             COLOR_GREEN
             COLOR_YELLOW
             COLOR_BLUE
             COLOR_MAGENTA
             COLOR_CYAN
             COLOR_WHITE


RETURN VALUE 戻り値

       The  routines  can_change_color()  and has_colors() return
       TRUE or FALSE.
        can_change_color()has_colors() ルーチンは TRUE または 
       FALSE を返します。

       All other routines return the integer ERR upon failure and
       an  OK  (SVr4  specifies only "an integer value other than
       ERR") upon successful completion.
        他のすべてのルーチンは、失敗したときに整数値 ERR を、
       正常終了したときに OK ( SVr4 は「 ERR 以外の整数値」としか
       指定していません) を返します。

       X/Open defines no error conditions.   This  implementation
       will  return  ERR  on attempts to use color values outside
       the range 0 to COLORS-1 (except for the default colors ex-
       tension),  or  use color pairs outside the range 0 to COL-
       OR_PAIRS-1.  Color values used in init_color  must  be  in
       the  range 0 to 1000.  An error is returned from all func-
       tions if the terminal has not been initialized.  An  error
       is  returned from secondary functions such as init_pair if
       start_color was not called.
        X/Open はエラーの条件を何も定義していません。
        この実装は、 0 以上 COLORS-1 以下の範囲の外の色の値を
       使おうとした場合(デフォルトの色を使う拡張を除く)、または 
       0 以上 COLOR_PAIRS-1 以下の範囲の外の色のペアの値を
       使おうとした場合に ERR を返します。
        init_color で使う色(訳注: 色の成分)の値は、 0 から 1000 の
       範囲でなければなりません。
        端末が初期化されていない場合、すべての関数はエラーを
       返します。
        start_color が呼び出されていない場合、 init_pair のような
       後続的な関数はエラーを返します。

          init_color
               returns an error if the terminal does not  support
               this  feature, e.g., if the initialize_color capa-
               bility is absent from the terminal description.
                端末がこの機能をサポートしていない場合、例えば 
               initialize_color 機能項目が端末記述から欠落している
               場合にエラーを返します。

          start_color
               returns an error if the color table cannot be  al-
               located.
                色のテーブルが割り当てられない場合にエラーを
               返します。


NOTES 注意

       In  the  ncurses implementation, there is a separate color
       activation flag, color palette, color pairs table, and as-
       sociated  COLORS  and  COLOR_PAIRS counts for each screen;
       the start_color function only affects the current  screen.
       The SVr4/XSI interface is not really designed with this in
       mind, and historical  implementations  may  use  a  single
       shared color palette.
        ncurses の実装では、各端末ごとに別々の色有効化フラグ、
       カラーパレット、色のペアのテーブル、 COLORS と 
       COLOR_PAIRS の値があり、 start_color 関数は現在画面にしか
       作用しません。
        SVr4/XSI のインターフェイスはこのような考えで実際に設計
       されておらず、歴史的な実装では 1 つのカラーパレットを
       共有して使うことがあります。

       Note that setting an implicit background color via a color
       pair affects only character cells that a  character  write
       operation  explicitly  touches.   To change the background
       color used when parts of a window are blanked  by  erasing
       or scrolling operations, see curs_bkgd(3x).
        色のペアを通して暗黙に背景色を設定すると、文字の
       書き込み操作が明示的にタッチしたマスにしか作用しないことに
       注意してください。
        ウインドウの一部分が消去かスクロール操作で空白になるときに
       使われる背景色を変えるには curs_bkgd(3x) を参照してください。

       Several  caveats  apply  on 386 and 486 machines with VGA-
       compatible graphics:
        VGA 互換グラフィックスを持つ 386 と 486 マシンに適用される
       いくつかの注意があります。

       o   COLOR_YELLOW is actually brown.  To  get  yellow,  use
           COLOR_YELLOW combined with the A_BOLD attribute.
            COLOR_YELLOW は実際には茶色です。黄色にするには、
           COLOR_YELLOW を A_BOLD 属性と組み合わせてください。

       o   The A_BLINK attribute should in theory cause the back-
           ground to go bright.  This often fails  to  work,  and
           even some cards for which it mostly works (such as the
           Paradise and compatibles) do the wrong thing when  you
           try  to  set  a  bright "yellow" background (you get a
           blinking yellow foreground instead).
            A_BLINK 属性は理論的には背景が明るくなるはずです。
            これはしばしばうまく動作しません。
           そして、ほぼ正しく動作するビデオカード( Paradise とその
           互換品)でさえ、明るい黄色の背景色を設定しようとすると
           間違った動作をします。(代わりに黄色の前景色が点滅します)

       o   Color RGB values are not settable.
       o   色の RGB 値は設定できません。


PORTABILITY 移植性

       This implementation satisfies XSI Curses's  minimum  maxi-
       mums for COLORS and COLOR_PAIRS.
        この実装は XSI Curses による COLORSCOLOR_PAIRS の
       最大値の最小限度を満足しています。	

       The  init_pair  routine  accepts  negative values of fore-
       ground  and  background  color  to  support  the   use_de-
       fault_colors  extension, but only if that routine has been
       first invoked.
        init_pair ルーチンは use_default_colors 拡張機能を
       サポートするため、負の値の前景色と背景色を受け付けますが、
       それは use_default_colors ルーチンを初めに呼び出した場合だけ
       です。

       The assumption that COLOR_BLACK is the default  background
       color  for  all  terminals  can  be modified using the as-
       sume_default_colors extension.
        すべての端末でデフォルトの背景色が COLOR_BLACK である
       という仮定は assume_default_colors 拡張機能を使うことで
       変更できます。

       This implementation checks the  pointers,  e.g.,  for  the
       values  returned  by  color_content  and pair_content, and
       will treat those as optional parameters when null.
        この実装はポインタ、例えば color_contentpair_content が
       返す値のためのポインタを検査します。そしてヌルのときには
       省略可能な引数のように扱います。


SEE ALSO 関連項目

       curses(3x),  curs_initscr(3x),  curs_attr(3x),  
       curs_variables(3x),  default_colors(3x)



                                                         curs_color(3x)