diff options
author | Dodji Seketeli <dodji@src.gnome.org> | 2004-04-18 15:26:47 +0000 |
---|---|---|
committer | Dodji Seketeli <dodji@src.gnome.org> | 2004-04-18 15:26:47 +0000 |
commit | 6d08258366de84957200071d2ec6aef2c027529c (patch) | |
tree | 41690fa2b005f166f6ee92e2915ef48f28d8b925 /src/cr-rgb.c | |
parent | 5d0671c2a41511e78b60f52ad25ac9748fbfd28a (diff) | |
download | libcroco-6d08258366de84957200071d2ec6aef2c027529c.tar.gz |
Changes from arch/CVS synchronization
Diffstat (limited to 'src/cr-rgb.c')
-rw-r--r-- | src/cr-rgb.c | 77 |
1 files changed, 61 insertions, 16 deletions
diff --git a/src/cr-rgb.c b/src/cr-rgb.c index c125675..dac1d53 100644 --- a/src/cr-rgb.c +++ b/src/cr-rgb.c @@ -17,6 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * + * Author: Dodji Seketeli * See COPYRIGHTS file for copyrights information. */ @@ -240,24 +241,22 @@ cr_rgb_to_string (CRRgb * a_this) str_buf = g_string_new (NULL); g_return_val_if_fail (str_buf, NULL); - if (a_this->is_percentage == TRUE) { + if (a_this->is_percentage == 1) { g_string_append_printf (str_buf, "%ld", a_this->red); - g_string_append_c (str_buf, '%'); - g_string_append_printf (str_buf, ", "); + g_string_append (str_buf, "%, "); g_string_append_printf (str_buf, "%ld", a_this->green); - g_string_append_c (str_buf, '%');; - g_string_append_printf (str_buf, ", "); + g_string_append (str_buf, "%, "); g_string_append_printf (str_buf, "%ld", a_this->blue); g_string_append_c (str_buf, '%'); } else { g_string_append_printf (str_buf, "%ld", a_this->red); - g_string_append_printf (str_buf, ", "); + g_string_append (str_buf, ", "); g_string_append_printf (str_buf, "%ld", a_this->green); - g_string_append_printf (str_buf, ", "); + g_string_append (str_buf, ", "); g_string_append_printf (str_buf, "%ld", a_this->blue); } @@ -338,11 +337,36 @@ cr_rgb_set (CRRgb * a_this, gulong a_red, a_this->red = a_red; a_this->green = a_green; a_this->blue = a_blue; - + a_this->inherit = FALSE ; return CR_OK; } /** + *sets the value of the rgb to inherit. + *Look at the css spec from chapter 6.1 to 6.2 to understand + *the meaning of "inherit". + *@param a_this the current instance of #CRRgb + * + */ +enum CRStatus +cr_rgb_set_to_inherit (CRRgb *a_this) +{ + g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR) ; + + a_this->inherit = TRUE ; + + return CR_OK ; +} + +gboolean +cr_rgb_is_set_to_inherit (CRRgb *a_this) +{ + g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR) ; + + return a_this->inherit ; +} + +/** *Sets the rgb from an other one. *@param a_this the current instance of #CRRgb. *@param a_rgb the rgb to "copy" @@ -455,19 +479,41 @@ cr_rgb_set_from_term (CRRgb *a_this, const struct _CRTerm *a_value) } break ; case TERM_IDENT: - status = cr_rgb_set_from_name - (a_this, - a_value->content.str->str) ; + 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; + } + 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: - status = cr_rgb_set_from_hex_str - (a_this, - a_value->content.str->str) ; + 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 ; } @@ -480,7 +526,6 @@ void cr_rgb_destroy (CRRgb * a_this) { g_return_if_fail (a_this); - g_free (a_this); } |