[GRASS5] Color prompt partially implemented, color confusion.
Cedric Shock
cedricgrass at shockfamily.net
Sun Apr 16 22:27:36 EDT 2006
Hey,
Does this (untested) snippet look useful for turning strings of colors into
colors in the color table? We could get slightly more information about
failure to find colors / use of none if it was safe to use a negative return
value for a failure (there are no negative colors) or if the integer
suggested color number is a pointer and is modified.
Thanks for the comments,
--Cedric
/*!
* \brief color name and suggested number to actual number
*
* Takes a color <b>name</b> or <b>red:green:blue</b> code in ascii
* and a <b>suggested color index</b>.
* If the color is a standard preallocated color it returns the color number
for that color.
* Otherwise (if the color is not standard) it sets the color of the supplied
index to
* the specified color (see R_reset_color).
* Returns 0 if color is not known or if the color is none.
*
* \param name_or_code
* \param suggested_color_index
* \return int
*/
int D_translate_or_add_color (const char * str, int index)
{
int redi, greeni, bluei;
int preallocated, ret;
char lowerstr[MAX_COLOR_LEN];
/* Make the color string lowercase for display colors */
G_strcpy (lowerstr, str );
G_chop (lowerstr);
G_tolcase (lowerstr);
preallocated = D_translate_color (lowerstr);
if (preallocated != 0) {
return preallocated;
}
ret = G_str_to_color (str, &redi, &greeni, &bluei);
if (ret == 2) {
/* None color */
return 0;
} else if (ret == 1) {
/* Add the specified color to the suggested index */
R_reset_color ( (unsigned char) redi, (unsigned char) greeni, (unsigned
char) bluei, index);
return index;
}
return 0;
}
More information about the grass-dev
mailing list