/** * cr_font_size_adjust_to_string: * @a_this: the instance of #CRFontSizeAdjust. * * Returns the serialized form of #CRFontSizeAdjust */ gchar * cr_font_size_adjust_to_string (CRFontSizeAdjust const * a_this) { gchar *str = NULL; if (!a_this) { str = g_strdup ("NULL"); g_return_val_if_fail (str, NULL); return str; } switch (a_this->type) { case FONT_SIZE_ADJUST_NONE: str = g_strdup ("none"); break; case FONT_SIZE_ADJUST_NUMBER: if (a_this->num) str = (gchar *) cr_num_to_string (a_this->num); else str = g_strdup ("unknow font-size-adjust property value"); /* Should raise an error no?*/ break; case FONT_SIZE_ADJUST_INHERIT: str = g_strdup ("inherit"); } return str; }
/** * cr_font_size_to_string: * @a_this: the current instance of #CRFontSize * * Returns the serialized form of #CRFontSize. The returned string * has to bee freed using g_free(). */ gchar * cr_font_size_to_string (CRFontSize const * a_this) { gchar *str = NULL; if (!a_this) { str = g_strdup ("NULL"); g_return_val_if_fail (str, NULL); return str; } switch (a_this->type) { case PREDEFINED_ABSOLUTE_FONT_SIZE: str = g_strdup (cr_predefined_absolute_font_size_to_string (a_this->value.predefined)); break; case ABSOLUTE_FONT_SIZE: str = (gchar *) cr_num_to_string (&a_this->value.absolute); break; case RELATIVE_FONT_SIZE: str = g_strdup (cr_relative_font_size_to_string (a_this->value.relative)); break; case INHERITED_FONT_SIZE: str = g_strdup ("inherit"); break; default: break; } return str; }
guchar * cr_term_one_to_string (CRTerm * a_this) { GString *str_buf = NULL; guchar *result = NULL; gchar *content = NULL; g_return_val_if_fail (a_this, NULL); str_buf = g_string_new (NULL); g_return_val_if_fail (str_buf, NULL); if ((a_this->content.str == NULL) && (a_this->content.num == NULL) && (a_this->content.str == NULL) && (a_this->content.rgb == NULL)) return NULL ; switch (a_this->the_operator) { case DIVIDE: g_string_append_printf (str_buf, " / "); break; case COMMA: g_string_append_printf (str_buf, ", "); break; case NO_OP: if (a_this->prev) { g_string_append_printf (str_buf, " "); } break; default: break; } switch (a_this->unary_op) { case PLUS_UOP: g_string_append_printf (str_buf, "+"); break; case MINUS_UOP: g_string_append_printf (str_buf, "-"); break; default: break; } switch (a_this->type) { case TERM_NUMBER: if (a_this->content.num) { content = (gchar *)cr_num_to_string (a_this->content.num); } if (content) { g_string_append (str_buf, content); g_free (content); content = NULL; } break; case TERM_FUNCTION: if (a_this->content.str) { content = g_strndup (a_this->content.str->stryng->str, a_this->content.str->stryng->len); } if (content) { g_string_append_printf (str_buf, "%s(", content); if (a_this->ext_content.func_param) { guchar *tmp_str = NULL; tmp_str = cr_term_to_string (a_this-> ext_content.func_param); if (tmp_str) { g_string_append_printf (str_buf, "%s", tmp_str); g_free (tmp_str); tmp_str = NULL; } g_string_append_printf (str_buf, ")"); g_free (content); content = NULL; } } break; case TERM_STRING: if (a_this->content.str) { content = g_strndup (a_this->content.str->stryng->str, a_this->content.str->stryng->len); } if (content) { g_string_append_printf (str_buf, "\"%s\"", content); g_free (content); content = NULL; } break; case TERM_IDENT: if (a_this->content.str) { content = g_strndup (a_this->content.str->stryng->str, a_this->content.str->stryng->len); } if (content) { g_string_append (str_buf, content); g_free (content); content = NULL; } break; case TERM_URI: if (a_this->content.str) { content = g_strndup (a_this->content.str->stryng->str, a_this->content.str->stryng->len); } if (content) { g_string_append_printf (str_buf, "url(%s)", content); g_free (content); content = NULL; } break; case TERM_RGB: if (a_this->content.rgb) { g_string_append_printf (str_buf, "rgb("); gchar *tmp_str = (gchar *)cr_rgb_to_string (a_this->content.rgb); if (tmp_str) { g_string_append (str_buf, tmp_str); g_free (tmp_str); tmp_str = NULL; } g_string_append_printf (str_buf, ")"); } break; case TERM_UNICODERANGE: g_string_append_printf (str_buf, "?found unicoderange: dump not supported yet?"); break; case TERM_HASH: if (a_this->content.str) { content = g_strndup (a_this->content.str->stryng->str, a_this->content.str->stryng->len); } if (content) { g_string_append_printf (str_buf, "#%s", content); g_free (content); content = NULL; } break; default: g_string_append_printf (str_buf, "%s", "Unrecognized Term type"); break; } if (str_buf) { result = (guchar *)str_buf->str; g_string_free (str_buf, FALSE); str_buf = NULL; } return result; }