X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fcurs_color.3x.html;h=bab33b328c15d3f8d2d0aa4c86ba319188932f52;hp=843ada75166d51757100ad395a7083bc855ff9f3;hb=3eda6f30a84d53844d2ebceadb457e2e7e9cfbf3;hpb=2e68dc325852af56f2ec6c315b323a4f9c3d62c9 diff --git a/doc/html/man/curs_color.3x.html b/doc/html/man/curs_color.3x.html index 843ada75..bab33b32 100644 --- a/doc/html/man/curs_color.3x.html +++ b/doc/html/man/curs_color.3x.html @@ -26,10 +26,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_color.3x,v 1.47 2017/03/13 21:49:37 tom Exp @ - * .br - * .br - * .br + * @Id: curs_color.3x,v 1.50 2017/04/01 19:57:19 tom Exp @ --> @@ -49,8 +46,8 @@
- start_color, init_pair, init_color, color_content, - pair_content, has_colors, can_change_color, COLOR_PAIR, + start_color, has_colors, can_change_color, init_pair, + init_color, color_content, pair_content, COLOR_PAIR, PAIR_NUMBER - curses color manipulation routines @@ -59,15 +56,22 @@ int start_color(void); + bool has_colors(void); + bool can_change_color(void); + int init_pair(short pair, short f, short b); int init_color(short color, short r, short g, short b); + /* extensions */ + int init_extended_pair(int pair, int f, int b); + int init_extended_color(int color, int r, int g, int b); int color_content(short color, short *r, short *g, short *b); int pair_content(short pair, short *f, short *b); - - bool has_colors(void); - bool can_change_color(void); + /* extensions */ + int extended_color_content(int color, int *r, int *g, int + *b); + int extended_pair_content(int pair, int *f, int *b); int COLOR_PAIR(int n); PAIR_NUMBER(attrs); @@ -76,32 +80,32 @@
- 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 + 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- + ters are displayed). A programmer initializes a color- + pair with the routine init_pair. After it has been ini- tialized, COLOR_PAIR(n) can be used to convert the pair to a video attribute. - If a terminal is capable of redefining colors, the pro- + 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 + 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.
- The curses library combines these inputs to produce the - actual foreground and background colors shown on the + The curses library combines these inputs to produce the + actual foreground and background colors shown on the screen: o per-character video attributes (e.g., via waddch), @@ -110,12 +114,12 @@ o the background character (e.g., wbkgdset). - Per-character and window attributes are usually set by a - parameter containing video attributes including a color - pair value. Some functions such as wattr_set use a sepa- + Per-character and window attributes are usually set by a + parameter containing video attributes including a color + pair value. Some functions such as wattr_set use a sepa- rate parameter which is the color pair number. - The background character is a special case: it includes a + The background character is a special case: it includes a character value, just as if it were passed to waddch. The curses library does the actual work of combining these @@ -127,24 +131,58 @@ o curses next checks the window attribute. o If the window attribute does not use color pair 0, - curses uses the color pair from the window at- + curses uses the color pair from the window at- tribute. o Otherwise, curses uses the background character. - 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. + 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. - 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 + 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. -
+
+ 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. + + COLOR_BLACK + COLOR_RED + COLOR_GREEN + COLOR_YELLOW + COLOR_BLUE + COLOR_MAGENTA + COLOR_CYAN + COLOR_WHITE + + Some terminals support more than the eight (8) "ANSI" col- + ors. There are no standard names for those additional + colors. + + +
+ +
+ is initialized by start_color to the maximum number of + colors the terminal can support. + + +
+ is initialized by start_color to the maximum number of + color pairs the terminal can support. + + +
+ +
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 @@ -185,19 +223,17 @@ 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)). + ors capability, (see terminfo(5)). o color values are expected to be in the range 0 to COL- ORS-1, inclusive (including 0 and COLORS-1). - o a special color value -1 is used in certain extended - functions to denote the default color (see use_de- + o a special color value -1 is used in certain extended + functions to denote the default color (see use_de- fault_colors). - o COLOR_PAIRS corresponds to the terminal database's - max_pairs capability, which is typically a signed - 16-bit integer (see terminfo(5)). + o COLOR_PAIRS corresponds to the terminal database's + max_pairs capability, (see terminfo(5)). o legal color pair values are in the range 1 to COL- OR_PAIRS-1, inclusive. @@ -209,6 +245,24 @@ is initialized. It cannot be modified by the applica- tion. + +
+ 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. + + +
+ 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. + + +
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 @@ -228,156 +282,159 @@ 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. + via the assume_default_colors(3x) routine, or to specify + the use of default colors (color number -1) if you first + invoke the use_default_colors(3x) routine. + +
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. + red, green, and blue components). - 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. + o The first argument must be a legal color value; de- + fault colors are not allowed here. (See the section + Colors for the default color index.) + + o 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. - 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. +
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. + the given color. + o The first argument must be a legal color value, i.e., + 0 through COLORS-1, inclusive. + + o 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. + + +
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. + color numbers. - PAIR_NUMBER(attrs) extracts the color value from its attrs - parameter and returns it as a color pair number. Its in- - verse COLOR_PAIR(n) converts a color pair number to an at- - tribute. Attributes can hold color pairs in the range 0 - to 255. If you need a color pair larger than that, you - must use functions such as attr_set (which pass the color - pair as a separate parameter) rather than the legacy func- - tions such as attrset. + o The first argument must be a legal color value, i.e., + in the range 1 through COLOR_PAIRS-1, inclusive. + o The values that are stored at the addresses pointed to + by the second and third arguments are in the range 0 + through COLORS, inclusive. -
- 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. - COLOR_BLACK - COLOR_RED - COLOR_GREEN - COLOR_YELLOW - COLOR_BLUE - COLOR_MAGENTA - COLOR_CYAN - COLOR_WHITE +
+ PAIR_NUMBER(attrs) extracts the color value from its attrs + parameter and returns it as a color pair number. + + +
+ Its inverse COLOR_PAIR(n) converts a color pair number to + an attribute. Attributes can hold color pairs in the + range 0 to 255. If you need a color pair larger than + that, you must use functions such as attr_set (which pass + the color pair as a separate parameter) rather than the + legacy functions such as attrset.
- The routines can_change_color and has_colors return TRUE + The routines can_change_color and has_colors return TRUE or FALSE. All other routines return the integer ERR upon failure and - an OK (SVr4 specifies only "an integer value other than + an OK (SVr4 specifies only "an integer value other than ERR") upon successful completion. - 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 + 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. init_color - returns an error if the terminal does not support - this feature, e.g., if the initialize_color capa- + 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. start_color - returns an error if the color table cannot be al- + returns an error if the color table cannot be al- located.
- In the ncurses implementation, there is a separate color + 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. + 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 + mind, and historical implementations may use a single shared color palette. - 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). + Setting an implicit background color via a color pair af- + fects only character cells that a character write opera- + tion explicitly touches. To change the background color + used when parts of a window are blanked by erasing or + scrolling operations, see curs_bkgd(3x). - Several caveats apply on 386 and 486 machines with VGA- - compatible graphics: + Several caveats apply on older x86 machines (e.g., i386, + i486) with VGA-compatible graphics: - o COLOR_YELLOW is actually brown. To get yellow, use + o COLOR_YELLOW is actually brown. To get yellow, use COLOR_YELLOW combined with the A_BOLD attribute. o The A_BLINK attribute should in theory cause the back- - ground to go bright. This often fails to work, and + 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 + Paradise and compatibles) do the wrong thing when you + try to set a bright "yellow" background (you get a blinking yellow foreground instead). o Color RGB values are not settable.
- This implementation satisfies XSI Curses's minimum maxi- + This implementation satisfies XSI Curses's minimum maxi- mums for COLORS and COLOR_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. + The init_pair routine accepts negative values of fore- + ground and background color to support the use_de- + fault_colors(3x) extension, but only if that routine has + been first invoked. - The assumption that COLOR_BLACK is the default background - color for all terminals can be modified using the as- - sume_default_colors extension. + The assumption that COLOR_BLACK is the default background + color for all terminals can be modified using the as- + sume_default_colors(3x) extension. - This implementation checks the pointers, e.g., for the - values returned by color_content and pair_content, and + 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. + X/Open Curses does not specify a limit for the number of + colors and color pairs which a terminal can support. How- + ever, in its use of short for the parameters, it carries + over SVr4's implementation detail for the compiled termin- + fo database, which uses signed 16-bit numbers. This im- + plementation provides extended versions of those functions + which use short parameters, allowing applications to use + larger color- and pair-numbers. +
curses(3x), curs_initscr(3x), curs_attr(3x), curs_vari- @@ -395,8 +452,26 @@+ +