/** * cr_rgb_set_from_term: *@a_this: the instance of #CRRgb to set *@a_value: the terminal from which to set * *Set the rgb from a terminal symbol * * Returns CR_OK upon successful completion, an error code otherwise. */ enum CRStatus cr_rgb_set_from_term (CRRgb *a_this, const struct _CRTerm *a_value) { enum CRStatus status = CR_OK ; g_return_val_if_fail (a_this && a_value, CR_BAD_PARAM_ERROR) ; switch(a_value->type) { case TERM_RGB: if (a_value->content.rgb) { cr_rgb_set_from_rgb (a_this, a_value->content.rgb) ; } break ; case TERM_IDENT: if (a_value->content.str && a_value->content.str->stryng && a_value->content.str->stryng->str) { if (!strncmp ("inherit", a_value->content.str->stryng->str, sizeof ("inherit")-1)) { a_this->inherit = TRUE; a_this->is_transparent = FALSE ; } else { status = cr_rgb_set_from_name (a_this, a_value->content.str->stryng->str) ; } } else { cr_utils_trace_info ("a_value has NULL string value") ; } break ; case TERM_HASH: if (a_value->content.str && a_value->content.str->stryng && a_value->content.str->stryng->str) { status = cr_rgb_set_from_hex_str (a_this, a_value->content.str->stryng->str) ; } else { cr_utils_trace_info ("a_value has NULL string value") ; } break ; default: status = CR_UNKNOWN_TYPE_ERROR ; } return status ; }
/** * cr_rgb_set_from_name: * @a_this: the current instance of #CRRgb * @a_color_name: the color name * * Returns CR_OK upon successful completion, an error code otherwise. */ enum CRStatus cr_rgb_set_from_name (CRRgb * a_this, const guchar * a_color_name) { enum CRStatus status = CR_OK; CRRgb *result; g_return_val_if_fail (a_this && a_color_name, CR_BAD_PARAM_ERROR); result = bsearch (a_color_name, gv_standard_colors, G_N_ELEMENTS (gv_standard_colors), sizeof (gv_standard_colors[0]), cr_rgb_color_name_compare); if (result != NULL) cr_rgb_set_from_rgb (a_this, result); else status = CR_UNKNOWN_TYPE_ERROR; return status; }
/** * cr_rgb_set_from_name: * @a_this: the current instance of #CRRgb * @a_color_name: the color name * * Returns CR_OK upon successful completion, an error code otherwise. */ enum CRStatus cr_rgb_set_from_name (CRRgb * a_this, const guchar * a_color_name) { gulong i = 0; enum CRStatus status = CR_OK; g_return_val_if_fail (a_this && a_color_name, CR_BAD_PARAM_ERROR); for (i = 0; i < sizeof (gv_standard_colors); i++) { if (!strcmp (a_color_name, gv_standard_colors[i].name)) { cr_rgb_set_from_rgb (a_this, &gv_standard_colors[i]); break; } } if (i < sizeof (gv_standard_colors)) status = CR_OK; else status = CR_UNKNOWN_TYPE_ERROR; return status; }